Freigeben über


Was ist Windows Identity Foundation?

WIF-Logo

Windows® Identity Foundation (WIF) ist ein Framework zum Erstellen von identitätsabhängigen Anwendungen. Das Framework abstrahiert die Protokolle WS-Trust und WS-Verbund und bietet Entwicklern APIs zum Erstellen von Sicherheitstokendiensten und Ansprüche unterstützenden Anwendungen. Anwendungen können von Sicherheitstokendiensten ausgegebene Token mithilfe von WIF verarbeiten und identitätsbasierte Entscheidungen für die Webanwendung oder den Webdienst treffen.

WIF hat die folgenden Hauptfunktionen:

  • Erstellen von Ansprüche unterstützenden Anwendungen (Anwendungen für vertrauende Seiten). WIF unterstützt Entwickler bei der Erstellung von Ansprüche unterstützenden Anwendungen. Neben einem neuen Anspruchsmodell bietet es Anwendungsentwicklern einen umfangreichen Satz von APIs zum Treffen von auf Ansprüchen basierenden Entscheidungen im Zusammenhang mit Benutzerzugriffen. WIF bietet Entwicklern darüber hinaus ein konsistentes Programmiermodell, unabhängig davon, ob sie ihre Anwendungen in ASP.NET-Umgebungen oder in WCF-Umgebungen erstellen. Weitere Informationen finden Sie in Anspruchsconsumer – Anwendungen der vertrauenden Seite.

  • Visual Studio-Vorlagen. WIF bietet integrierte Visual Studio-Vorlagen für Ansprüche unterstützende ASP.NET-Websiteanwendungen und WCF-Webdienstanwendungen sowie einen schnelleren Einstieg in das Ansprüche unterstützende Programmiermodell. Weitere Informationen finden Sie unter Visual Studio-Vorlagen.

  • Einfache Einrichtung von Vertrauensstellungen zwischen Ansprüche unterstützenden Anwendungen und STS. WIF enthält das Dienstprogramm FedUtil, mit dem problemlos Vertrauensstellungen zwischen Ansprüche unterstützenden Anwendungen und einem STS, z. B. Active Directory Federation Services 2.0 und LiveID STS, eingerichtet werden können. FedUtil unterstützt sowohl ASP.NET-Anwendungen als auch WCF-Anwendungen. Das Dienstprogramm ist in Visual Studio integriert, sodass es im Projektmappen-Explorer durch Klicken mit der rechten Maustaste auf ein Projekt und Auswählen des Menüelements "STS-Verweis hinzufügen" oder im Menü "Extras" in Visual Studio aufgerufen werden kann. Weitere Informationen finden Sie unter FedUtil – Federation Utility zum Einrichten einer Vertrauensstellung zwischen einer vertrauenden Seite und einem STS.

  • ASP.NET-Steuerelemente. ASP.NET-Steuerelemente vereinfachen die Entwicklung von ASP.NET-Seiten zum Erstellen von Ansprüche unterstützenden Webanwendungen. Weitere Informationen finden Sie unter Einrichten einer Vertrauensstellung zwischen einer ASP.NET-Anwendung einer vertrauenden Seite und einem STS mithilfe des FederatedPassiveSignIn-Steuerelements.

  • Übersetzen zwischen Ansprüchen und NT-Token. WIF umfasst den Windows-Dienst , der als Brücke zwischen Ansprüche unterstützenden Anwendungen und auf NT-Token basierenden Anwendungen fungiert. Der Dienst ermöglicht Entwicklern die einfache Konvertierung von Ansprüchen in eine NT-Tokenidentität sowie den Zugriff auf Ressourcen, die auf NT-Token basierende Identitäten von einer Ansprüche unterstützenden Anwendung erfordern. Weitere Informationen finden Sie unter Übersicht über Claims to Windows Token Service (C2WTS).

  • Identitätsdelegationsunterstützung für Ansprüche unterstützende Anwendungen. WIF ermöglicht die Beibehaltung der Identitäten ursprünglicher Anforderer über mehrere Dienstgrenzen hinweg. Dies kann durch Verwendung der ActAs- oder der OnBehalfOf-Funktionalität im Framework erreicht werden. Es ermöglicht Entwicklern das Hinzufügen von Identitätsdelegationsunterstützung zu Ansprüche unterstützenden Anwendungen. Weitere Informationen finden Sie unter Integration mit IIdentity und IPrincipal und Identitätsdelegationsszenario.

  • Erstellen benutzerdefinierter Sicherheitstokendienste (Security Token Services, STS). WIF macht es erheblich einfacher, einen benutzerdefinierten Sicherheitstokendienst (Security Token Service, STS) zu erstellen, der das WS-Trust-Protokoll unterstützt. Ein solcher STS wird auch als aktiver STS bezeichnet.

    Weiterhin bietet das Framework Unterstützung für das Erstellen eines STS, der WS-Verbund zum Aktivieren von Webbrowserclients unterstützt. Ein solcher STS wird auch als passiver STS bezeichnet.

    Das Framework bietet integrierte Visual Studio-Vorlagen zum Erstellen von ASP.NET- und WCF-Sicherheitstokendiensten. Mit diesen Vorlagen können einfache Sicherheitstokendienste erstellt werden, die Entwickler erweitern können, um ihren Anforderungen entsprechende Produktions-Sicherheitstokendienste zu implementieren. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen eines ASP.NET-STS und Vorgehensweise: Erstellen eines WCF-STS.

