执行New-AzureADApplicationPasswordCredential遇Authorization_RequestDenied错误求助
执行PowerShell命令New-AzureADApplicationPasswordCredential时返回以下错误:
New-AzureADApplicationPasswordCredential : Error occurred while executing SetApplication
Code: Authorization_RequestDenied
Message: Insufficient privileges to complete the operation.
RequestId: 1234567-abcd-1234-7890-1234567890
DateTimeStamp: Mon, 12 Dec 2022 05:21:54 GMT
HttpStatusCode: Forbidden
HttpStatusDescription: Forbidden
HttpResponseStatus: Completed
已配置的服务主体拥有AD Graph和MS Graph的读写权限,且已获得组织管理员同意。
可能的原因及解决步骤
权限类型不匹配:
配置的API权限仅用于调用Graph接口,而创建应用凭据属于目录管理操作,需要给服务主体分配目录角色权限。可分配的角色包括Application Administrator、Global Administrator或Cloud Application Administrator。
操作步骤:- 登录Azure门户,进入「Azure Active Directory」>「角色和管理员」
- 找到目标角色,添加你的服务主体为成员
- 等待15-30分钟权限生效后,重新执行命令
模块版本兼容问题:
旧版AzureAD模块可能存在权限逻辑问题,建议切换到Microsoft Graph PowerShell模块操作:- 卸载旧模块(如果已安装):
Uninstall-Module AzureAD -Force - 安装Microsoft Graph应用模块:
Install-Module Microsoft.Graph.Applications -Force - 连接Graph并授权:
Connect-MgGraph -Scopes "Application.ReadWrite.All" - 创建凭据:
New-MgApplicationPasswordCredential -ApplicationId <你的应用ID>
- 卸载旧模块(如果已安装):
权限范围错误:
确认MS Graph配置的是应用权限而非委托权限,服务主体运行脚本需要应用级别的Application.ReadWrite.All权限。如果之前用的是委托权限,需切换为应用权限并重新获取管理员同意。
内容的提问来源于stack exchange,提问作者DevOps

