2016-04-11 15 views
1

Wie fügt man einen IdentityServer (sprich idsvr1) als Client zu einem anderen IdentityServer hinzu (say idsvr2)? Ist es etwas wie das Folgende? (Unter der Annahme, dass der Code, den ich unten zeige, von idsvr2 ist)Hinzufügen eines Identityservers als Clinet zu einem anderen Identityserver

new Client 
       { 
        ClientName = "idsvr1", 
        Enabled = true, 
        ClientId = "customclient", 
        ClientSecrets = new List<Secret> 
        { 
         new Secret("secret".Sha256()) 
        }, 

        Flow = Flows.Custom, 

        AllowedScopes = new List<string> 
        { 
         "read" 

        }, 

        AllowedCustomGrantTypes = new List<string> 
        { 
         "custom" 
        } 
       }, 

Wenn die Anforderung an IdentityServer1 mit einer speziellen Nutzlast kommt, mag ich diesen Anruf zu IdentityServer2 umleiten. Wo kann ich diesen Umleitungscode in IdentityServer1 plugintieren?

Antwort

0

Das ist richtig, Sie würden einen Client-Eintrag für IDsvr1 in Idsvr2 konfigurieren.

Sie müssen dann idsvr2 als externen Identity-Provider in idsvr1 konfigurieren, genauso wie Sie es auch tun würden (z. B. Google oder Facebook). Dies würde die OpenIdConnectAuthentication Middleware verwenden. Weitere Informationen zum Hinzufügen eines externen Identitätsanbieters zu Identity Server finden Sie unter the docs.

+0

Welchen Flow muss ich verwenden, wenn ich Idsvr1 als Client in Idsvr2 konfiguriere? Mein Anwendungsfall ist, föderierte Identity Server zu erstellen. Sagen wir zum Beispiel, ich habe 2 Sicherheitszonen: Zone1 und Zone2. Jede Zone hat ihren eigenen Identity Server. Wenn Benutzer aus Zone2 versucht, auf eine Anwendung in Zone1 zuzugreifen, sollte Zone1 Identity Server Benutzer zu Zone2 Identity Server umleiten, um Zone2-Token zu erhalten (ähnlich wie ADFS-Föderation). –