WIF unterstützt die folgenden Hauptszenarien:

  • Verbund. WIF ermöglicht die Erstellung eines Verbunds zwischen zwei oder mehr Partnern. Die Unterstützung der Erstellung von Ansprüche unterstützenden Anwendungen (vertrauende Seite) und benutzerdefinierten Sicherheitstokendiensten (STS) hilft Entwicklern bei der Umsetzung dieses Szenarios. Weitere Informationen finden Sie unter Verbundszenario.

  • Identitätsdelegation. WIF erleichtert die Beibehaltung von Identitäten über Dienstgrenzen hinweg, sodass Entwickler ein Identitätsdelegationsszenario umsetzen können. Weitere Informationen finden Sie unter Identitätsdelegationsszenario.

  • Erweiterungsauthentifizierung. Authentifizierungsanforderungen für verschiedene Ressourcen innerhalb einer Anwendung können sich unterscheiden. WIF bietet Entwicklern die Möglichkeit, Anwendungen zu erstellen, die inkrementelle Authentifizierungsanforderungen anfordern können, beispielsweise eine anfängliche Anmeldung mit der Benutzername/Kennwort-Authentifizierung und anschließend eine erweiterte Smartcardauthentifizierung. Weitere Informationen finden Sie unter Erweiterungsauthentifizierungsszenario.

Mit WIF können Sie einfacher von den Vorteilen des in diesem Thema beschriebenen anspruchsbasierten Identitätsmodells profitieren. Dieses Thema bietet eine Übersicht über die neuen Funktionen von Windows® Identity Foundation (WIF) zur Behandlung von Ansprüchen. Weitere Informationen finden Sie unter Windows Identity Foundation-Whitepaper für Entwickler.

Zugreifen auf Ansprüche über Thread.CurrentPrincipal

Verwenden Sie zum Zugreifen auf den Satz von Ansprüchen des aktuellen Benutzers in einer Anwendung für vertrauende Seiten die Methode Thread.CurrentPrincipal.

Im folgenden Codebeispiel wird die Verwendung dieser Methode dargestellt, um eine IClaimsIdentity abzurufen:

IClaimsIdentity claimsIdentity = ((IClaimsPrincipal)Thread.CurrentPrincipal).Identities[0];

Weitere Informationen finden Sie unter Vorgehensweise: Zugreifen auf Ansprüche auf einer ASP.NET-Seite.

Rollenanspruchstyp

Zur Konfigurierung einer Anwendung für vertrauende Seiten ist die Ermittlung des Rollenanspruchstyps erforderlich. Dieser Anspruchstyp wird von IsInRole verwendet. Der Standardanspruchstyp ist https://schemas.microsoft.com/ws/2008/06/identity/claims/role.

Aus verschiedenen Tokentypen von Windows Identity Foundation extrahierte Ansprüche

WIF unterstützt mehrere Kombinationen von Authentifizierungsmechanismen standardmäßig. In der folgenden Tabelle sind die Ansprüche aufgeführt, die WIF aus verschiedenen Tokentypen extrahiert.

Tokentyp

Generierter Anspruch

Zuordnung zu Windows-Zugriffstoken

