У нас есть веб-приложение, защищенное с помощью 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########################### , что приводит к нашему отсутствующему при замене всех: