0
사용자 정의 구현 작업을하는 동안 IdentityServer3의 소스 코드를 살펴 보았습니다. Id_token에 클레임을 추가하는 데 문제가 있습니다. 나는 코드 here의 조각 건너 온 :IdentityServer3에서 액세스 토큰이 요청 된 경우 id_token에서 모든 ID 클레임이 제외되는 이유는 무엇입니까?
//From AuthorizeResponseGenerator.cs, method CreateImplicitFlowResponseAsync
string jwt = null;
if (responseTypes.Contains(Constants.ResponseTypes.IdToken))
{
var tokenRequest = new TokenCreationRequest
{
ValidatedRequest = request,
Subject = request.Subject,
Client = request.Client,
Scopes = request.ValidatedScopes.GrantedScopes,
Nonce = request.Raw.Get(Constants.AuthorizeRequest.Nonce),
IncludeAllIdentityClaims = !request.AccessTokenRequested, // <---- This line
AccessTokenToHash = accessTokenValue,
AuthorizationCodeToHash = authorizationCode
};
을이 클래스는 프로그램의 흐름이 here에 도달하면 주장이 추가되는 방식에 영향에 IncludeAllIdentityClaims 속성을 설정. 내 질문은 왜 IncludeAllIdentityClaims 속성을 access_token 관련된 값을 설정하는 것입니다? 나는 access_token과 그것이 가질 수있는 클레임이 id_token과 그것과 관련된 클레임과 완전히 관련이 없다고 생각했다.
방금 의견을 작성하여 https://github.com/IdentityServer/IdentityServer3.Samples/issues/5에서 확인할 수 있습니다. OIDC 스펙에 정의 된대로 말입니다. 따라서 id_token 만 요청하면 이해할 수있는 모든 주장이 요청됩니다. 감사! –