Anexo A. Conceptos sobre federación de identidades

Qué es una federación de identidades

Una federación de identidades es un grupo o conjunto de entidades que comparten la técnología, estandares y casos de uso que permiten transmitir información de identidad de un usuario de manera segura facilitando la autenticación y autorización entre diferentes dominios.

En una federación de identidades se establece un círculo de confianza que permite que un usuario autenticado en un organismo de la federación acceda a recursos de otro organismo de la misma federación. La idetificación se realiza en los Proveedores de Identidad (abrev. ingl. IdP). El Proveedor de Servicio (abrev. ingl. SP) al que accede el usuario confía en los datos del usuario que le son suministrados por el IdP y en función de los mismos autoriza al usuario a hacer uso de los recursos.

En una federación de identidades los servicios perciben al usuario como una entidad homogenea y no como un conjunto de porciones de información sin relación entre ellas. Se denomina identificador opaco al identificador único que mantiene la privacidad del usuario y que representa la asociación entre la cuenta del usuario en un Proveedor de Servicio y la que posee en el Proveedor de Identidad.

_images/federacion.jpg

Esquema federación

Es tarea del operador de la federación de identidades:

  • Decidir y gestionar la integración de los miembros (tanto proveedores de identidad como de servicio) a la federación.
  • Gestionar las políticas de liberación de atributos (ARPs) y velar porque estás se cumplan.
  • Definir los esquemas de datos que van a utilizar los diferentes miembros con el fin de homogeneizar atributos.
  • Actuar como intermediario e incluso poder gestionar el consentimiento de cesión de datos para servicio que accede el usuario.
  • Velar por el correcto funcionamiento de la federación.
  • Gestionar la interoperabilidad con otras federaciones formando confederaciones de identidades.

Ventajas de la federación de identidades

  • Ventajas para los usuarios:
  • Identidad única para todos los servicios federados: Una única clave que le da acceso a todos los servicios.
  • Single Sign ON (SSO) Web. Una vez identificado el usuario en un sistema federado tendrá acceso al resto de servicios hasta que se finalice la sesión (log out) sin tener que volver a introducir sus credenciales de acceso.
  • Single Log Out (SLO). Al cerrar sesión de una aplicación se cerrará la sesión de todas las aplicaciones federadas, mejorando así la seguridad del sistema.
  • Fiable, fácil y rápido. Al usuario se le presentá un único sistema de autenticación que conoce.
  • Ventajas para administradores de sistemas:
  • Facilita los procedimientos. Se despliega un escenario controlado en el que los accesos están monitorizados y todos el procesos controlados.
  • Menor número de incidencias:
  • Al existir una clave única los administradores dejan de atender a incidencias relacionadas con pérdidas y reseteos de claves.
  • Los datos de los usuarios pasan a estar en un punto común verificados y actualizados por lo que se reducen las duplicidades de cuentas y los conflictos.
  • Mayor control de los datos del usuario. Mediante la definición de ARPs (Attribute Release Policies) adecuadas el administrador puede decidir, dentro del conjunto de datos que posee de cada usuario, cuáles enviar a un servicio concreto.
  • Ventajas para las organizaciones:
  • Ahorro en costes. Se ha demostrado que su uso reduce considerablemente sus costes de mantenimiento.
  • Mayor interoperabilidad / productividad. Fácil integración con multitud de sistemas heterogéneos. la tecnología SAML2 se erige como el futuro de los sistemas de federación de identidades. Un ejemplo son los exitodos sistemas de acceso unificado de Facebook o Google, que permiten acceder a todos sus servicios bajo el protocolo SAML2.
  • Reducción de riesgos de seguridad. Las comunicaciones que envían información del usuario siempre van cifradas incluso cuando se accede por protocolos no seguros como HTTP. La contraseña del usuario nunca viaja entre los distintos nodos de la federación. Se utiliza tecnología PKI para todo este proceso de cifrado de comunicaciones.

Ejemplos de federaciones

En la actualidad podemos identificar muchas federaciones de identidad basadas en la tecnología SAML:

Europeas:

  • Españolas:
  • En Andalucía existe Confía que es una federación de identidades de las universidades andaluzas.
  • En España tenemos el Servicio de dentidad de SIR operado por REDIRIS
  • En Dinamarca tienen la federación de identidades WAYF operado por el WAYF-secretariat.
  • En Reino Unido tienen la JANET(UK) operada por JISC y EDINA
  • En Finlandia tienen HAKA operada por
  • En Holanda tienen la SURFfederatie operada por SURFnet
  • En Norugega tienen FEIDE operada por Uninett
  • En la República Checa tienen SWITCHaai operada por SWITCH
  • Existe una confederación de los paises nórdicos denominada Kalmar Union
  • Existe una federación para la educación superior y la investigación europea llamada Edugate
  • También a nivel europeo destacamos el proyecto STORK que trata de proveer una plataforma de interoperabilidad de identidades.
Esquema federación

No europeas:

Esquema federación

Se puede consultar más información sobre federaciones en una wiki de Terena.

Conceptos (IdP, SP, AA, WAYF, atributos, bindings)

IdP Proveedor de Identidad. Organización que provee la autenticación del usuario y devuelve los datos del usuario que el SP requiere para autorizar su acceso al recurso o servicio.

SP Proveedor de Servicio. Cualquier organismo o institución registrado en la federación que provee acceso al usuario final a algún servicio y recurso basandose en una serie de atributos que satisfacen sus requerimientos de autorización.

WAYF Cuando un SP está conectado a varios proveedores de identidad surge la necesidad de que el usuario seleccione en que entidad se desea identificar. A este proceso de identificar tu proveedor de identidad se le conoce como WAYF, que viene de las siglas Where Are You From.

