我想使用Directory.Read.All授予对图的Azure托管身份访问。我可以通过关注以下博客来使其正常工作:https://blog.bredvid.no/accessing-apis-using-azure-managed-service-identity-ff7802b887d?gi=f2307752395a,
(尽管显然是预期的:MSI Permissions for Graph API)
我希望在az-cli下可以正常工作
我尝试过...
graphId=$(az ad sp list --filter "appId eq '00000003-0000-0000-c000-000000000000'" --query "[0].objectId")
roleId=$(az ad sp list --filter "appId eq '00000003-0000-0000-c000-000000000000'" --query "[0].appRoles[?value=='Directory.Read.All' && contains(allowedMemberTypes, 'Application')] | [0].id")
az role assignment create --role $roleId --assignee-object-id fa22d971-c442-41f2-add1-77e636f80d31 --scope $graphId --assignee-principal-type MSI
但这会导致...“该请求没有订阅或有效的租户级资源提供者。”
我认为这意味着我没有适用范围。是否可以在az-cli下执行此任务?
答案 0 :(得分:0)
当前无法将所有命令here的服务主体(MSI)分配给应用程序角色。
az role assignment create
是作为RBAC角色将用户/服务主体/组添加到azure资源中,而不是您想要的,它等于此link中的步骤。
此外,由于跨平台问题,如果要使用azure CLI代替powershell。您可以尝试使用powershell core,它是跨平台的,请参考此link在其中安装AzureAD.Standard.Preview
模块,然后您便可以使用AzureAD
命令。