Как включить утверждения access_token в ProfileDataRequestContext?

Это дополнительный вопрос к моему предыдущему вопросу -authorize-endpo/37842521#37842521">здесь. Мой вопрос касается того, когда я запрашиваю пользовательскую UserInfoEndpoint, я ожидаю, что утверждения из моего токена доступа (который отправляется в качестве токена носителя в запросе) будут частью контекста ProfileDataRequestContext. Проблема в том, что это не так, в частности, я хочу, чтобы утверждение ticket было в контексте, однако контекст пуст (за исключением sub, который, как я понимаю, всегда присутствует).

Пожалуйста, смотрите мой предыдущий вопрос относительно реализации, так как я не хочу публиковать все здесь.

Заранее спасибо...

Логи для справки...

2016-06-15 13:52:11.508 -05:00 [Information] Creating userinfo response
2016-06-15 13:52:11.513 -05:00 [Information] Scopes in access token: "app openid offline_access appaccess"
2016-06-15 13:52:11.514 -05:00 [Information] Requested claim types: "applicationDto sub"
2016-06-15 13:52:11.514 -05:00 [Debug] Getting ProfileDataAsync
2016-06-15 13:52:11.514 -05:00 [Debug] The claims in the context...
2016-06-15 13:52:11.514 -05:00 [Debug] Claims sub 783bf872-b864-4042-853d-04fbcb7a505a
2016-06-15 13:52:11.514 -05:00 [Debug] The requseted claims...
2016-06-15 13:52:11.514 -05:00 [Debug] Cliams applicationDto
2016-06-15 13:52:11.514 -05:00 [Debug] Cliams sub
2016-06-15 13:52:11.514 -05:00 [Debug] Finished ProfileDataAsync
2016-06-15 13:52:11.514 -05:00 [Information] Profile service returned to the following claim types: "sub"
2016-06-15 13:52:11.514 -05:00 [Information] End userinfo request
2016-06-15 13:52:11.516 -05:00 [Information] Returning userinfo response.

Обновление: после обсуждения проблемы на github было установлено, что это не поддерживается, было предложено поставить тикет в id_token, однако это все равно не решает проблему.

Можно ли каким-либо образом получить утверждение ticket как часть контекста в UserInfoEndpoint?

Логи после обновления...

2016-06-16 12:23:08.023 -05:00 [Information] Creating userinfo response
2016-06-16 12:23:08.027 -05:00 [Information] Scopes in access token: "app openid offline_access appaccess"
2016-06-16 12:23:08.028 -05:00 [Information] Requested claim types: "applicationDto sub ticket"
2016-06-16 12:23:08.028 -05:00 [Debug] Getting ProfileDataAsync
2016-06-16 12:23:08.028 -05:00 [Debug] Claims in Claims in the context...
2016-06-16 12:23:08.028 -05:00 [Debug]     "sub : 783bf872-b864-4042-853d-04fbcb7a505a"     
2016-06-16 12:23:08.028 -05:00 [Debug] Claims in Requested Claims...
2016-06-16 12:23:08.028 -05:00 [Debug]     "applicationDto"     
2016-06-16 12:23:08.028 -05:00 [Debug]     "sub"     
2016-06-16 12:23:08.028 -05:00 [Debug]     "ticket"     
2016-06-16 12:23:08.028 -05:00 [Debug] Claims in Issued Claims...
2016-06-16 12:23:08.028 -05:00 [Debug]     "sub : 783bf872-b864-4042-853d-04fbcb7a505a"     
2016-06-16 12:23:08.028 -05:00 [Debug] Finished ProfileDataAsync

person Callback Kid    schedule 15.06.2016    source источник


Ответы (1)


Это ожидание неверно — информация о пользователе — это концепция OpenID Connect и альтернативный способ получить утверждения, которые в противном случае были бы в токене идентификации. Не токен доступа.

Тем не менее, в вашем методе GetProfileDataAsync в вашей пользовательской службе вы можете определить из контекста, вызываются ли вы через конечную точку userinfo, и можете возвращать любые утверждения, которые вам нравятся.

person leastprivilege    schedule 20.06.2016