1

나는 identityserver4, API 프로젝트 및 UI의 인스턴스를 작성했습니다.IdentityServer4 Password Grant

  1. 사용자가 UI를 방문 다음과 같이

    워크 플로입니다.

  2. 사용자는 UI에 사용자 이름과 암호를 제공합니다.
  3. UI는 Identity App4를 사용하여 사용자를 인증하기 위해 암호 부여를 사용하는 웹 응용 프로그램의 뒷면으로 자격 증명을 전송합니다.
  4. IdentityServer4가 토큰을 반환합니다.
  5. 토큰은 사용자가 UI에 누구인지 식별하고 사용자가 사이트의 특정 섹션에 액세스 할 수있게하는 데 사용됩니다.
  6. 사용자가 사이트 내에서 어떤 작업을해야 할 때 토큰은 무기 인증을 통해 API로 전달됩니다.

비밀 번호 부여는 협상이 불가능합니다. 이는 최초 앱이기 때문에 사용자를 기본 사이트에서 다른 사람으로 리디렉션하는 것은 의미가 없습니다.

이 용도로 사용할 수있는 적절한 미들웨어 세트는 무엇입니까? CookieAuthenticationMiddleware를 사용하고 토큰을 클레임으로 첨부해야합니까? HttpContext.User 클레임에서 클레임에 액세스해야합니다. IdentityMiddleware를 사용해야합니까?

답변

4

당신은 암호를 부여 유형을 사용하여 신원 범위를 요청하고 클레임을 해결하기 위해 사용자 정보 엔드 포인트를 사용할 수 있습니다 - 같은이 샘플 :

https://github.com/IdentityServer/IdentityServer4.Samples/tree/dev/Clients/src/ConsoleResourceOwnerFlowUserInfo

그리고 네 - 당신은 지속 쿠키 미들웨어를 사용할 수 있습니다 이러한 주장 및 나중에 사용하기 위해 액세스 토큰.

+0

안녕하세요, 클라이언트가 비밀을 저장할 수없는 Javascript 클라이언트 인 경우 암시 적 플로우를 사용합니까? 클라이언트가 1 차 AngularJS 앱인 것처럼 별도의 로그인 화면으로 리디렉션 할 필요가없는 비슷한 시나리오에 직면하고 있습니다. 어떤 생각이라도 감사 할 것입니다! –