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

如何通过Azure CLI获取Azure AD用户及组信息并解决相关问题

问题与解决方案

问题描述

需要获取指定Azure Active Directory(AAD)组的成员数量、用户名等详细信息。此前通过以下命令流程可正常操作:

az account get-access-token --resource "https://cognitiveservices.azure.com"
az login --username {user_name} --tenant {tenant_id} --password {access_token}
az ad group member list --group {AAD_group_name}

但现在执行第二步登录命令时出现报错:

RuntimeError: WsTrust server returned error in RSTR: {'reason': 'ID3242: The security token could not be authenticated or authorized.', 'code': 'a:FailedAuthentication'}

尝试使用服务主体(SPN)登录时,收到报错:

Insufficient privileges to complete the operation

询问是否有其他通过Azure CLI与AAD交互获取所需信息的方式。


可行解决方案

方法1:直接使用用户凭据登录

跳过手动获取令牌的步骤,直接用用户的用户名和密码登录Azure CLI,CLI会自动管理令牌的刷新逻辑:

az login --username {user_name} --password {user_password} --tenant {tenant_id}
az ad group member list --group {AAD_group_name}

自动化脚本中建议通过环境变量传入密码,避免明文暴露:

export AZURE_USER_PWD="your_user_password"
az login --username {user_name} --password $AZURE_USER_PWD --tenant {tenant_id}

方法2:给服务主体分配对应权限

SPN登录提示权限不足,需为其配置读取AAD组及成员的权限:

  1. 进入Azure门户的Azure Active Directory > 应用注册,找到目标服务主体
  2. 切换到API权限,点击添加权限 > Microsoft Graph > 应用权限
  3. 搜索并添加Group.Read.All和GroupMember.Read.All权限(遵循最小权限原则)
  4. 点击授予管理员同意(需全局管理员权限)
  5. 完成权限配置后,用SPN登录并执行查询:
az login --service-principal --username {spn_client_id} --password {spn_client_secret} --tenant {tenant_id}
az ad group member list --group {AAD_group_name}

方法3:修复原有令牌获取流程

之前获取的是认知服务的令牌,登录Azure CLI需使用Microsoft Graph(或Azure AD Graph)的资源令牌,修改第一步命令:

# 获取Microsoft Graph的访问令牌
az account get-access-token --resource "https://graph.microsoft.com"
# 使用该令牌登录
az login --username {user_name} --tenant {tenant_id} --password {access_token}
# 执行组查询
az ad group member list --group {AAD_group_name}

方法4:直接调用Microsoft Graph API

无需依赖Azure CLI登录,直接用令牌调用API获取组信息:

# 示例:用curl调用,替换{access_token}和{group_id}
curl -H "Authorization: Bearer {access_token}" https://graph.microsoft.com/v1.0/groups/{group_id}/members?$select=id,displayName,userPrincipalName

该方式更适合自动化脚本场景,可直接解析返回的JSON数据获取所需信息。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 17:46:06