Información general sobre Claims to Windows Token Service (c2WTS)

es una característica de Windows® Identity Foundation (WIF) que extrae notificaciones de UPN de los tokens de seguridad que no son de Windows, por ejemplo tokens de SAML y X.509 y genera tokens de seguridad de Windows en el nivel de suplantación. Esto permite a una aplicación de usuario de confianza (RP) suplantar al usuario. También podría necesitar tener acceso a recursos back-end, como Servidores SQL, que son externos al equipo en el que se ejecuta la aplicación de RP.

es un servicio de Windows que se instala como parte de WIF. Sin embargo, por razones de seguridad, trabaja estrictamente bajo suscripción. Se debe iniciar manualmente y se ejecuta como la cuenta de sistema local. Además, un administrador debe configurar manualmente con una lista de llamadores permitidos. De forma predeterminada, la lista está vacía. Para obtener más información, vea Cómo: Solicitar un token de c2WTS. WIF invoca mediante IPC, e no abre ningún puerto de red.

Si la aplicación de RP se ejecuta como la cuenta de sistema local, no necesita utilizar . Sin embargo, si la aplicación de RP se ejecuta como la cuenta del servicio de red, o es una aplicación de ASP.NET, por ejemplo, podría necesitar utilizar para tener acceso a los recursos en otro equipo.

Suponga tiene una granja de servidores web que está compuesta de un servidor que ejecuta una aplicación de ASP.NET, que tiene acceso a una base de datos de SQL en un servidor back-end. Desea adaptar esta aplicación para notificaciones. Sin embargo, la aplicación no puede tener acceso a la base de datos de SQL utilizando la notificación que recibe de un STS. En su lugar, utiliza para convertir la notificación de UPN en un token de seguridad de Windows. Esto permite tener acceso a la base de datos de SQL como antes.

(Observe que para permitir a una aplicación tener acceso a los recursos en un servidor diferente, un administrador de dominio debe configurar Active Directory para habilitar la delegación restringida. Para obtener información sobre cómo habilitar la delegación restringida, vea How To: Use Protocol Transition and Constrained Delegation in ASP.NET 2.0).

Nota

Si se habilita , y el enlace es una conversación segura en modo de cookie, se utilizará para "rehidratar" la identidad de Windows a partir del UPN que se serializa en la cookie de conversación segura. Esto significa que es posible que la autenticación de un error al cambiar entre una conversación segura en el modo de cookie y el modo de sesión, si se habilita pero no se configura correctamente.

Cómo utilizar c2WTS para obtener un token de seguridad de Windows

Hay dos maneras de utilizar : mapToWindows o llamar al método UpnLogon bajo demanda. Si la aplicación siempre requiere tokens de seguridad de Windows en el nivel de suplantación, puede decidir habilitar la propiedad mapToWindows en samlSecurityTokenRequirement en el elemento <securityTokenHandlers>. Por otro lado, si la aplicación solo requiere tokens de seguridad de Windows en el nivel de suplantación para ciertos casos de uso, puede elegir llamar al método UpnLogon mediante programación cuando sea necesario. Observe que la propiedad useWindowsTokenService se debe establecer en true y se debe agregar la configuración de con una lista de llamadores adecuada para la invocación correcta de este método.

WIF proporciona un método, UpnLogon, al que puede llamar una aplicación de RP, pasando la notificación de UPN que ha recibido del STS. A continuación, WIF invoca el local mediante IPC. UpnLogon devuelve WindowsIdentity que representa al usuario. La siguiente ilustración muestra cómo funciona esto:

e6a9def2-c55f-427c-a30f-1a4d8d299191

  1. Una solicitud de cliente llega a la aplicación de RP. Esta solicitud requiere que la aplicación de RP tenga acceso a un recurso externo. Para hacerlo, la aplicación de RP debe suplantar al usuario.

  2. La aplicación de RP redirige el cliente al STS de IP para la autenticación.

  3. El STS de IP autentica al usuario y emite un token de SAML que contiene una notificación de UPN (es decir, una notificación de tipo https://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn). Observe que requiere que una cadena de UPN realice sus operaciones.

  4. El cliente envía el token de SAML a la aplicación de RP.

  5. La aplicación de RP valida el token de SAML y extrae la notificación de UPN.

  6. La aplicación de RP pasa la notificación de UPN al método UpnLogon como un parámetro y recibe un token de seguridad de Windows. Esta llamada al método la realizan automáticamente los SecurityTokenHandlers de Saml 1.1 y Saml 2 cuando la propiedad mapToWindows en el SamlSecurityTokenRequirement en estos SecurityTokenHandlers está establecida en true y el valor de useWindowsTokenService en el elemento <windowsClaimsIdentity> de <Microsoft.IdentityModel> está establecido en true.

  7. La aplicación de RP utiliza la Identidad de Windows para suplantar al usuario y obtener acceso al recurso.