gpt4 book ai didi

azure-active-directory - Azure AD B2C 中的刷新 token 吊销

转载 作者:行者123 更新时间:2023-12-05 03:02:23 28 4
gpt4 key购买 nike

在我的 AD B2C 应用程序中,我需要撤销 AD B2C 为用户提供的所有刷新 token 。这是在用户帐户登录多个应用程序并且在一个应用程序用户更改密码时实现的要求。更改密码后,我已经撤销了他提供给其他应用程序的所有刷新 token 。如何做到这一点?

更新:
我试过跟随,

  1. B2C - 通过策略获取 token
    https://login.microsoftonline.com/te/tenantname.onmicrosoft.com/b2c_1a_policyname/oauth2/v2.0/authorize
    https://login.microsoftonline.com/te/tenantname.onmicrosoft.com/b2c_1a_policyname/oauth2/v2.0/token
    a) 使用 ad b2c 用户帐户获取访问 token 和刷新 token (直接通过租户而不是注册策略创建)。
    b)尝试使用 token 端点和grant_type refresh_token获取新的访问和刷新 token ->能够获取 token
    c) 使用 https://graph.windows.net/myorganization/users/xxxxx-userObjectID-xxxx/invalidateAllRefreshTokens?api-version=1.6 撤销了 token 和客户端凭证流(在 Ad B2C 租户的 AD Blade 中注册并获得图形 API 访问权限的应用程序)
    d)以上 token 撤销 api 调用成功并尝试了步骤 (b)。
    e)仍然能够从步骤(b)中获得新的代币

  2. B2C - 通过策略获取 token - 使用 GA 帐户撤销
    https://login.microsoftonline.com/te/tenantname.onmicrosoft.com/b2c_1a_policyname/oauth2/v2.0/authorize
    https://login.microsoftonline.com/te/tenantname.onmicrosoft.com/b2c_1a_policyname/oauth2/v2.0/token
    a) 使用 ad b2c 用户帐户获取访问 token 和刷新 token (直接通过租户而不是注册策略创建)。
    b)尝试使用 token 端点和grant_type refresh_token获取新的访问和刷新 token ->能够获取 token
    c) 使用 https://graph.windows.net/myorganization/users/xxxxx-userObjectID-xxxx/invalidateAllRefreshTokens?api-version=1.6 撤销了 token 并且这是通过使用直接在租户中创建的 GA 帐户登录到 graph api explorer 来完成的。
    d)以上 token 撤销 api 调用成功并尝试了步骤 (b)。
    e)仍然能够从步骤(b)中获得新的代币

  3. B2C - 无策略获取 token
    https://login.microsoftonline.com/tenantname.onmicrosoft.com/oauth2/v2.0/authorize
    https://login.microsoftonline.com/tenantname.onmicrosoft.com/oauth2/v2.0/token
    a) 使用 ad b2c 用户帐户获取访问 token 和刷新 token (直接通过租户而不是注册策略创建)。
    b)尝试使用 token 端点和grant_type refresh_token获取新的访问和刷新 token ->能够获取 token
    c) 使用 https://graph.windows.net/myorganization/users/xxxxx-userObjectID-xxxx/invalidateAllRefreshTokens?api-version=1.6 撤销了 token 和客户端凭证流(在 Ad B2C 租户的 AD Blade 中注册并获得图形 API 访问权限的应用程序)
    d)以上 token 撤销 api 调用成功并尝试了步骤 (b)。
    e)无法从步骤(b)中获取新 token

  4. B2C - 无需密码获取 token - 使用 GA 帐户撤销
    https://login.microsoftonline.com/tenantname.onmicrosoft.com/oauth2/v2.0/authorize
    https://login.microsoftonline.com/tenantname.onmicrosoft.com/oauth2/v2.0/token
    a) 使用 ad b2c 用户帐户获取访问 token 和刷新 token (直接通过租户而不是注册策略创建)。
    b)尝试使用 token 端点和grant_type refresh_token获取新的访问和刷新 token ->能够获取 token
    c) 使用 https://graph.windows.net/myorganization/users/xxxxx-userObjectID-xxxx/invalidateAllRefreshTokens?api-version=1.6 撤销了 token 这是通过使用直接在租户中创建的 GA 帐户登录到 graph api explorer 来完成的。
    d)以上 token 撤销 api 调用成功并尝试了步骤 (b)。
    e)仍然能够从步骤(b)中获得新的代币

基本上无法撤销从 b2c 策略工作流程创建的 token 。

解决方案:
刷新 token 撤销图形 API 正在运行。但这样做大约需要 5 分钟。
但是这里的问题是在等待期间,我能够获得新的刷新 token 和访问 token ,并且这些新的刷新 token 即使在撤销后也能正常工作。这意味着 Azure AD 考虑了刷新 token 撤销 api 调用的请求时间,并撤销了该时间之前发出的所有刷新 token 。
那么如何避免呢?
当使用现有的刷新 token 在离线范围内请求新的访问 token 时,为什么 Azure AD 提供新的刷新 token ,即使现有的刷新 token 有有效期。?

最佳答案

您可以 invalidate all of the refresh tokens for a specific user使用 Azure AD 图形 API:

POST https://graph.windows.net/myorganization/users/{user_id}/invalidateAllRefreshTokens?api-version=1.6

关于azure-active-directory - Azure AD B2C 中的刷新 token 吊销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54887573/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com