martes, 16 de febrero de 2010

MSS 2010: Concepto de Claim

Hoy quisiera hacer una introducción a lo que posiblemente sea uno de los conceptos nuevos que incorpora SharePoint 2010 más abstractos de todos, pero quizás también con más recorrido en el futuro (realmente suena a concepto futurista). Se trata del concepto de Claim Based Autentication (que además no está del todo completamente implantado en la Beta 2).

Hasta ahora estamos acostumbrados a trabajar con el concepto de "identidad" o "perfil" de usuario. Un usuario se define como un conjunto de atributos (nombre, apellido, departamento, contraseña, etc.)

Un Claim es un único atributo de esa identidad. Por ejemplo la "edad" de un usuario sería un Claim. Saber que ese usuario tiene "18 años" es un rasgo concreto de la identidad de esa persona que por sí misma podría bastar para permitirle entrar o no en determinados portales web (páginas de contenido para adultos, por ejemplo). Otro Claim podría ser, por ejemplo, saber que el usuario pertenece a un perfil "comercial", o que reside en "Barcelona".

Hasta aquí podríais pensar que un Claim es simplemente un atributo de un perfil de usuario. ¿Por que entonces se le llama claim (se traduce al español como "afirmación" o "aserción") y no como "attribute"? Porque para que el Claim tenga verdadera entidad como sistema de validación, debe estar respaldado por una entidad (Autentication Provider) que certifique que ese atributo es cierto y se cumple. Es decir, alguien afirma que ese atributo es real.

Además, hay que añadir que el concepto "claim" no es un concepto abstracto de Microsoft para Microsoft, sino que se basa en 3 estándares abiertos:
  1. WS-Federation 1.1: Proporciona la arquitectura para una separación limpia entre los mecanismos de confianza, formatos de seguridad de tokens y los protocolos para la obtención de tokens
  2. WS-Trust 1.4: Especifica cómo solicitar y recibir tokens.
  3. SAML Token 1.1: Lenguaje XML utilizado para representar los claims en un entorno de interoperabilidad.
Se considera que el concepto de claims es la evolución del de "federación", ya que ofrece mayor claridad al permitir que proveedores de claims sean externos a la propia aplicación.
 
El funcionamiento de los claims se basa en un sistema de tokens (sí, parecido a kerberos) en el que una entidad (Autentication Provider) te entrega el token conforme cumples con ese atributo identificativo, y ese token viaja hacia la aplicación con la que te has de validar.
 
 
Por tanto, la autenticación de claims se basa en un sistema de confianza (trust) entre diversas entidades: Una entidad está dispuesta a acudir a otra entidad para que le emita una serie de afirmaciones (claims) sobre un usuario concreto.
 
 
 
Sharepoint  2010 tiene su propio servicio de "Autentication Provider", es un servicio más que podemos manejar desde la administración central (Security Token Service), que soporta diversos tipos de creedenciales y escenarios federados. Se considera un proveedor "neutral".
 
De echo, en SharePoint 2010 ya no existe el concepto aislado de "Autenticación por Formularios" o FBA, sino que pasa directamente a "FBA-Claims" (las migraciones de FBA implicarán la configuracion y activación de claims).
 
¿Cual es el resultado de todo esto? Pues que por ejemplo (esto me lo invento), si entramos en la web de Ferrari (digo Ferrari porque ya sabemos todos que está construida con SharePoint) y esta tuviera autenticación basada en claims, podría no dejarnos entrar a subscribirnos a información de ciertos modelos de gama alta si una entidad certificadora (digamos "Hacienda" ) le certificara que nosotros no tenemos unas ganancias anuales suficientes para aspirar a ellos, o podría mostrarnos en la página principal el modelo que más se ajuste a nuestra edad, siendo la edad un claim que le otorgó otra entidad certificadora (digamos Facebook).
 
Personalmente pienso que los claims es un paso más en el gran esfuerzo que Microsoft ha hecho en esta versión para tener un producto "in the cloud" ("en la nube", o "en internet"), que permita hacer negocio con el hosting y las páginas web (SharePoint 2010 da un gran avance como generador de webs públicas, no solo intranets y extranets). Con claims pronto empezaremos a ver webs que nos mostrarán productos ajustados a nuestro perfil de usuario, o que nos aceptarán o denegarán el acceso porque pertenecemos a ciertos grupos de redes sociales... Sin embargo, si hablamos de intranets o extranets, probablemente tardaremos más tiempo en verle utilidad al concepto, ya que muchos seguiremos usando el "Windows Classic Autentication" de toda la vida durante los próximos años.
 
Sin embargo, empezad a empaparos del término, estoy seguro que tiene futuro... ¿Alguien quiere apostarse conmigo que en un futuro no muy lejano el Active Directory de Windows pasará a ser una entidad certificadora de claims?

5 comentarios:

Pablo dijo...

Muy buen articulo Igansi :)

Un abrazo,

Pablo (CIIN)

Ignasi Tebé Tena dijo...

Gracias Pablo,

Viniendo de vosotros es un gran elogio, soy fan acérrimo de vuestro blog. Gracias por crear escuela e inspirarnos a todos.

¡Un Abrazo!

David Martos dijo...

Yo invitándote al evento MSDN y resulta que la sesión que voy a dar yo (autenticación) bien la podrías dar tú ;)

Lo dicho, a ver si te veo por ahí y hacemos después una cerveza :)

Saludos!

Ignasi Tebé Tena dijo...

Jajaja... no lo digas muy alto que me seguro me lian pronto en NEAR para montar un evento similar... ¡Ojalá algún dia llegue al nivel para compararme contigo, amigo!

:-)

Ojalá no vaya demasiado liado y me dejen asistir. Me apunto lo de la cerveza, que en la conference... ¡Te perdiste la noche de casinos!

Anónimo dijo...

Cuál es la diferencia entre la plataforma Geneva de Microsoft y Sharepoint2010?
un saludo,