Azure AD B2C - настраиваемая политика «Сеанс» остается в неправильном состоянии после выполнения «Самостоятельного сброса пароля»
У нас есть настраиваемая политика, основанная на стартовом пакете SocialAndLocalAccounts .
Мы добавляли поддержку от
Home Realm Discovery
на основе этого образца HomeRealmDiscovery-Modern для перенаправления пользователей, использующих сторонних поставщиков, на их правильную страницу входа (IdP)
Мы также добавили поддержку
Domain Hints
чтобы полностью пропустить нашу страницу входа для пользователей, которые входят в систему через стороннего поставщика удостоверений.
В политике используется недавно выпущенная функция самостоятельного сброса пароля в соответствии с официальными документами.
В чем проблема?
Когда пользователь выполняет «Самостоятельный сброс пароля», сеанс B2C остается в поврежденном состоянии. Если пользователя перенаправляют обратно в B2C, сеанс не выполняется.
Как мы можем это сказать? Какой вариант использования?
Действия по воспроизведению:
1: Пользователь переходит в приложение, которое перенаправляет пользователя на страницу входа B2C.
2: Пользователь вводит адрес электронной почты локальной учетной записи (Gmail) и на следующем экране нажимает ссылку «Забыли пароль», которая реализуется с помощью функции самостоятельного сброса пароля.
3: Пользователь правильно проходит процесс сброса пароля и в конечном итоге вводит фактор «MFA» (код SMS).
4: Пользователь правильно перенаправляется в Приложение с токеном идентификатора, успешный вход в систему.
6: Пользователь щелкает ссылку на новое / другое приложение, используя ту же настраиваемую политику.
7: Новое приложение перенаправляет пользователя в B2C (та же настраиваемая политика)
Ожидаемый результат: у пользователя должен быть действующий сеанс B2C, и он не должен получать запрос на повторный вход, а вместо этого должен быть перенаправлен на обратный вызов нового приложения с действительным
id-token
.
Фактический результат: пользователь отправляется обратно в новое приложение с сообщением об ошибке в URL-адресе обратного вызова и из-за ошибки перенаправляется обратно в B2C для повторного входа в систему.
Сообщение об ошибке:
AADB2C90051: No suitable claims providers were found.
Correlation ID: c014004a-d2da-4000-83e5-6d648f9acccc
Timestamp: 2021-06-16 07:17:16Z
ВАЖНО: Если пользователь проходит обычный процесс входа (без сброса пароля), все работает правильно . Пользователь может переключаться между различными приложениями, а B2C правильно устанавливает сеанс, не вызывая ошибок и не запрашивая новый вход. Система единого входа для различных приложений работает должным образом.
Вот полный
TrustFrameworkExtention
файл, который содержит всю логику и расширяется от Базового файла стартового пакета:TrustFrameworkExtention.xml
1 ответ
Попробуй это:
- В
CreateidentityProvidersCollectionLogic
менятьSM-Noop
к . - В
SM-DOMAIN
Добавлять:
<PersistedClaim ClaimTypeReferenceId="identityProviders" />