AA Autoridad de atributos. Sistema que responde consultas sobre atributos.

Gestor de metadatos Elemento encargado de gestionar los diferentes metadatos de las entidades que componen la federación (IdPs y SPs). Dichos metadatos deberán de estar actualizados periódicamente. Además opcionalmente puede validar los metadatos, clasificarlos, validar los certificados de los metadatos o gestionar las ARPs.

Scoping Indica al IdP el ambito de la petición. De que SP surgió y con que contexto.

Binding Mapeo de una petición SAML o de una aserción de respuesta con un protocolo específico de transporte. (HTTP-Redirect, HTTP-POST, Artifact o SOAP)

Descubrimiento En terminos de federación se hace referencia al descubrimiento como la acción de obtener la lista de proveedores de identidad.

Metadatos Conjunto de datos que conforman la información necesaria para que una entidad se comunique con otra entidad de la federación. En el protocolo SAML distinguimos los metadatos de los IdPs y de los SPs.

Entity ID Dentro de los metadatos de una entidad se define el entity id como el identificador que unívocamente al SP o IdP. La última tendencia es la de utilizar como entity id la url en la que se publican los metadatos de dicha entidad.

ARP Política de liberación de atributos. Política que rige la distribución de los atributos del usuario a los diferentes SPs.

Atributo Parte sencilla de los datos de un usuario (como por ejemplo el nombre, apellido, email, etc). Pueden ser generales o personales. Uno o la agrupación de varios atributos identifican univocamente al usuario.

Esquema de atributos Compendio de nombres de atributos estandarizado. Surge de la necesidad de definir un vocablo común que defina un nombre para los diferentes atributos que forman parte de la información del usuario que van a transferirse entre los elementos de la federación de identidades.

Identificador opaco Identificador persistente que puede ser usado para conectar cuentas de usuario conservando la privacidad.

Consentimiento En términos de federación se hace referencia al consentimiento como a la acción en la que el usuario acepta que los atributos que posee un IdP se transfieran a un SP (cumpliendo la ARP y de forma segura).

SAML Es el lenguaje de marcado para las aserciones de seguridad. Un estandar definido y mantenido por OASIS. Está basado en XML y diseñado para el intercambio de información sensible de forma segura.

XML Encryption Un estandar W3C para cifrar un documento XML. Es usado en SAML para cifrar la Aserción SAML con el fin de dificultar que una entidad o individuo que no pertenezca a la federación pueda obtener los datos del usuario.

XML Signature Un estandar W3C para firmar un documento XML. Es usado en SAML para autenticar al organismo que firmo el documento permitiendo establecer una relación de confianza.

Profile Reglas que definen como integrar las aserciones SAML y como extraerlas de otros protocolos para poder habilitar el SSO y el SLO. Define también el flujo de peticiones y respuestas SAML que se efectuan en un determinado caso de uso.

SSO Single Sign On. Procedimiento de autenticación que habilita al usuario para acceder a varios sistemas con una sola instancia de identificación. En una federación de identidades el SSO habilita al usuario a acceder a cada uno de los SP (previa autorización en el mismo) una vez se haya identificado en un IdP.

SLO Single Log Out. Procedimiento por el cual el usuario deja de estar identificado en el conjunto de aplicaciones/elementos en los que estuviera logado.

Puede ampliar su glosario de terminos con el siguiente documento.

Protocolos (SAML PAPI, OpenId)

SAML

Security Assertion Markup Language. Está basado en XML y es un estandar abierto para el intercambio de información de autorización y autenticación entre dominios de forma segura. Fue creado por la empresa OASIS

Básicamente define como debe de hacerse de forma segura la tránsmisión de los diferentes tipos de aserciones SAML entre IdPs y SPs utilizando un binding definido.

Diagrama SAML

Para saber mas del protocolo SAML puede consultar el siguiente tutorial

PAPI

PAPI es un sistema de SSO desarrollado por RedIRIS desde el año 2001. Permite desplegar una infraestructura de autenticación y autorización y un sistema de Single Sign-On fácilmente.

Los componentes principales del sistema son: El servidor de autenticación (AS) y los puntos de acceso (PoA).

Un PoA se encarga de interceptar los accesos a recursos o servicios forzando la auntenticación del usuario en un AS (cada PoA puede estar conectado a uno o varios AS),La autenticación se produce contra alguno de los backends configurados en el AS (Ldap, BD, etc) y tras producirse se genera una aserción que se transmite al POA, y que contiene datos del usuario autenticado.

Existe un elemento especial que se denomina GPoA que se conecta con varios PoAs y a un AS, que se comporta como si fuera un AS para sus PoAs, estableciendo una relación de confianza con ellos y suya a su vez con el AS.

Si el PoA no puede integrarse con la aplicación a federar (diferente tecnologia, diferente entorno) se hace uso de un elemento conocido como Proxy PAPI.

Arquitectura sistema PAPI

El funcionamiento de PAPI es bastante similar al Browser Post Profile de Liberty/SAML 2.0: la aserción es transmitida mediante el método POST de HTTP desde un proveedor de autenticación hasta los proveedores de servicio, solo que dicha aserción no es SAML (ni siquiera XML).

Puede obtener más información sobre el protocolo en la wiki del proyecto PAPI

OpenID

OpenID es un sistema de identificación digital descentralizado, con el que un usuario puede identificarse en una aplicación web a través de una URL (o un XRI en la versión actual) y ser verificado por cualquier servidor que soporte el protocolo.

En los aplicaciones web que soportan OpenID, los usuarios no requieren tener una cuenta de acceso. En su lugar, solo necesitan disponer de un identificador creado en un servidor que verifique OpenID, llamado proveedor de identidad o IdP.

Diagrama OpenID