如何通过令牌使用PowerShell执行Connect-AzureAD并解决权限不足问题
问题原因及解决方案
1. 核心问题
你当前使用客户端凭据流(服务主体身份)调用AzureAD PowerShell命令报错,是因为你注册的Azure AD应用未配置对应的接口权限,或是配置后未完成管理员同意。
2. 需要配置的权限
AzureAD模块底层调用的是https://graph.windows.net(Azure AD图接口),你需要按如下步骤配置:
- 进入Azure Portal的应用注册页面,找到你当前使用的应用
- 切换到「API权限」菜单,点击「添加权限」,选择「Azure Active Directory Graph」
- 选择「应用权限」(注意不要选委托权限,客户端凭据流仅支持应用权限)
- 勾选
Directory.Read.All权限,如果后续需要执行增删改操作,可根据需求勾选更高权限如Directory.ReadWrite.All - 权限添加完成后,点击「授予<租户名>的管理员同意」,完成权限生效操作
3. 代码验证
你当前的代码逻辑没有问题,能成功执行Connect-AzureAD说明token获取、登录流程都是正常的,权限配置完成后重新运行代码即可正常执行命令。
4. 补充建议
- AzureAD模块已被微软标记为废弃,推荐后续切换到Microsoft Graph PowerShell模块,使用新模块时只需申请Microsoft Graph的对应应用权限即可,无需再配置Azure AD图权限。
- 权限配置遵循最小权限原则,仅勾选业务需要的权限,避免过度授权带来的安全风险。
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

