Al hablar de identidad federada casi todo el mundo tiene en mente el enlace entre cuentas (federación) sobre un proveedor de identidad (IdP) y sobre todo el single sign-on web entre diferentes proveedores de servicio (SP). Lo que es menos conocido es que los estándares de Liberty Alliance llegan mucho más lejos; concretamente nos permiten desplegar servicios web sobre un entorno estándar que garantiza la seguridad extremo a extremo en las invocaciones y el envío de mensajes y, lo que es aun más importante, proporciona los medios para que el proveedor de servicios web (WSP) pueda obtener la identidad del usuario en nombre del cual el cliente de servicios web (WSC) se ha autenticado ante dicho WSP.
A modo de introducción, voy a describir los elementos básicos de este entorno de servicios web, el denominado Liberty Identity Web Services Framework (ID-WSF).
En primer lugar, es necesario conocer los conceptos básicos de Liberty Identity Federation Framework (ID-FF), de los cuales hablé en una entrada anterior.
De una manera simplificada y para que podamos entender el flujo básico en ID-WSF, podemos hablar de las siguientes entidades definidas por la especificación:
- Web Services Client (WSC): es la entidad que invocará al servicio web en nombre de un usuario concreto.
- Web Services Provider (WSP): el proveedor del servicio web en sí. En este ejemplo es un proveedor de atributos o Attribute Provider (AP), un servicio que proporciona datos del usuario sujetos a permiso expreso de éste (por ejemplo datos en una red social que el usuario permite compartir con el resto de los usuarios de la misma).
- Discovery Service (DS): una entidad definida en ID-WSF que permite el registro de la oferta de servicios web disponibles por parte del WSP y la consulta de dicha oferta junto con la obtención de tokens de seguridad para la invocación por parte del WSC.
- Interaction Service (IS): conjunto de protocolos que permite al WSP obtener un consentimiento expreso por parte del usuario.
- Data Services Template (DST): es un entorno de trabajo extensible que permite construir servicios web basados en la identidad del usuario sobre los protocolos definidos en ID-WSF, para facilitar la interoperabilidad entre WSC y WSP.
El siguiente ejemplo se basa en un usuario previamente autenticado en su IdP que accede a un servicio de compra online desde un navegador web (User Agent), el cual debe obtener la dirección de envío del paquete desde un proveedor de atributos accesible dentro del círculo de confianza Liberty. El diagrama es bastante autoexplicativo:

Los conceptos básicos que se extraen del ejemplo son:
- ID-WSF proporciona todos los mecanismos necesarios, tanto a nivel de transmisión como de integridad de mensajes (utiliza perfiles de WS-Security) para disponer de seguridad extremo a extremo en nuestros servicios web.
- El paso de ID-FF a ID-WSF es transparente al usuario. En otras palabras: existe SSO también para la invocación de servicios, procedente del entorno de federación.
- Es posible, en función del perfil de seguridad elegido, que el WSP reciba la identidad del usuario en nombre del cual se efectúa la invocación. Esto permite construir servicios web sensibles a la identidad del usuario.
- La privacidad de los datos del usuario siempre está garantizada, ya que cualquier intercambio de atributos estará sujeto a su consentimiento expreso.