新用户通过离线过程加入。最后,它们被定向到执行密码重置的自定义策略。这样,用户可以选择自己的密码。
这实际上是标准的自定义密码重置策略,无需验证电子邮件。通过签名的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
有人能做到这一点吗?
答案 0 :(得分:1)
对于单页应用程序,不会发出刷新令牌,因为这不安全。
使用隐式流的应用程序必须实现a silent authentication来刷新令牌。
静默身份验证可能会失败,因为您的“ Custom-PasswordReset”旅程不包括the DefaultSSOSessionProvider SSO session provider来设置用户会话中的SSO声明。
例如,请参阅Wingtip示例中的the LocalAccount-PasswordSet technical profile,该示例将被调用以为预先验证的用户设置首次密码。