在Azure AD B2C中重置密码后获取刷新令牌

时间:2019-04-02 18:32:43

标签: azure-ad-b2c

新用户通过离线过程加入。最后,它们被定向到执行密码重置的自定义策略。这样,用户可以选择自己的密码。

这实际上是标准的自定义密码重置策略,无需验证电子邮件。通过签名的JWT令牌传递用户名。

所有步骤均有效,并返回有效的ID令牌。

问题在于此令牌过期时获取刷新令牌。

我们还没有找到一种方法。

设置“ offline_access”范围似乎无济于事。

尝试“无提示刷新”方法(提示=“无”)会返回一条错误消息,指出您没有会话。

应用程序是围绕adal.js构建的SPA。

密码重置消息的示例是:

https://login.microsoftonline.com/tenant.onmicrosoft.com/oauth2/v2.0/authorize ?p = B2C_1A_Custom-PasswordReset &client_id = xxx &redirect_uri = yyy &scope = openid%20offline_access&response_type = id_token &prompt =登录 &client_assertion_type = urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer &client_assertion = JWT

有人能做到这一点吗?

1 个答案:

答案 0 :(得分:1)

对于单页应用程序,不会发出刷新令牌,因为这不安全。

使用隐式流的应用程序必须实现a silent authentication来刷新令牌。

静默身份验证可能会失败,因为您的“ Custom-PasswordReset”旅程不包括the DefaultSSOSessionProvider SSO session provider来设置用户会话中的SSO声明。

例如,请参阅Wingtip示例中的the LocalAccount-PasswordSet technical profile,该示例将被调用以为预先验证的用户设置首次密码。