【发布时间】:2023-04-11 09:30:01
【问题描述】:
根据此处的 Microsoft 文档:https://docs.microsoft.com/en-us/azure/role-based-access-control/elevate-access-global-admin#rest-api
通过发出此 POST 请求,您可以将您的权限从 AAD 提升到 Azure RBAC。此请求成功后会将用户添加到“用户访问管理员”角色。
我正在尝试为具有服务主体的应用程序执行此操作,该服务主体是我的租户中的全局管理员,但是我收到了错误:
Invoke-RestMethod : {"error":{"code":"AuthorizationFailed","message":"The client '1234567890' with object id
'1234567890' does not have authorization to perform action 'Microsoft.Authorization/elevateAccess/read' over scope
'/providers/Microsoft.Authorization' or the scope is invalid. If access was recently granted, please refresh your credentials."}}
我的代码在这里:
$TenantId = "12345"
$ClientId = "1234567890"
$ClientSecret = "test12345"
$Resource = "https://management.core.windows.net/"
$RequestAccessTokenUri = "https://login.microsoftonline.com/$TenantId/oauth2/token"
$body = "grant_type=client_credentials&client_id=$ClientId&client_secret=$ClientSecret&resource=$Resource"
$Token = Invoke-RestMethod -Method Post -Uri $RequestAccessTokenUri -Body $body -ContentType 'application/x-www-form-urlencoded'
$Token
$Header = @{}
$Header.Add("Authorization","$($Token.token_type) "+ " " + "$($Token.access_token)")
Invoke-RestMethod -Headers $Header https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01 -verbose
如果我的 SP 是全局管理员,为什么会出现权限错误?
【问题讨论】:
标签: azure powershell rest azure-active-directory