Freigeben über


Verbundszenario

In diesem Szenario wird eine einmalige Anmeldung für einen Partnermitarbeiter beschrieben, wenn er versucht, auf Ressourcen in der Domäne eines anderen Partners zuzugreifen. Es gibt drei wichtige Seiten in einem Verbundszenario: einen Identitätsanbieter, einen Anspruchsanbieter und eine vertrauende Seite. Windows® Identity Foundation (WIF) bietet APIs zur Erstellung aller drei Seiten.

Im folgenden Diagramm wird ein typisches Verbundszenario veranschaulicht, in dem ein Fabrikam-Mitarbeiter auf Contoso.com-Ressourcen zugreifen möchte, ohne sich erneut anmelden zu müssen, d. h. unter Verwendung der einmaligen Anmeldung.

89a58a75-d05f-4424-ab28-c7ca1fd20ede

Die folgenden fiktionalen Benutzer nehmen an diesem Szenario teil:

  • Frank: Ein Fabrikam-Mitarbeiter, der auf Contoso-Ressourcen zugreifen möchte.

  • Daniel: Ein Contoso-Anwendungsentwickler, der die notwendigen Änderungen in der Anwendung implementiert.

  • Adam: Der IT-Administrator von Contoso.

Die folgenden Komponenten sind an diesem Szenario beteiligt:

  • web1: Eine Webanwendung zur Bestellung von Teilen, die mit ASP.NET erstellt wurde und den Zugriff auf die entsprechenden Teile steuert.

  • sts1: Ein STS mit der Rolle des Anspruchsanbieters in der Domäne Contoso.com, der die von der Anwendung (web1) erwarteten Ansprüche ausgibt. Dieser hat eine Vertrauensstellung zu Fabrikam.com hergestellt und wurde zum Gewähren von Zugriff für Fabrikam-Mitarbeiter konfiguriert.

  • sts2: Ein STS mit der Rolle des Identitätsanbieters für Fabrikam.com, der einen Endpunkt bereitstellt, für den der Fabrikam-Mitarbeiter authentifiziert wird. Es wurde eine Vertrauensstellung zu Contoso.com hergestellt, sodass die Mitarbeiter von Fabrikam auf die Ressourcen von Contoso.com zugreifen können.

In obigem Diagramm ist der folgende Fluss in diesem Szenario dargestellt:

  1. Der Contoso-Administrator Adam konfiguriert die Vertrauensstellung zwischen der Anwendung (vertrauende Seite) und sts1.

  2. Der Contoso-Administrator Adam konfiguriert die Vertrauensstellung mit sts2 als Identitätsanbieter.

  3. Der Fabrikam-Administrator Frank konfiguriert die Vertrauensstellung zu sts1 als Anspruchsanbieter und greift anschließend auf die Anwendung zu.

Grundlegende Schritte in diesem Szenario

Beachten Sie, dass dieses Beispielszenario nur zur Erläuterung vorgesehen ist. In einer Produktionsumgebung müssen bei diesem Szenario unter Umständen andere Schritte ausgeführt werden.

Einrichten des Anspruchsanbieters

Dem Contoso.com-Administrator Adam stehen drei Optionen zur Verfügung:

  1. Installieren eines STS-Produkts wie Active Directory®-Verbunddienste (AD FS) 2.0

  2. Abonnieren eines Cloud-STS-Produkts wie LiveID-STS

  3. Erstellen eines benutzerdefinierten STS mithilfe von WIF

Welche Option er auswählt hängt von verschiedenen Faktoren wie Geschäftsanforderungen, Zeitachse, Verfügbarkeit technischer Ressourcen, zugewiesenem Budget usw. ab. Für dieses Beispielszenario gehen wir davon aus, dass Adam die erste Option auswählt und mithilfe der AD FS 2.0-Produktdokumentation AD FS 2.0 als RP-STS installiert.

Änderung der Anwendung zur Unterstützung von Ansprüchen

Damit web1 Ansprüche unterstützt, installiert Daniel WIF und fügt dann den folgenden Code hinzu, um die Ansprüche aufzulisten. Weitere Informationen finden Sie unter FedUtil – Federation Utility zum Einrichten einer Vertrauensstellung zwischen einer vertrauenden Seite und einem STS, Visual Studio-Vorlagen und Erstellen von Anwendungen der vertrauenden Seite.

// Erhalten von Zugriff auf IClaimsIdentity IClaimsIdentity claimsIdentity = ((IClaimsPrincipal)Thread.CurrentPrincipal).Identities[0];

foreach ( Claim claim in claimsIdentity.Claims ) { // Vor der Verwendung des Anspruchs überprüfen, dass es sich um einen erwarteten Anspruch handelt. // Anspruch ignorieren, wenn er sich nicht in der Liste der erwarteten Ansprüche befindet. if ( ExpectedClaims.Contains( claim.ClaimType ) ) { // Anspruch schreiben oder entsprechend der Anwendungslogik verwenden WriteClaim( claim, table ); } }

Herstellen einer Vertrauensstellung zwischen einer Anwendung der vertrauenden Seite und dem STS

Mit dem Tool FedUtil – Federation Utility zum Einrichten einer Vertrauensstellung zwischen einer vertrauenden Seite und einem STS stellt Daniel eine Vertrauensstellung von einer Anwendung der vertrauenden Seite zum STS her. Das Tool generiert außerdem Metadaten für die Anwendung der vertrauenden Seite und fügt die XML-Datei ("metadata.xml") im Ordner der Anwendung der vertrauenden Seite ein. Die Datei "web.config" der Anwendung der vertrauenden Seite wird automatisch mit Informationen zum STS (sts1) aktualisiert.

Konfigurieren einer Anwendung der vertrauenden Seite beim Anspruchsanbieter

Anhand der AD FS 2.0-Produktdokumentation stellt Adam eine Vertrauensstellung zur Anwendung der vertrauenden Seite her.

Konfigurieren eines Identitätsanbieters (Identity Provider, IP) bei Fabrikam

Frank, dem Administrator von Fabrikam.com, stehen drei Optionen zur Verfügung:

  1. Erwerben und Installieren eines STS-Produkts wie AD FS 2.0

  2. Abonnieren eines Cloud-STS-Produkts wie LiveID-STS

  3. Erstellen eines benutzerdefinierten STS mithilfe von WIF

In diesem Beispielszenario wird davon ausgegangen, dass Frank sich für die erste Option entscheidet und AD FS 2.0 als IP-STS installiert. Anhand der AD FS 2.0-Produktdokumentation stellt Frank ebenfalls eine Vertrauensstellung zu Contoso.com als Anspruchsanbieter her.

Zugriff auf die Webanwendung

Frank meldet sich als Fabrikam-Domänenbenutzer beim Fabrikam-System an. Anschließend öffnet er einen Browser und greift auf die Anwendung der vertrauenden Seite von Contoso.com zu. Mit den zwischen Fabrikam und Contoso hergestellten Verbundvertrauensstellungen kann Frank jetzt auf die Ressourcen bei Contoso zugreifen, ohne erneut authentifiziert werden zu müssen.

Beispielressourcen

Vollständige Szenariobeispiele finden Sie in folgenden Beispielen:

  • End-to-end\Federation for web services (active case).

  • End-to-end\Federation for web app (passive case).

Beachten Sie, dass diese Beispiele für ein einzelnes System mit benutzerdefinierten STS und einer vertrauenden Seite vorgesehen sind.