В id_token отсутствуют пользовательские утверждения с использованием AD FS 2016 с использованием OpenID Connect - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь использовать ADFS 2016 с аутентификацией OpenID Connect из собственного Android приложения для получения идентификатора токена. Идентификационный токен будет затем предложен на мой сервер в качестве доказательства того, кто пользователь, и некоторых дополнительных свойств (например, адрес электронной почты, имя / фамилия) в качестве утверждений.

Идентификационный токен должен содержать пользовательские утверждения - это Моя точка отсчета.

Я настроил группу приложений в ADFS и добавил собственное приложение и веб-API.

Я представил свой сервер в ADFS как веб-API, поскольку это позволило мне укажите правила для пользовательских претензий. В дополнение к настраиваемым правилам утверждений я также установил разрешенные области действия для своего собственного приложения на «openid profile email allatclaims»

Библиотека Android, которую я использовал, - это библиотека OpenID AppAuth - все это прекрасно работает. за исключением того, что у идентификатора токена нет дополнительных утверждений внутри.

Приложение Android использует тип кода Code с использованием идентификатора клиента из собственного приложения в ADFS. Я установил параметр aud в качестве идентификатора Web API.

Я просто не вижу, чего мне не хватает, что заставит клиента получить идентификационный токен с этими пользовательскими утверждениями.

В качестве дополнительного теста я создал приложение macOS с использованием MS ADAL, которое успешно предоставило пользовательские утверждения, но они были в access_token и использовали SAML.

1 Ответ

1 голос
/ 27 марта 2020

Вы смотрели на этот образец ?

Должно иметь:

  • response_mode установлен как form_post
  • Only publi c клиенты могут получать пользовательские утверждения в идентификаторе токена
  • Идентификатор проверяющей стороны (идентификатор веб-API) должен совпадать с идентификатором клиента

С KB4019472, установленным на вашем Серверы AD FS:

  • response_mode установлен как form_post
  • И publi c, и конфиденциальные клиенты могут получать настраиваемые утверждения в токене ID
  • . клиент - RP пара.
...