【发布时间】:2022-02-19 01:35:05
【问题描述】:
我发现 Safari 存在一个问题,即使在注销后用户会话也会保留。请参阅以下步骤(由 SPA 调用的端点):
-
通过调用登录并提供凭据:
获取 https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize? client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 &response_type=id_token &redirect_uri=https%3A%2F%2Fjwt.ms%2F &response_mode=片段 &scope=openid &nonce={nonce}
一旦用户成功通过身份验证,他们将被重定向回应用程序,并带有一个 id 令牌,然后可以将其交换为访问令牌等。
在经过身份验证时,应用程序为用户提供了一个注销链接,使用该链接时将执行下一步..
-
通过将客户端重定向到:结束会话:
GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/logout?post_logout_redirect_uri={appUrl}
然后用户被重定向回应用程序登录页面。
问题在于,如果用户随后再次登录(第一步),AD B2C 服务将使用 id 令牌将用户直接重定向回应用程序,而不要求他们再次登录。这仅在 Safari 中发生。它甚至在关闭浏览器并重新打开后也会发生。
这里有什么我遗漏的吗?我在这里关注文档:https://docs.microsoft.com/en-us/azure/active-directory-b2c/openid-connect#send-a-sign-out-request
【问题讨论】: