PowerShell调用Azure端点REST请求遇AuthorizationFailed错误排查
执行的PowerShell命令:
Invoke-RestMethod -Uri https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$rgname/providers/Microsoft.Web/sites/$siteName/instances?api-version=2022-03-01 -Method GET -Headers $authHeader
收到的错误信息:
Invoke-RestMethod : {"error":{"code":"AuthorizationFailed","message":"The client with object id <obj_id> does not have authorization to perform action 'Microsoft.Web/sites/instances/read' over scope
可能的原因:
- 对应对象ID的Azure AD主体(用户、服务主体或托管标识)未被授予
Microsoft.Web/sites/instances/read操作权限。需确认该主体在目标订阅、资源组或Web应用范围内,拥有包含此操作的角色(如读者、网站参与者等内置角色,或自定义角色)。 - 权限作用范围不匹配。比如权限授予的订阅/资源组/Web应用与命令中指定的不一致,导致权限无法覆盖当前请求的资源范围。
- 刚授予的权限尚未生效。Azure RBAC权限通常需要数分钟才能完成同步,若近期刚添加权限,可等待片刻后重试。
- 请求使用的身份令牌对应主体错误。
$authHeader中的JWT令牌可能属于其他无权限的主体,可解码令牌验证其oid(对象ID)是否与错误中的<obj_id>一致。 - 目标Web应用存在资源锁(如删除锁),部分锁类型可能限制读取类操作,不过这种情况相对少见,优先排查RBAC权限问题。
内容的提问来源于stack exchange,提问作者Tracey
相关产品推荐
相关产品推荐