SAML 1.1

  1. Alle Ansprüche von GetOutputClaimsIdentity

  2. Der https://schemas.microsoft.com/ws/2008/06/identity/claims/confirmationkey-Anspruch, der die XML-Serialisierung des Bestätigungsschlüssels enthält, wenn das Token ein Prüftoken enthält.

  3. Der https://schemas.microsoft.com/ws/2008/06/identity/claims/samlissuername-Anspruch des Issuer-Elements.

  4. AuthenticationMethod-Anspruch und AuthenticationInstant-Anspruch, wenn das Token eine Authentifizierungsanweisung enthält.

Zusätzlich zu den in "SAML 1.1" aufgeführten Ansprüchen werden mit Ausnahme von Ansprüchen des Typs https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name Ansprüche im Zusammenhang mit Windows-Authentifizierung hinzugefügt, und die Identität wird durch WindowsClaimsIdentity dargestellt.

SAML 2.0

Wie "SAML 1.1".

Wie "Windows-Konto zugeordnetes SAML 1.1".

X509

  1. Ansprüche mit dem definierten Namen X500, emailName, dnsName, SimpleName, UpnName, UrlName, thumbprint, RsaKey (dies kann mit der RSACryptoServiceProvider.ExportParameters-Methode aus der X509Certificate2.PublicKey.Key-Eigenschaft extrahiert werden), DsaKey (dies kann mit der DSACryptoServiceProvider.ExportParameters-Methode aus der X509Certificate2.PublicKey.Key-Eigenschaft extrahiert werden), SerialNumber-Eigenschaften im Zertifikat X509.

  2. AuthenticationMethod-Ansprüche mit dem Wert https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/x509. AuthenticationInstant-Anspruch mit dem Wert des Zeitpunkts, zu dem das Zertifikat überprüft wurde, im XmlSchema DateTime-Format.

  1. Verwendet den vollqualifizierten Domänennamen des Windows-Kontos als https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name-Anspruchswert. .

  2. Ansprüche des Zertifikats X509, die Windows nicht zugeordnet wurden, und Ansprüche des Windows-Kontos, die durch die Zuordnung des Zertifikats zu Windows erhalten wurden.

UPN

  1. Die Ansprüche sind den Ansprüchen im Abschnitt "Windows-Authentifizierung" ähnlich.

  2. AuthenticationMethod-Anspruch mit dem Wert https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password. Der AuthenticationInstant-Anspruch mit dem Wert des Zeitpunkts, zu dem das Kennwort überprüft wurde, im XmlSchema DateTime-Format.

 

Windows (Kerberos oder NTLM)

  1. Vom Zugriffstoken generierte Ansprüche wie PrimarySID, DenyOnlyPrimarySID, PrimaryGroupSID, DenyOnlyPrimaryGroupSID, GroupSID, DenyOnlySID und Name

  2. AuthenticationMethod mit dem Wert https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/ und dem Namen des Authentifizierungs-SSP (wie Kerberos, NTML, Negotiate usw.) in Kleinbuchstaben. AuthenticationInstant mit dem Wert des Zeitpunkts, zu dem das Windows-Zugriffstoken erstellt wurde, im XMLSchema DateTime-Format.

 

RSA-Schlüsselpaar

  1. Der https://schemas.xmlsoap.org/ws/2005/05/identity/claims/rsa-Anspruch mit dem RSAKeyValue-Wert.

  2. AuthenticationMethod-Anspruch mit dem Wert https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/signature. AuthenticationInstant-Anspruch mit dem Wert des Zeitpunkts, zu dem der RSA-Schlüssel authentifiziert wurde (das heißt, die Signatur überprüft wurde), im XMLSchema DateTime-Format.

Authentifizierungstyp

In AuthenticationMethod-Anspruch ausgegebener URI

Kennwort

urn:oasis:names:tc:SAML:1.0:am:password

Kerberos

urn:ietf:rfc:1510

SecureRemotePassword

urn:ietf:rfc:2945

TLSClient

urn:ietf:rfc:2246

X509

urn:oasis:names:tc:SAML:1.0:am:X509-PKI

PGP

urn:oasis:names:tc:SAML:1.0:am:PGP

Spki

urn:oasis:names:tc:SAML:1.0:am:SPKI

XmlDSig

urn:ietf:rfc:3075

Nicht angegeben

urn:oasis:names:tc:SAML:1.0:am:unspecified