通过 ServicePrincipal 将 Get-AzureRmRoleAssignment 用作应用程序所需的确切权限是什么
What are the EXACT perms needed to use Get-AzureRmRoleAssignment as an app via a ServicePrincipal
我看过帖子 ,其中对于允许 ServicePrincipal 在使用 Login-AzureRmAccount 登录时调用 Get-AzureRmRoleAssignment 究竟需要什么权限存在混淆。
在我的例子中,如果我使用 -debug 标志调用 Get-AzureRmRoleAssignment,我可以在 HTTP 响应的正文中捕获以下错误:
Body:
{
"odata.error": {
"code": "Authorization_RequestDenied",
"message": {
"lang": "en",
"value": "Insufficient privileges to complete the operation."
}
}
}
我已经为应用程序设置权限如下...首先是 Azure AD 访问:
然后是 Microsoft Graph 访问:
这仍然给出 authZ 失败错误。我什至尝试了一个实验,我为每个 API 赋予应用程序所有权限,但仍然没有用。
缺少什么?究竟需要什么权限才能允许只读编程访问以列出此调用的角色分配?
首先,正如我在那种情况下的回答,Get-AzureRmRoleAssignment
不仅需要 read access for role assignment
具有 Azure REST API 权限,还需要 Read directory data
具有 Azure AD 权限图 API。添加权限后,
添加 AAD 图API权限:
您还需要单击 Grant permissions
按钮以获得管理员同意。
添加 Azure REST API 权限:
此外,在为您的 sp 添加 AAD 图 API 权限之前,确保您的 sp 具有 Azure REST API 的权限,方法是从 Subscriptions RBAC(我).
我测试了一下,成功了。
我看过帖子
在我的例子中,如果我使用 -debug 标志调用 Get-AzureRmRoleAssignment,我可以在 HTTP 响应的正文中捕获以下错误:
Body:
{
"odata.error": {
"code": "Authorization_RequestDenied",
"message": {
"lang": "en",
"value": "Insufficient privileges to complete the operation."
}
}
}
我已经为应用程序设置权限如下...首先是 Azure AD 访问:
然后是 Microsoft Graph 访问:
这仍然给出 authZ 失败错误。我什至尝试了一个实验,我为每个 API 赋予应用程序所有权限,但仍然没有用。
缺少什么?究竟需要什么权限才能允许只读编程访问以列出此调用的角色分配?
首先,正如我在那种情况下的回答,Get-AzureRmRoleAssignment
不仅需要 read access for role assignment
具有 Azure REST API 权限,还需要 Read directory data
具有 Azure AD 权限图 API。添加权限后,
添加 AAD 图API权限:
您还需要单击 Grant permissions
按钮以获得管理员同意。
添加 Azure REST API 权限:
此外,在为您的 sp 添加 AAD 图 API 权限之前,确保您的 sp 具有 Azure REST API 的权限,方法是从 Subscriptions RBAC(我).
我测试了一下,成功了。