Azure AD B2C - 将 PasswordReset 策略直接配置到 Sign-Up/Sign-in 的自定义策略中

Azure AD B2C - Configure PasswordReset policy directly into the Custom Policy for Sign-Up/Sign-in

在 Azure AD B2C 中,当用户单击“Forgot/Reset”密码时,B2C 会将用户重定向回依赖方(Web 应用程序),并出现以下错误:

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

Web 应用程序 (RP) 应读取错误代码并通过将用户重定向回 B2C 并指定要使用的 PasswordReset 策略来做出反应。这是设计使然,并记录在官方 AAD B2C 文档中。

在我们的案例中,我们有许多网络应用程序共享相同的自定义策略(SUSI 和 PasswordResest),以提供共同的登录体验。

我想 pick/configure 将 PasswordReset 策略直接添加到我们的自定义登录策略中。我想避免用户被重定向回应用程序,然后应用程序决定使用什么 PasswordReset 策略。

这在B2C中可以实现吗?

据我所知不是。唯一正确的处理方法是通过应用程序进行处理,正如您已经描述的以及根据文档:https://docs.microsoft.com/en-us/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy

但是,根据您的身份设置的实施和整体情况,您可以尝试使用“技巧”——创建一个自定义 UI HTML 模板,其中将包含一个 URL 到您选择的密码重置策略(模板中的静态 URL)并隐藏(如果您使用自定义策略,则禁用)原始的“忘记密码”link,returns 回到要处理的应用程序。将该模板附加到策略 - https://docs.microsoft.com/en-us/azure/active-directory-b2c/customize-ui-with-html?pivots=b2c-custom-policy

虽然这可能不适用或不适合所有设置。如果您打开一个策略,然后流以不同的策略结束,您可能会在应用程序中遇到意外行为。我自己认为这是一种相当糟糕的做法,并阻止人们在我工作的地方使用它。但如果你真的需要这样的东西,你可以考虑。

是的,是possible

“默认情况下,当您创建注册或登录策略(使用本地帐户)时,您会在体验的第一页看到忘记密码?link。单击此 link 不会自动触发密码重置策略。相反,错误代码 AADB2C90118 被 return 发送到您的应用程序。您的应用程序需要通过调用特定的密码重置策略来处理此错误代码。

此策略演示了如何将密码重置流程嵌入注册或登录策略的一部分。因此,Azure AD B2C 不会 return AADB2C90118 错误消息。

从 2021 年 3 月开始,“自助服务密码重置”是推荐选项。我原来post中描述的以前的方法不被认为是遗留的。

自助服务密码重置官方文档: https://docs.microsoft.com/en-gb/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy

基本上,我上面问的不仅现在可以,而且也是推荐的方法