2016-07-19 74 views
1

我已經配置IdentityServer3 EF和AspNetIdentity。我有3個MVC客戶端應用程序。所有用戶和客戶端都在SQL DB中配置。我能得到它的工作,用戶現在可以登錄。IdentityServer3:如何將ClientSecret分配給MVC客戶端?

現在我想要添加各地客戶的一些安全&用戶和我有關係

1>是否MVC客戶端只適用於幾個問題隱式流?我有MVC客戶端,下面是OWIN啓動。

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"     
      }); 
     } 
    } 

在IdentityServer,當我改變的LocalHostMvcClient流向任何流量(除了「隱」),然後客戶端收到錯誤The client application is not known or is not authorized.。所以它看起來像MVC客戶端 它只適用於Implicit流程。 這是真的嗎?

2> ClientSecret與Implicit流程無關嗎? 我想使用ClientSecret,但看起來它與Implicit流程無關。基於documentation ClientSecret僅與需要祕密的流相關。如果回答問題1是真的,那麼是否意味着我不能使用ClientSecret和Implicit Flow?

3>如果我有多個客戶端和用戶。我們可以將用戶分配給特定的客戶嗎? 例如,如果我有3個客戶,www.client1.com,www.client2.com,www.client3.com和2個用戶User1,User2。我希望User1只能登錄www.client1.com 這可能嗎?

回答

1
  1. ASP.NET MVC可以使用任何OpenID Connect流。您收到的錯誤是由於客戶端應用程序請求某些內容不被允許或以某種方式被錯誤配置。在Identity Server中啓用日誌記錄,它很快會告訴你爲什麼。
  2. 隱式中不使用Client Secret,因爲隱式依賴請求的url,而不是任何明確的授權。這就是爲什麼它對客戶端語言很有用。
  3. 這是授權邏輯,應在客戶端應用程序中處理。例如,當他們登錄時,他們將被顯示爲「未經授權」的頁面。 Identity Server僅用於身份驗證。
相關問題