Ошибка 70001 при попытке войти в систему как пользователь Azure AD B2C с настраиваемой политикой Identity Experience Framework

У нас есть веб-приложение, защищенное с помощью Azure AD B2C с использованием настраиваемых политик Identity Experience Framework, позволяющих пользователям регистрироваться и входить в систему с учетными данными социальных сетей (Microsoft, Google, Facebook), или с идентификатором из другого федеративного экземпляра Azure AD, или с помощью 'локального 'Учетные записи электронной почты / пароля.

Все социальные аккаунты и Федеративная AD работают правильно. Зарегистрируйтесь и войдите с помощью электронной почты / пароля, но теперь мы столкнулись с ошибкой. Мы сознательно не вносили никаких изменений в нашу конфигурацию электронной почты / пароля, так как в последний раз было известно, что она работает, поэтому мы не уверены, как это произошло.

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

(Показанный адрес электронной почты не является действительным. Ошибка повторялась несколькими пользователями с новой и старой комбинациями электронной почты и пароля.)

Заглянув в портал, вы обнаружите основную ошибку:

70001 Приложение с именем X не было найдено в клиенте с именем Y. Это может произойти, если приложение не было установлено администратором клиента или не было получено с согласия какого-либо пользователя в клиенте. Возможно, вы отправили запрос аутентификации не тому клиенту.

Иногда эта ошибка связана с невозможностью предоставить разрешения приложению на портале. Мы попытались удалить и восстановить все разрешения, а также повторно предоставить разрешения. Это не решило проблему.

Кто-нибудь знает, что может вызывать эту проблему, и, в частности, почему регистрация / вход работает правильно, а возврат входа - нет?

ОБНОВЛЕНИЕ:

Просто чтобы убедиться, что у нас есть приложения IEF и Proxy IEF, настроенные в каталоге AD: введите описание изображения здесь

И у нас есть login-NonInteractive технический профиль, настроенный в TrustFrameworkExtensions.xml:  введите описание изображения здесь

Подключив Application Insights (следуя этим инструкциям https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-troubleshoot-custom), мы можем подробнее узнать об этом ошибка:

AADSTS70001: приложение с идентификатором ProxyIdentityExperienceFrameworkAppID не найдено в каталоге weaponengine.onmicrosoft.com

Единственное место, где 'ProxyIdentityExperienceFrameworkAppID' появляется в любой из наших настраиваемых политик, показано в фрагменте XML выше, но это кажется правильным согласно документации здесь: https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack/blob/3b4898fec3bf0014b320beffa6eb52ad68eb6111/SocialAndLocalAccounts/TrustFrameworkExtensions.xml#L38 - если мы не собираемся обновлять и эти атрибуты DefaultValue?

Решение. Согласно приведенному ниже ответу, необходимо обновить как метаданные, так и значения по умолчанию с соответствующими идентификаторами приложений. Стоит отметить, что в примере GitHub https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack/blob/3b4898fec3bf0014b320beffa6eb52ad68eb6111/SocialAndLocalAccountplate########################### , что приводит к нашему отсутствующему при замене всех:

введите здесь описание изображения




Ответы (1)


Вход в локальную учетную запись аутентифицирует конечного пользователя в каталоге Azure AD B2C, а затем считывает из него объект пользователя.

Регистрация локальной учетной записи и вход в учетную запись социальной сети не аутентифицируют конечного пользователя в каталоге Azure AD B2C. Регистрация локальной учетной записи записывает в нее объект пользователя. Вход в учетную запись социальной сети делегирует аутентификацию поставщику социальной идентификации, а затем либо записывает объект пользователя в каталог Azure AD B2C, если объект пользователя не существует, либо считывает объект пользователя из каталога Azure AD B2C, если объект пользователя существует. .

Чтобы включить аутентификацию конечного пользователя с помощью входа в локальную учетную запись в каталоге Azure AD B2C, необходимо добавьте приложения Identity Experience Framework в каталог Azure AD B2C, а затем login-NonInteractive.

Для регистрации локальной учетной записи и входа в социальную учетную запись эти приложения не требуются.

person Chris Padgett    schedule 07.04.2018
comment
Спасибо, Крис. См. Обновление выше: мы выполнили оба этих шага, и они выглядят правильно настроенными. Я не понимаю, как зарегистрироваться - ›вход в систему может работать правильно, но вход в одиночку может не работать? - person Jude Fisher; 09.04.2018
comment
Привет @JcFx Спасибо за дополнительную информацию. Вы также должны изменить значения DefaultValue для типов входных утверждений client_id и resource_id на идентификаторы приложений для приложений ProxyIdentityExperienceFramework и IdentityExperienceFramework. - person Chris Padgett; 11.04.2018
comment
Спасибо, Крис. Понятно, теперь работает. Небольшое педантичное замечание: в примере значения по умолчанию и шаблон в метаданных пишутся с заглавной буквы по-разному («AppId» и «AppID») - отсюда возникает путаница в отношении того, заменять ли их оба. См. Рис. Выше в измененном вопросе. - person Jude Fisher; 11.04.2018