【发布时间】:2021-11-03 07:55:44
【问题描述】:
我正在尝试通过 patch 方法向我的应用程序添加 API 权限。
我正在尝试添加 4 个权限。
$appPermissionsRequired = @('RoleManagement.ReadWrite.Directory', 'PrivilegedAccess.ReadWrite.AzureADGroup', 'Group.read.all', 'Directory.read.all')
我有另一种方法找到权限的正确 ID,然后将其放入列表“角色分配”
$RoleAssignments = @()
Foreach ($AppPermission in $appPermissionsRequired) {
$RoleAssignment = $targetSp.AppRoles | Where-Object { $_.value -eq $AppPermission }
$RoleAssignments += $RoleAssignment
}
问题是当我运行补丁方法时它给了我一个:“code”:“Request_BadRequest
整个错误信息:
WARNING: {"error":{"code":"Request_BadRequest","message":"Specified HTTP method is not allowed for the request target.","innerError":{"date":"2021-11-03T07:37:41","request-id":"28769332-907b-47dc-bc98-f45754e17226","client-request-id":"28769332-907b-47dc-bc98-f45754e17226"}}}
foreach ($RoleAssignment in $RoleAssignments) {
$restSplat = @{
Method = "PATCH"
uri = "https://graph.microsoft.com/v1.0/applications?`$filter=appId eq '$appId'"
headers = @{"Authorization" = "Bearer $AADToken"; "Content-Type" = "application/json"}
body = @{
requiredResourceAccess = @(
@{
resourceAppId = $targetSp.appId
resourceAccess = @(
@{
id = $RoleAssignment.Id
type = "Role"
}
)
}
)
} | ConvertTo-Json -Depth 4
}
$restSplat
$rest = (Invoke-RestMethod @restSplat).Value
}
【问题讨论】:
-
查看文档中的 URL:docs.microsoft.com/en-us/graph/api/…。您不能使用基本 /applications 端点进行更新。
-
我不明白,为什么我不能这样做?那我可以用另一种方式吗?
-
您需要使用文档中的 URL:/applications/
。您可以从应用程序对象中获取 objectId。 -
所以现在我收到了
{ "error": { "code": "Request_BadRequest", "message": "Specified HTTP method is not allowed for the request target.", "innerError": { "date": "2021-11-03T10:20:42", "request-id": "bd70d05e-2be5-4a2a-93e6-970d9bff2bf6", "client-request-id": "89150a2f-14eb-9a32-3bd6-725307c4fb37" } } } -
和:方法不允许 - 405 - 151m
标签: azure-active-directory microsoft-graph-api azureportal