Vue d'ensemble des revendications au service d'émission de jeton Windows (c2WTS)

est une fonctionnalité de Windows® Identity Foundation (WIF) qui extrait des revendications UPN de jetons de sécurité non-Windows, tels que les jetons SAML et X.509, et génère des jetons de sécurité Windows d'emprunt d'identité. Cela permet à une application de partie de confiance (RP) d'emprunter l'identité de l'utilisateur. Cela peut s'avérer nécessaire pour accéder à des ressources principales, telles que des serveurs SQL, externes à l'ordinateur sur lequel l'application RP s'exécute.

est un service Windows installé dans le cadre de WIF. Toutefois, pour des raisons de sécurité, fonctionne strictement sur abonnement. Cette fonctionnalité doit être démarrée manuellement et s'exécute en tant que compte système local. En outre, un administrateur doit configurer manuellement avec une liste d'appelants autorisés. Par défaut, la liste est vide. Pour plus d'informations, consultez Procédure : Demander un jeton de c2WTS. WIF appelle à l'aide d'IPC et n'ouvre pas de port réseau.

Si votre application RP s'exécute en tant que compte système local, elle n'a pas besoin d'utiliser . Toutefois, si votre application RP s'exécute en tant que compte de service réseau ou s'il s'agit d'une application ASP.NET, par exemple, elle devra peut-être utiliser pour accéder aux ressources d'un autre ordinateur.

Supposons que vous avez une batterie de serveurs Web comprenant un serveur qui exécute une application ASP.NET, qui accède à une base de données SQL sur un serveur principal. Vous souhaitez que cette application prenne en charge les revendications. Toutefois, l'application ne peut pas accéder à la base de données SQL à l'aide de la revendication qu'elle reçoit d'un STS. Au lieu de cela, elle utilise pour convertir la revendication UPN en jeton de sécurité Windows. Cela lui permet d'accéder à la base de données SQL comme avant.

(Notez que pour permettre à une application d'accéder aux ressources sur un serveur différent, un administrateur de domaine doit configurer Active Directory pour activer la délégation contrainte. Pour plus d'informations sur l'activation de la délégation contrainte, consultez Procédure : Utiliser la transition de protocole et la délégation contrainte dans ASP.NET 2.0 (page éventuellement en anglais).

Notes

Si la fonctionnalité est activée, et que la liaison est une conversation sécurisée en mode cookie, sera utilisée pour réactiver l'identité Windows à partir de l'UPN sérialisé dans le cookie de conversation sécurisée. Cela signifie que l'authentification peut échouer lors du basculement entre le mode cookie et le mode session de la conversation sécurisée, si est activée, mais pas correctement configurée.

Comment utiliser c2WTS pour obtenir un jeton de sécurité Windows

Il existe deux façons d'utiliser  : à l'aide de la propriété mapToWindows ou en appelant la méthode UpnLogon à la demande. Si votre application requiert toujours des jetons de sécurité Windows d'emprunt d'identité, vous pouvez choisir d'activer la propriété mapToWindows sur samlSecurityTokenRequirement sur l'élément <securityTokenHandlers>. En revanche, si votre application requiert uniquement des jetons de sécurité Windows d'emprunt d'identité pour certains cas d'utilisation, vous pouvez choisir d'appeler la méthode UpnLogon par programme lorsque cela est nécessaire. Notez que la propriété useWindowsTokenService doit être définie sur true et la configuration ajoutée avec une liste d'appelants appropriée pour que l'appel à cette méthode réussisse.

WIF fournit une méthode, UpnLogon, qu'une application RP peut appeler, en passant la revendication UPN qu'elle a reçue du STS. WIF appelle ensuite le local à l'aide d'IPC. UpnLogon retourne une WindowsIdentity qui représente l'utilisateur. L'illustration suivante montre le fonctionnement de tout ceci :

e6a9def2-c55f-427c-a30f-1a4d8d299191

  1. Une demande du client arrive à l'application RP. Cette demande requiert que l'application RP accède à une ressource externe. Pour ce faire, l'application RP doit prendre l'identité de l'utilisateur.

  2. L'application RP redirige le client vers l'IP-STS pour l'authentification.

  3. L'IP-STS authentifie l'utilisateur et émet un jeton SAML qui contient une revendication UPN (autrement dit, une revendication de type https://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn). Notez que requiert qu'une chaîne UPN exécute ses opérations.

  4. Le client soumet le jeton SAML à l'application RP.

  5. L'application RP valide le jeton SAML et extrait la revendication UPN.

  6. L'application RP passe la revendication UPN à la méthode UpnLogon comme paramètre et obtient un jeton de sécurité Windows en retour. Cet appel de méthode est fait automatiquement par les SecurityTokenHandlers Saml 1.1 et Saml 2 lorsque la propriété mapToWindows sur SamlSecurityTokenRequirement de ces SecurityTokenHandlers est true, et que la valeur d'useWindowsTokenService sur l'élément <windowsClaimsIdentity> dans <microsoft.IdentityModel> est true.

  7. L'application RP utilise l'identité Windows pour emprunter l'identité de l'utilisateur et accède à la ressource.