【问题标题】:Grant access to AAD Graph API's for a Managed Identity授予对托管身份的 AAD Graph API 的访问权限
【发布时间】:2019-06-17 20:02:47
【问题描述】:

我正在关注以下关于使用托管身份访问 AAD Graph API 的文章 - https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-azure-ad-graph

使用我的全局管理员帐户,我在 powershell 中执行以下操作:

$AppRole = $WindowsAADServicePrincipal.AppRoles | Where-Object {$_.Value -eq "Application.ReadWrite.All" -and $_.AllowedMemberTypes
-contains "Application"}
New-AzureAdServiceAppRoleAssignment -ObjectId $identity.PrincipalId -PrincipalId $identity.PrincipalId  -ResourceId
$WindowsAADServicePrincipal.ObjectId -Id $AppRole.Id

该命令报告以下权限不足异常 - 但该角色似乎仍分配给服务主体!!??

New-AzureAdServiceAppRoleAssignment:执行时出错 NewServicePrincipalAppRoleAssignment 代码: Authorization_RequestDenied 消息:权限不足 完成操作。 RequestId:XXX DateTimeStamp:2019 年 6 月 17 日,星期一 格林威治标准时间 15:16:53 HttpStatusCode:禁止 HttpStatusDescription: 禁止的 HttpResponseStatus:在 line:5 char:5 完成 + 新 AzureAdServiceAppRoleAssignment -ObjectId $identity.Principal ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [New-AzureADServiceAppRoleAssignment], ApiException + FullyQualifiedErrorId : Microsoft.Open.AzureAD16.Client.ApiException,Microsoft.Open.AzureAD16.PowerShell.NewServicePrincipalAppRoleAssignment

我的问题是为什么?如果我查看此命令向 aad graph api 发出的请求的 http 跟踪,我看不出有多大兴趣。

如果我手动执行请求以使用上面分配了所需权限的托管身份分配角色。我得到一个类似的异常,但没有分配任何角色,奇怪的是我已经尝试为执行此请求的身份分配一些权限 - 甚至租户上的全局管理员,但我仍然看到这个错误....

$created_permissions = Invoke-RestMethod -Method post -Uri "https://graph.windows.net/tenantname.onmicrosoft.com/servicePrincipals/$($created_principal.objectid)/appRoleAssignments?api-version=1.6" -Body ($permission  | ConvertTo-Json -Depth 99 -Compress) -ContentType "application/json" -Headers @{ "Authorization" ="Bearer $access_token" }

我想避免授予身份 Global Admin 或类似角色,并且希望可以授予细粒度权限,即 Application.ReadWrite.OwnedBy

【问题讨论】:

    标签: azure-active-directory


    【解决方案1】:

    我认为您遇到了一个已知问题。

    我遇到过类似的情况,但上下文略有不同,即 MSI for Logic Apps。请查看此 SO 帖子以获取更多详细信息 - Assigning Microsoft Graph permissions to Azure Managed Service Identity

    我曾经在第一次运行时收到 Authorization_RequestDenied 错误,在任何重试时收到 Request_BadRequest,因为即使第一次运行出错,权限/角色分配确实被添加了。尽管它应该是断断续续的,但我还是很一致地得到了它。最后我可以忽略这个错误,因为所需的权限仍然被分配给托管身份。

    这是一个相关的 GitHub 问题 - Executing the New-AzureAdServiceAppRoleAssignment step returns a Forbidden error

    这是一个很长的线程,但请查看来自 Microsoft 的 daveba 的评论。

    【讨论】:

      猜你喜欢
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多