Cuándo se debe usar la delegación de identidad

¿Qué es la delegación de identidad?

La delegación de identidad es una característica de los Servicios de federación de Active Directory (AD FS) que permite que las cuentas especificadas por el administrador suplanten a los usuarios. La cuenta que suplanta al usuario se denomina delegada. Esta capacidad de delegación es fundamental para muchas aplicaciones distribuidas para las que hay una serie de comprobaciones de control de acceso que deben realizarse de forma secuencial para cada aplicación, base de datos o servicio que está en la cadena de autorización para la solicitud original. Hay muchas situaciones reales en las que el "front-end" de una aplicación web debe recuperar datos de un "back end" más seguro; por ejemplo, un servicio web que está conectado a una base de datos de Microsoft SQL Server.

Por ejemplo, un sitio web existente de pedido de piezas se puede mejorar mediante programación para que permita a las organizaciones asociadas ver el estado de su propio historial y cuenta de compras. Por motivos de seguridad, todos los datos financieros de socios comerciales se almacenan en una base de datos segura en un servidor específico de Lenguaje de consulta estructurado (SQL). En esta situación, el código de la aplicación de front-end no sabe nada de los datos financieros de la organización del asociado. Por lo tanto, debe recuperar los datos de otro equipo de otra ubicación de la red que aloje (en este caso) el servicio web para la base de datos de elementos (el backend).

Para que este proceso de recuperación de datos funcione, es necesario que haya alguna sucesión de protocolo de enlace de autorización entre la aplicación web y el servicio web para la base de datos de piezas, como se muestra en la siguiente ilustración.

identity delegation

Dado que la solicitud original se realizó en el propio servidor web, que es probable que se encuentre en una organización completamente diferente de la organización del usuario que está intentando tener acceso al servidor web, el token de seguridad que se envía con la solicitud no cumple los criterios de autorización necesarios para tener acceso a cualquier otro equipo además del servidor web. Por lo tanto, la única manera en que se puede cumplir la solicitud del usuario original es colocando un servidor de federación intermedio en la organización del asociado de recursos para ayudar a volver a emitir un token de seguridad que tenga los privilegios de acceso necesarios.

¿Cómo funciona la delegación de identidades?

Las aplicaciones web de arquitecturas de aplicación de varios niveles a menudo llaman a servicios web para tener acceso a funcionalidades o datos comunes. Es importante para estos servicios web conocer la identidad del usuario original para que el servicio pueda tomar decisiones de autorización y facilitar la auditoría. En este caso, la aplicación web front-end representa el usuario en el servicio web como un delegado. AD FS facilita este escenario permitiendo que las cuentas de Active Directory actúen como un usuario en otro usuario de confianza. En la siguiente ilustración, se muestra un escenario de delegación de identidad.

Illustration that shows an identity delegation scenario.

  1. Frank intenta acceder al historial de pedidos desde una aplicación web en otra organización. Su equipo cliente solicita y recibe un token de AD FS para la aplicación web de front-end de pedidos de piezas.

  2. El equipo cliente envía una solicitud a la aplicación web, incluido el token obtenido en el paso 1, para demostrar la identidad del cliente.

  3. La aplicación web necesita comunicarse con el servicio web para completar su transacción para el cliente. La aplicación web se pone en contacto con AD FS para obtener un token de delegación con el fin de interactuar con el servicio web. Los tokens de delegación son tokens de seguridad que se emiten a un delegado para que actúen como un usuario. AD FS devuelve un token de delegación con notificaciones sobre el cliente dirigidas al servicio web.

  4. La aplicación web usa el token que se obtuvo de AD FS en el paso 3 para tener acceso al servicio web que actúa como cliente. Al examinar el token de delegación, el servicio web puede determinar que la aplicación web actúa como el cliente. El servicio web ejecuta su directiva de autorización, registra la solicitud y proporciona los datos del historial de elementos necesarios solicitados originalmente por Frank a la aplicación web y, por tanto a Frank.

Para un determinado delegado, AD FS puede limitar los servicios web para los que la aplicación web puede solicitar un token de delegación. El equipo cliente no tiene ninguna cuenta de Active Directory para realizar esta operación correctamente. Por último, como se indicó anteriormente, el servicio web puede determinar fácilmente la identidad del delegado que actúa como usuario. Esto permite a los servicios web mostrar un comportamiento diferente en función de si están hablando directamente con el equipo cliente o a través de un delegado.

Configuración de AD FS para la delegación de identidad

Puede usar el complemento Administración de AD FS para configurar AD FS para la delegación de identidad siempre que necesite facilitar el proceso de recuperación de datos. Después de configurarlo, AD FS puede generar nuevos tokens de seguridad que incluirán el contexto de autorización que requiera el servicio de back-end para poder proporcionar acceso a los datos protegidos.

AD FS no restringe los usuarios que se pueden suplantar. Después de configurar AD FS para la delegación de identidad, hace lo siguiente:

  • Determina a qué servidores se puede delegar la autoridad para solicitar a los tokens que suplanten a un usuario.

  • Establece y mantiene separados el contexto de identidad para la cuenta de cliente que se delega y el servidor que actúa como delegado.

Puede configurar la delegación de identidad agregando reglas de autorización de delegación a una relación de confianza para usuario autenticado en el complemento Administración de AD FS. Para obtener más información sobre cómo hacerlo, consulte Checklist: Creating Claim Rules for a Relying Party Trust.

Configuración de la aplicación web frontend para la delegación de identidad

Los desarrolladores tienen varias opciones que pueden usar para programar correctamente el servicio web o la aplicación web de front-end para redirigir las solicitudes de delegación a un equipo con AD FS. Para obtener más información sobre cómo personalizar una aplicación web para que funcione con la delegación de identidad, consulte el SDK de Windows Identity Foundation.

Consulte también

Guía de diseño de AD FS en Windows Server 2012