2016-07-19 5 views
1

EF 및 AspNetIdentity로 IdentityServer3을 구성했습니다. 3 MVC 클라이언트 응용 프로그램이 있습니다. 모든 사용자와 클라이언트는 SQL DB에서 구성됩니다. 나는 지금IdentityServer3 : MVC 클라이언트에 ClientSecret을 할당하는 방법은 무엇입니까?

나는 클라이언트 주위 & 사용자를 일부 보안을 추가하기 위해 노력하고있어.이 작업을 사용자가 지금에 로그인 할 수 있습니다 얻을 수 있었고, 난

1>합니까 MVC 클라이언트에서만 작동

관련된 몇 가지 질문이 암시 적 흐름? MVC 클라이언트가 있으며 아래에 OWIN이 시작되었습니다. 나는 ('암시'가 아닌 다른) 어떤 흐름에 LocalHostMvcClient의 흐름을 변경할 때

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

, 다음 클라이언트는 오류 The client application is not known or is not authorized.를 얻을. 그래서 MVC 클라이언트 처럼 그것은 Implicit 흐름과 함께 작동합니다. 사실입니까?

2> ClientSecret은 Implicit 흐름과 관련이 없습니까? ClientSecret을 사용하고 싶지만 Implicit 흐름과 관련이없는 것처럼 보입니다. Based on documentation ClientSecret은 비밀이 필요한 흐름에만 적용됩니다. 질문 1에 대한 대답이 참이라면 나는 ClientSecret을 Implicit Flow와 함께 사용할 수 없다는 것을 의미합니까?

> 여러 명의 클라이언트와 사용자가있는 경우. 특정 클라이언트에 사용자를 지정할 수 있습니까? 예를 들어, 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. 클라이언트 암호는 암시 적으로 사용되지 않습니다. 암시 적으로 요청 URL에 의존하기 때문에 명시 적 승인이 아닙니다. 그래서 클라이언트 측 언어에 유용합니다.
  3. 이것은 권한 부여 논리이며 클라이언트 응용 프로그램 내에서 처리해야합니다. 예를 들어 로그인 할 때 '승인되지 않은'페이지가 표시됩니다. Identity Server는 인증 전용입니다.
관련 문제