Основная причина MSIS9642 заключается в том, что новые функции группы приложений OpenID Connect в ADFS 2016 должны выдавать токен доступа для вашего приложения. Этот токен должен включать удостоверение пользователя. Чтобы выдать токен, подсистема должна понимать, какое утверждение в входящих утверждениях используется для однозначной идентификации пользователя.
В модель доверия поставщика утверждений добавлено новое свойство AnchorClaimType.
При первой установке ADFS он регистрирует встроенное доверие поставщика утверждений для AD AUTHORITY и устанавливает значение AnchorClaimType на
foo: //schemas.microsoft.com/ws/2008/06/identity/claims/ windowsaccountname
В этом можно убедиться, используя команду PowerShell get-adfsclaimsprovidertrust.
Вот почему OpenID работает при аутентификации в Active Directory.
Когда вы создаете новое доверие поставщика утверждений, система не устанавливает AnchorClaimType. Система OpenID не может выдать токен, потому что она не знает, какое входящее утверждение составляет уникальный идентификатор пользователя. Вот почему OpenID не работает при аутентификации через доверие внешнего поставщика утверждений.
Чтобы решить эту проблему, вам необходимо предпринять несколько действий:
a) Убедитесь, что вы используете Windows Server 2016 RTM. К сожалению, атрибут powershell для установки AnchorClaimType не существует в CTP, и свойство не может быть установлено с помощью пользовательского интерфейса.
б) Выберите утверждение из входящего токена, представляющее личность пользователя, и определите тип утверждения. В нашем случае мы объединялись с Azure Active Directory и выбрали имя, а тип - foo: //schemas.xmlsoap.org/ws/2005/05/identity/claims/ name
c) Установите AnchorTypeClaim для отношения доверия поставщика утверждений к типу, выбранному с помощью PowerShell.
set-adfsclaimsprovidertrust -targetidentifier идентификатор -AnchorClaimType http://schemas.xmlsoap.org/ws/2005/05/identity/claims/ имя
(получить идентификатор из PowerShell get-adfsclaimsprovidertrust)
d) Создайте по крайней мере одно входящее правило, которое передает значение для первичного входного утверждения, в нашем случае Name
Надеюсь это поможет
person
Chuck Duffy
schedule
14.10.2016