2016-07-19 4 views
1

Ich habe IdentityServer3 mit EF und AspNetIdentity konfiguriert. Ich habe 3 MVC-Client-Anwendungen. Alle Benutzer und Clients sind in der SQL DB konfiguriert. Ich konnte es zum Laufen bringen und die Benutzer können sich nun einloggen.IdentityServer3: Wie wird ClientSecret dem MVC Client zugewiesen?

nun eine gewisse Sicherheit um Client hinzufügen & Nutzer Ich versuche, und ich habe einige Fragen im Zusammenhang

1> Funktioniert nur MVC-Client arbeitet mit Impliziter Fluss? Ich habe MVC-Client und unten ist es OWIN Startup.

public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationType = "Cookies" 
      }); 

      app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions 
      { 
       Authority = "https://localhost:44314/identity", 
       Scope = "openid", 
       ClientId = "LocalHostMvcClient", 
       RedirectUri = "http://localhost:34937/", 
       ResponseType = "id_token", 
       SignInAsAuthenticationType = "Cookies"     
      }); 
     } 
    } 

Auf IdentityServer, wenn ich den Fluss von LocalHostMvcClient einem Fluss (andere als ‚implizite‘) ändern dann erhalten Client-Fehler The client application is not known or is not authorized.. So sieht es aus wie für MVC-Client es funktioniert nur mit Implicit fließen. Ist das wahr?

2> Ist ClientSecret für Implicit nicht relevant? Ich möchte ClientSecret verwenden, aber sieht aus wie es für Implicit nicht relevant ist. Basierend auf documentation ist ClientSecret nur für Flüsse relevant, die ein Geheimnis erfordern. Wenn die Antwort auf Frage 1 wahr ist, bedeutet das, dass ich ClientSecret mit Implicit Flow nicht verwenden kann?

3> Wenn ich mehrere Clients und Benutzer habe. Können wir einem bestimmten Kunden einen Benutzer zuweisen? Zum Beispiel, wenn ich 3 Clients habe, www.client1.com, www.client2.com, www.client3.com und 2 Benutzer User1, User2. Ich möchte, dass sich User1 nur für www.client1.com anmelden kann. Ist das möglich?

Antwort

1
  1. ASP.NET MVC kann einen beliebigen OpenID Connect-Flow verwenden. Der Fehler, den Sie erhalten, ist darauf zurückzuführen, dass die Clientanwendung etwas anfordert, das nicht erlaubt ist oder auf andere Weise falsch konfiguriert ist. Aktivieren Sie die Anmeldung in Identity Server und es wird Ihnen bald erklären, warum.
  2. Das Clientgeheimnis wird nicht implizit verwendet, da es sich implizit um die anfordernde URL handelt und nicht um eine explizite Autorisierung. Aus diesem Grund ist es für clientseitige Sprachen nützlich.
  3. Dies ist die Berechtigungslogik und sollte innerhalb der Client-Anwendung behandelt werden. Zum Beispiel, wenn sie sich einloggen, wird ihnen eine "nicht autorisierte" Seite angezeigt. Identity Server dient nur zur Authentifizierung.
Verwandte Themen