ProfileDataRequestContext.RequestedClaimTypes всегда равен нулю при запросе областей, отличных от ресурсов API? - PullRequest
0 голосов
/ 31 января 2020

Почему ProfileDataRequestContext.RequestedClaimTypes равно нулю, когда пара ключ-значение запроса scopes не имеет API ресурсов (но есть и другие вещи, как ресурсы идентификации - openid, profile, phone et c.)

Почему они не считаются "Запрошенными"? Как тогда узнать, какие утверждения включить в JWT, который должен быть сгенерирован?

Очевидно, что если я запрашиваю ресурс API , и все мои утверждения перечислены в свойстве UserClaims все работает как положено. (Перечисленные здесь претензии добавлены в коллекцию requestedClaimTypes.)

Спасибо!

1 Ответ

1 голос
/ 31 января 2020

ProfileService вызывается при создании токена, но в разных контекстах:

  • Context.Caller = ClaimsProviderAccessToken
  • Context.Caller = UserInfoEndpoint

Так что это зависит от тип сгенерированного токена.

Для токена доступа разрешены только области ресурсов (ApiResources), а для идентификационного токена , который возвращается, разрешены только области идентификаторов ( IdentityResources).

Хотя по умолчанию id_token будет содержать только утверждение sub. Дополнительную информацию можно запросить в конечной точке UserInfo.

...