在 Azure AD B2C 中,当用户单击“忘记/重置”密码时,B2C 会将用户重定向回依赖方(Web 应用程序),并出现以下错误:
AADB2C90118: The user has forgotten their password.
Correlation ID: 124dd908-e181-408f-a363-ecbd46aa9d8e
网络应用 (RP) 应读取错误代码并通过将用户重定向回 B2C 来做出反应,指定要使用的 PasswordReset
政策。这是设计使然,并记录在 AAD B2C 官方文档中。
就我们而言,我们有许多网络应用共享相同的自定义策略(SUSI 和 PasswordResest),以提供通用的登录体验。
我想将 PasswordReset 政策直接选择/配置到我们的自定义政策中以进行登录。我想避免用户被重定向回应用程序,然后应用程序决定使用什么 PasswordReset 策略。
这可以在 B2C 中实现吗?
答案 0 :(得分:1)
据我所知不是。唯一正确的处理方法是通过应用程序进行处理,正如您已经描述的那样,也根据文档:https://docs.microsoft.com/en-us/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy
但是,根据您的身份设置的实施和整体情况,您可以尝试使用“技巧” - 创建一个自定义 UI HTML 模板,其中将包含您选择的密码重置策略的 URL(静态 URL)模板)并隐藏(或禁用,如果您使用自定义策略)返回到应用程序处理的原始“忘记密码”链接。将该模板附加到政策 - https://docs.microsoft.com/en-us/azure/active-directory-b2c/customize-ui-with-html?pivots=b2c-custom-policy
不过,这可能不起作用或不适合每种设置。如果您打开一个策略,然后流程以不同的策略结束,您可能会在应用程序中出现意外行为。我自己认为这是一种相当糟糕的做法,并劝阻人们在我工作的地方使用它。但如果你真的需要这样的东西,你可以考虑一下。
答案 1 :(得分:1)
是的,它是 possible。
“默认情况下,当您创建注册或登录策略(使用本地帐户)时,您会在体验的第一页看到忘记密码?链接。单击此链接不会自动触发密码重置策略。相反,错误代码 AADB2C90118 会返回给您的应用。您的应用需要通过调用特定的密码重置策略来处理此错误代码。
此政策演示了如何将密码重置流程嵌入注册或登录政策的一部分。因此,Azure AD B2C 不会返回 AADB2C90118 错误消息。
答案 2 :(得分:0)
从 2021 年 3 月开始,“自助服务密码重置”是推荐选项。我原帖中描述的先前方法不被视为遗留方法。
自助服务密码重置官方文档: https://docs.microsoft.com/en-gb/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy
基本上,我上面所问的不仅现在是可能的,而且这也是推荐的方法。