Übersicht über Claims to Windows Token Service (C2WTS)

ist ein Feature von Windows® Identity Foundation (WIF), mit dem UPN-Ansprüche aus Sicherheitstoken, die nicht von Windows stammen, wie z. B. SAML- und X.509-Token, extrahiert werden sowie Windows-Sicherheitstoken auf Identitätswechselebene generiert werden. Dadurch kann eine Anwendung der vertrauenden Seite (Relying Party, RP) die Identität des Benutzers annehmen. Dies kann erforderlich sein, um auf Back-End-Ressourcen wie SQL Server zuzugreifen, die sich außerhalb des Computers mit der RP-Anwendung befinden.

ist ein Windows-Dienst, der als Teil von WIF installiert wird. Aus Sicherheitsgründen arbeitet jedoch strikt auf Abonnementbasis. Der Start muss manuell durchgeführt werden, und die Ausführung erfolgt über das lokale Systemkonto. Darüber hinaus muss von einem Administrator mit einer Liste zulässiger Aufrufer manuell konfiguriert werden. In der Standardeinstellung ist die Liste leer. Für weitere Informationen finden Sie unter Vorgehensweise: Anfordern eines Tokens vom c2WTS. WIF ruft mithilfe von IPC auf, und öffnet keine Netzwerkports.

Wenn die RP-Anwendung als lokales Systemkonto ausgeführt wird, muss nicht verwendet werden. Wenn die RP-Anwendung jedoch als Netzwerkdienstkonto ausgeführt wird oder es sich beispielsweise um eine ASP.NET-Anwendung handelt, muss möglicherweise verwendet werden, um auf Ressourcen auf einem anderen Computer zuzugreifen.

Nehmen Sie an, Sie verfügen über eine Webfarm, die einen Server mit einer ASP.NET-Anwendung umfasst, die auf eine SQL-Datenbank auf einem Back-End-Server zugreift. Sie möchten, dass diese Anwendung Ansprüche unterstützt. Die Anwendung kann auf die SQL-Datenbank jedoch nicht mit dem Anspruch zugreifen, den sie von einem STS empfängt. Stattdessen verwendet sie , um den UPN-Anspruch in ein Windows-Sicherheitstoken zu konvertieren. Dadurch kann wie vorher auf die SQL-Datenbank zugegriffen werden.

(Beachten Sie, dass Active Directory von einem Domänenadministrator für die eingeschränkte Delegation konfiguriert werden muss, um einer Anwendung zu ermöglichen, auf Ressourcen auf einem anderen Server zuzugreifen. Für Informationen zum Aktivieren eingeschränkter Delegation finden Sie unter Vorgehensweise: Verwenden von Protokollübergang und eingeschränkter Delegation in ASP.NET 2.0.)

Hinweis

Wenn aktiviert ist und es sich bei der Bindung um eine sichere Konversation im Cookiemodus handelt, wird mit die Windows-Identität vom UPN rehydriert, die in das sichere Konversationscookie serialisiert wird. Dies bedeutet, dass die Authentifizierung fehlschlagen kann, wenn zwischen sicherer Konversation im Cookiemodus und im Sitzungsmodus gewechselt wird und zwar aktiviert, jedoch nicht ordnungsgemäß konfiguriert ist.

Verwenden von Windows Token Service (C2WTS) zum Abrufen eines Windows-Sicherheitstokens

Es gibt zwei Möglichkeiten zur Verwendung von : mapToWindows oder bedarfsabhängiges Aufrufen der UpnLogon-Methode. Wenn die Anwendung immer Windows-Sicherheitstoken auf Identitätswechselebene erfordert, können Sie ggf. die mapToWindows-Eigenschaft in samlSecurityTokenRequirement für das <securityTokenHandlers>-Element aktivieren. Wenn die Anwendung Windows-Sicherheitstoken auf Identitätswechselebene dagegen nur für bestimmte Anwendungsfälle erfordert, können Sie bei Bedarf die UpnLogon-Methode programmgesteuert aufrufen. Beachten Sie, dass die useWindowsTokenService-Eigenschaft auf "true" festgelegt und der -Konfiguration eine entsprechende Aufruferliste hinzugefügt werden muss, damit diese Methode erfolgreich aufgerufen werden kann.

WIF stellt die Methode UpnLogon bereit, die von einer RP-Anwendung aufgerufen werden kann, um einen vom STS empfangenen UPN-Anspruch zu übergeben. WIF ruft dann das lokale mithilfe von IPC auf. UpnLogon gibt eine WindowsIdentity zurück, die den Benutzer darstellt. In der folgenden Abbildung wird die Funktionsweise gezeigt:

e6a9def2-c55f-427c-a30f-1a4d8d299191

  1. Eine Clientanforderung kommt bei der Anwendung der vertrauenden Seite an. Aufgrund dieser Anforderung muss die Anwendung der vertrauenden Seite auf eine externe Ressource zugreifen. Hierzu muss die Anwendung der vertrauenden Seite die Identität des Benutzers annehmen.

  2. Die Anwendung der vertrauenden Seite leitet den Client zur Authentifizierung an den IP-STS um.

  3. Der IP-STS authentifiziert den Benutzer und stellt ein SAML-Token aus, das einen UPN-Anspruch (d. h. einen Anspruch des Typs https://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn) enthält. Beachten Sie, dass zum Ausführen der Operationen eine UPN-Zeichenfolge erfordert.

  4. Der Client sendet das SAML-Token an die Anwendung der vertrauenden Seite.

  5. Die Anwendung der vertrauenden Seite überprüft das SAML-Token und extrahiert den UPN-Anspruch.

  6. Die Anwendung der vertrauenden Seite übergibt den UPN-Anspruch als Parameter an die UpnLogon-Methode und erhält ein Windows-Sicherheitstoken zurück. Dieser Methodenaufruf wird automatisch von den SAML 1.1- und SAML 2-SecurityTokenHandlers ausgeführt, wenn die mapToWindows-Eigenschaft auf dem SamlSecurityTokenRequirement dieser SecurityTokenHandler auf "true" und der Wert von "useWindowsTokenService" des Elements <windowsClaimsIdentity> im <microsoft.IdentityModel> auf "true" festgelegt ist.

  7. Die Anwendung der vertrauenden Seite nutzt die Windows-Identität, um die Identität des Benutzers anzunehmen und greift auf die Ressource zu.