Azure AD B2C密码更改自定义策略,用户每次都需要登录
Posted
技术标签:
【中文标题】Azure AD B2C密码更改自定义策略,用户每次都需要登录【英文标题】:Azure AD B2C password change custom policy, user needs to sign in every time 【发布时间】:2018-07-22 20:50:51 【问题描述】:我已经根据the documentation 实现了密码更改自定义策略,并在前端使用 msal.js 启动密码更改流程。尽管用户已经登录到应用程序,但此作品接受用户需要再次登录。所以它每次都会询问用户凭据。为什么 B2C 没有检测到用户已经登录,我该如何解决这个问题? 谢谢!
【问题讨论】:
密码重置返回一个令牌。查看调试工具,网络。 302 网址是什么样的?我想知道您的应用程序与 MSAL.js 交互以确定用户是否已登录可能存在问题? 我的密码更改策略有这个问题。密码重置按预期工作。 【参考方案1】:MSAL.js正在设置提示参数,因此,强制B2C忽略cookie,因此,强制登录。
const urlNavigate = authenticationRequest.createNavigateUrl(scopes) + "&prompt=select_account" + "&response_mode=fragment";
Source
您可以通过获取 URL MSAL.js 将用户重定向到并删除提示查询参数来验证这一点。
相关 GitHub 问题:Allow Controlling the prompt parameter。我们需要说服 MSAL 库所有者我们需要控制此参数。
【讨论】:
【参考方案2】:如果您尝试通过 B2C 自定义策略“立即运行”端点进行测试,只需从链接中删除 &prompt=login 查询参数。如果您已经登录,它将跳过登录,如果您尚未登录,它仍会提示您输入凭据。
感谢 Jas Suri:Azure B2C EditProfile custom policy without Signing In first
【讨论】:
以上是关于Azure AD B2C密码更改自定义策略,用户每次都需要登录的主要内容,如果未能解决你的问题,请参考以下文章
Azure AD B2C 自定义登录策略显示 SignUpSignIn
Azure AD B2C - 自定义策略中的“电子邮件”声明
在 Azure AD 中创建用户之前,是不是可以使用 Azure B2C 自定义策略验证来自社交身份提供商 (iDP) 的电子邮件声明?