You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD B2C中Revoke-AzureADUserAllRefreshToken使用及相关问题解决

解决Azure AD B2C中使用Revoke-AzureADUserAllRefreshToken的问题

核心结论:必须在Azure AD B2C目录上下文内执行命令

你遇到的“对象ID不存在”错误,本质是因为你在父Azure目录的Cloud Shell里操作——父目录和B2C目录是完全独立的身份租户,用户对象不共享,所以你输入的B2C用户ID在父目录里根本找不到。要执行这个撤销命令,必须切换到B2C目录的上下文。

步骤1:给Azure AD B2C目录关联订阅

Azure Cloud Shell需要绑定一个Azure订阅来存储它的配置和文件(比如首次打开时创建的存储账户),所以首先要把你的B2C目录和一个现有Azure订阅关联:

  • 登录Azure门户,点击右上角的目录切换器,选择你的Azure AD B2C目录
  • 在门户搜索栏输入“订阅”并进入订阅页面,确保当前上下文是B2C目录
  • 点击“添加订阅”,从列表中选择你拥有权限的Azure订阅,完成关联
  • 确认你在该订阅上拥有参与者或更高权限(否则无法创建Cloud Shell所需的存储资源)

步骤2:在B2C目录上下文打开并配置Cloud Shell

  • 点击Azure门户右上角的Cloud Shell图标(>_),首次打开会提示创建存储账户,按照向导完成即可(这会使用刚才关联的订阅)
  • 切换到PowerShell环境(Cloud Shell顶部可以切换Bash/PowerShell)
  • 手动指定B2C租户上下文,避免自动跳回父目录:
    Connect-AzureAD -TenantId "<你的B2C租户ID>"
    
    (租户ID可以在B2C目录的“概述”页面找到)
  • 验证上下文是否正确:运行Get-AzureADTenantDetail,确认返回的是你的B2C租户信息

步骤3:正确执行撤销令牌命令

  • 先获取B2C用户的正确ObjectId(别用父目录的用户ID!):
    Get-AzureADUser -Filter "UserPrincipalName eq 'user@your-b2c-domain.com'"
    
    替换成目标用户的UPN,从返回结果中复制ObjectId
  • 执行撤销命令:
    Revoke-AzureADUserAllRefreshToken -ObjectId "<用户的ObjectId>"
    
    这次应该就能成功执行,不会再报对象ID不存在的错误了

替代方案:本地PowerShell执行(无需Cloud Shell)

如果不想给B2C目录关联订阅,也可以在本地电脑上操作:

  • 以管理员身份打开PowerShell,安装AzureAD模块:
    Install-Module AzureAD -Force -AllowClobber
    
  • 连接到B2C租户:
    Connect-AzureAD -TenantId "<你的B2C租户ID>"
    
  • 后续步骤和Cloud Shell一致:获取用户ObjectId,执行撤销命令

内容的提问来源于stack exchange,提问作者stumpykilo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:08:46