¿Qué es Windows Identity Foundation?
Windows® Identity Foundation (WIF)es un marco para crear aplicaciones basadas en la identidad. El marco resume los protocolos WS-Federation y WS-Trust y ofrece a los programadores las API para crear security token services y aplicaciones para notificaciones. Las aplicaciones pueden utilizar WIF para procesar tokens emitidos desde security token services y tomar decisiones basadas en la identidad en la aplicación o servicio Web.
WIF tiene las siguientes características principales:
Compilar aplicaciones para notificaciones (Aplicaciones de usuario de confianza). WIF ayuda a los desarrolladores a compilar aplicaciones para notificaciones. Además de proporcionar un nuevo modelo de notificaciones, ofrece a los desarrolladores de aplicaciones un rico conjunto de API para ayudar a tomar decisiones de acceso de usuario basadas en notificaciones. WIF también proporciona a los desarrolladores una experiencia de programación coherente si deciden compilar sus aplicaciones en ASP.NET o en entornos de WCF. Para obtener más información, vea Consumidor de notificaciones - Aplicaciones de usuario de confianza.
Plantillas de Visual Studio. WIF proporciona Plantillas de Visual Studio integradas para aplicaciones de sitio web de ASP.NET y aplicaciones de servicio Web de WCF para notificaciones y reduce la curva de aprendizaje para familiarizarse con el modelo de programación basado en notificaciones. Para obtener más información, vea Plantillas de Visual Studio.
Establecimiento de confianza sencillo entre una aplicación para notificaciones y un STS. WIF proporciona una utilidad, denominada FedUtil, para permitir un establecimiento de confianza sencillo entre aplicaciones para notificaciones y un STS, por ejemplo Active Directory Federation Services 2.0 y un STS de LiveID. FedUtil admite aplicaciones de ASP.NET y WCF. También se integra con Visual Studio para que se pueda invocar desde el Explorador de soluciones haciendo clic con el botón secundario en un proyecto y eligiendo el elemento de menú "Agregar referencia STS", o en el menú Herramientas de Visual Studio. Para obtener más información, vea FedUtil - Federation Utility para establecer confianza de un RP a un STS.
Controles de ASP.NET. Los controles de ASP.NET simplifican el desarrollo de las páginas de ASP.NET para compilar aplicaciones web para notificaciones. Para obtener más información, vea Establecer la confianza de una aplicación de usuario de confianza de ASP.NET a un STS utilizando el control FederatedPassiveSignIn.
Traducir entre notificaciones y tokens de NT. WIF incluye un servicio de Windows denominado que actúa como un puente entre las aplicaciones para notificaciones y las aplicaciones basadas en tokens de NT. Proporciona a los desarrolladores una manera sencilla de convertir las notificaciones en identidad de token de NT y hace posible el acceso a recursos que requieren una identidad basada en token de NT desde una aplicación para notificaciones. Para obtener más información, vea Información general sobre Claims to Windows Token Service (c2WTS).
Compilar compatibilidad de delegación de identidad en aplicaciones para notificaciones. WIF ofrece la capacidad de mantener las identidades de los solicitantes originales en los distintos límites de servicio. Esta capacidad se puede lograr utilizando la funcionalidad "ActAs" o "OnBehalfOf" en el marco, y ofrece a los desarrolladores la capacidad de agregar la compatibilidad de delegación de identidad a las aplicaciones para notificaciones. Para obtener más información, vea Integración con IIdentity e IPrincipal y Escenario de delegación de identidad.
Compilar security token services (STS) personalizados. WIF facilita en gran medida la compilación de un security token service (STS) personalizado que admite el protocolo WS-Trust. Este tipo de STS también se conoce como STS activo.
Además, el marco también ofrece compatibilidad para compilar un STS que admita WS-Federation para habilitar clientes de explorador web. Este tipo de STS también se conoce como STS pasivo.
El marco proporciona plantillas de Visual Studio integradas para compilar las STS de ASP.NET y las STS de WCF; estas plantillas crean STS simples y los desarrolladores pueden ampliarlos e implementar STS de producción que satisfagan sus necesidades. Para obtener más información, vea Cómo: Compilar un STS de ASP.NET y Cómo: Compilar un STS de WCF.
WIF admite los siguientes escenarios principales:
Federación. WIF facilita la compilación de federación entre dos o más asociados. Su compatibilidad con la compilación de aplicaciones para notificaciones (RP) y security token services (STS) personalizados ayuda a los desarrolladores a lograr este escenario. Para obtener más información, vea Escenario de federación.
Delegación de identidad. WIF facilita el mantenimiento de las identidades en los distintos límites de servicio de manera que los desarrolladores pueden lograr un escenario de delegación de identidad. Para obtener más información, vea Escenario de delegación de identidad.
Autenticación de nivel superior. Los requisitos de autenticación para recursos diferentes dentro de una aplicación pueden variar. WIF ofrece a los desarrolladores la capacidad de compilar aplicaciones que pueden requerir requisitos de autenticación incrementales (por ejemplo, el inicio de sesión con autenticación de nombre de usuario/contraseña y, a continuación, pasar a un nivel de seguridad superior como la autenticación mediante tarjeta inteligente). Para obtener más información, vea Escenario de autenticación de nivel superior.
Mediante WIF, aprovechará con más facilidad las ventajas del modelo de identidad basado en notificaciones descrito en este tema. En este tema se proporciona información general sobre las nuevas características que proporciona Windows® Identity Foundation (WIF) para administrar notificaciones. Para obtener más información, vea Windows Identity Foundation White Paper for Developers.
Tener acceso a notificaciones a través de Thread.CurrentPrincipal
Para tener acceso al conjunto de notificaciones del usuario actual en una aplicación de RP, utilice Thread.CurrentPrincipal
.
El siguiente ejemplo de código muestra el uso de este método para obtener IClaimsIdentity:
IClaimsIdentity claimsIdentity = ((IClaimsPrincipal)Thread.CurrentPrincipal).Identities[0];
Para obtener más información, vea Cómo: Tener acceso a las notificaciones en una página de ASP.NET.
Tipo de notificación de rol
Parte del proceso de configurar la aplicación de RP consiste en determinar qué tipo de notificación de rol debería ser. IsInRoleutiliza este tipo de notificación. El tipo de notificación predeterminado es https://schemas.microsoft.com/ws/2008/06/identity/claims/role
.
Notificaciones extraídas por Windows Identity Foundation de diferentes tipos de token
WIF admite varias combinaciones de mecanismos de autenticación listas para usar. En la siguiente tabla se enumeran las notificaciones que WIF extrae de los diferentes tipos de token.
Tipo de token |
Notificación generada |
Asignar al token de Windows Access |
SAML 1.1 |
|
Además de las notificaciones enumeradas en “SAML 1.1”, excepto las notificaciones de tipo |
SAML 2.0 |
Igual que “SAML 1.1”. |
Igual que “SAML 1.1 asignada a la cuenta de Windows”. |
X509 |
|
|
UPN |
|
|
Windows (Kerberos o NTLM) |
|
|
Par de claves RSA |
|
Tipo de autenticación |
URI emitido en la notificación “AuthenticationMethod” |
Contraseña |
|
Kerberos |
|
SecureRemotePassword |
|
TLSClient |
|
X509 |
|
PGP |
|
Spki |
|
XmlDSig |
|
Sin especificar |
|