Microsoft 密码重置 - 传递包含重置后重定向 URI 的参数

Microsoft Password Reset - Pass parameter that contains redirect URI for after reset

我们使用 OAuth 2 和 Microsoft Azure Active Directory 进行单点登录。当用户注销时,我们将它们传递给以下 URL,我们可以在其中传递一个 post_logout_redirect_uri 查询参数:

https://login.microsoftonline.com/<tenant-id>/oauth2/logout?post_logout_redirect_uri=https%3A%2F%2Fexample.com%2F

当用户尝试登录我们的网站时,如果他们未通过身份验证,他们将被定向到 Microsoft 登录页面,我们也会在此处传递一个 redirect_uri 参数(以及其他一些不相关的查询参数)。

https://login.microsoftonline.com/<tenant-id>/oauth2/authorize?redirect_uri=https%3A%2F%2Fexample.com%2F

如果用户在登录页面点击忘记密码link,他们可以使用微软的Self Service Password Reset来重置他们的密码,然后他们会得到一个link来用他们的密码登录新密码(见下文)。单击 link 会将他们带回登录页面,在他们登录后,他们将被重定向回我们的站点。

但是,我们也发出一个link让用户直接访问密码重置页面:

https://passwordreset.microsoftonline.com

当用户遵循此 link 并重置密码时,To sign in with your new password, click here. link 不会显示。有没有什么方法可以在这个 URL 中传递一个查询参数,类似于登录和注销端点,让 link 显示并重定向到为该参数传递的值?

我已尝试使用 redirect_uripost_reset_redirect_uri 无济于事,并且未能找到任何相关文档。

查看密码重置流程及其使用的所有查询字符串参数,我能够使用查询字符串参数 ru[= 获得 To sign in with your new password, click here. 的 link 15=]

您应该尝试的新 Link

https://passwordreset.microsoftonline.com?ru={url encoded value for return url}

示例:

https://passwordreset.microsoftonline.com?ru=https%3A%2F%2Flogin.microsoftonline.com%2F<tenant-id>%2Foauth2%2Fauthorize%3Fredirect_uri%3Dhttps%253A%252F%252Fexample.com%252F%26client_id%3DmyclientGUID%26response_type%3Did_token%26state%3D123456%26nonce%3DGUID

注意:我使用的 URL 编码值与我尝试登录我的站点时使用的 URL 和参数基本相同,即从 URL当您看到 Microsoft 登录页面作为常规登录站点的一部分时,请打开浏览器。 (与密码重置无关)。然后为随机数提供了一个新的随机 GUID,为状态参数提供了另一个随机值。

免责声明:我没有找到任何官方文档。它更多的是通过点击和试用并通过使用常规密码重置流程创建的 HTTP 请求。