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 ответ

Попробуй это:

  1. В CreateidentityProvidersCollectionLogic менять SM-Noop к .
  2. В SM-DOMAIN Добавлять:
      <PersistedClaim ClaimTypeReferenceId="identityProviders" />
Другие вопросы по тегам