Я пытаюсь использовать 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.