Azure AD B2C - настройка политики сброса пароля непосредственно в настраиваемой политике для регистрации / входа

В Azure AD B2C, когда пользователь нажимает кнопку «Забыли / сбросить пароль», B2C перенаправляет пользователя обратно в проверяющую сторону (веб-приложение) со следующей ошибкой:

AADB2C90118: The user has forgotten their password.
Correlation ID: 124dd908-e181-408f-a363-ecbd46aa9d8e

Веб-приложение (RP) должно прочитать код ошибки и отреагировать, перенаправив пользователя обратно в B2C, указав политику PasswordReset, которая будет использоваться. Это сделано специально и задокументировано в официальных документах AAD B2C.

В нашем случае у нас есть много веб-приложений, использующих одну и ту же настраиваемую политику (SUSI и PasswordResest), чтобы предложить общий способ входа в систему.

Я хотел бы выбрать / настроить политику PasswordReset прямо в нашей настраиваемой политике для входа. Я бы хотел, чтобы пользователь не перенаправлялся обратно в приложения, а затем приложения решали, какую политику сброса пароля использовать.

Возможно ли этого достичь в B2C?


person Alboz    schedule 02.03.2021    source источник


Ответы (3)


Насколько я знаю, это не так. Единственный правильный способ сделать это через приложение, как вы уже описали, а также в соответствии с документами: https://docs.microsoft.com/en-us/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy

Однако, в зависимости от вашей реализации и общего ландшафта настройки вашей личности, вы можете попробовать использовать трюк - создать пользовательский HTML-шаблон пользовательского интерфейса, который будет включать URL-адрес выбранной вами политики сброса пароля (статический URL-адрес в шаблоне) и скрыть ( или отключите, если вы используете настраиваемые политики) исходную ссылку Забытый пароль, которая возвращается в приложение для обработки. Прикрепите этот шаблон к политике - https://docs.microsoft.com/en-us/azure/active-directory-b2c/customize-ui-with-html?pivots=b2c-custom-policy

Однако это может не работать или подходить для каждой настройки. Вы можете получить неожиданное поведение в приложении, если вы откроете политику, а затем поток завершится другой. Я сам считаю это довольно плохой практикой и отговариваю людей использовать ее там, где я работаю. Но если вам действительно нужно что-то подобное, вы можете это рассмотреть.

person wojtekdo    schedule 02.03.2021
comment
Да, я читал об этом в другом сообщении (парень это сделал), но я искал более законный способ, что-то настраиваемое непосредственно в настраиваемую политику и часть UserJourney ... - person Alboz; 02.03.2021
comment
+1 за то, что нашли время и поделились своими мыслями :). Будем надеяться, что кто-то из команды AAD B2C увидит это и даст нам официальный ответ. - person Alboz; 02.03.2021

Да, это возможно.

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

Эта политика демонстрирует, как встроить процесс сброса пароля в политику регистрации или входа. Таким образом, Azure AD B2C не вернет сообщение об ошибке AADB2C90118.

person rbrayb    schedule 02.03.2021
comment
они сделали это рекомендованным подходом, выпущенным в марте. - person Alboz; 09.04.2021

С марта 2021 года рекомендуется использовать самостоятельный сброс пароля. Предыдущий метод, описанный в моем исходном посте, не считается устаревшим.

Официальная документация по самостоятельному сбросу пароля: https://docs.microsoft.com/en-gb/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy

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

person Alboz    schedule 09.04.2021