首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Get-AzureADService主体所需的权限是什么?

Get-AzureADService主体所需的权限是什么?
EN

Stack Overflow用户
提问于 2020-06-23 16:57:33
回答 1查看 1K关注 0票数 3

我正在尝试运行一个PowerShell脚本,用于从一个DevOps服务主体分配appRoles。

DevOps服务主体具有以下权限,并得到了管理员的同意:

  • Application.Read.All
  • AppRoleAssignment.ReadWrite.All
  • User.Read

它在获取要分配的角色的所有者服务主体的步骤中失败:

代码语言:javascript
运行
复制
$sp = Get-AzureADServicePrincipal -filter "displayName eq '$AppName'"

带有错误消息:

代码语言:javascript
运行
复制
Error occurred while executing GetServicePrincipals 
Code: Authorization_RequestDenied
Message: Insufficient privileges to complete the operation.
RequestId: a8fadf67-94d6-40ec-ad88-6562cf9f6d80
DateTimeStamp: Tue, 23 Jun 2020 16:51:36 GMT
HttpStatusCode: Forbidden
HttpStatusDescription: Forbidden
HttpResponseStatus: Completed

我希望Application.Read.All能够授予这个权限,因为我正在搜索的资源是一个应用程序。

我需要什么权限才能运行这一行脚本,这在哪里有文档记录?我正在应用最小特权的原则,并且不想给Devops sp一个管理角色。我只想申请完成这项工作所需的特定权限。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-24 02:25:14

我注意到您分配了一个权限User.Read,该权限仅存在于委托权限中。因此,我猜您配置的其他2个权限-- Application.Read.AllAppRoleAssignment.ReadWrite.All --也是委托权限。

但是现在您是从服务主体运行Get-AzureADServicePrincipal的,这意味着它需要应用程序权限(这里没有用户)。

当我通过Fiddler4跟踪这个cmd时,后端请求是GET https://graph.windows.net/exxxxx4e-bd27-40d5-8459-23xxxxa757fb/servicePrincipals?api-version=1.6&%24filter=displayName%20eq%20%27xxxx%27

graph.windows.net是用于Azure AD图的,graph.microsoft.com是用于MicrosoftGraph的。

因此,它正在调用Azure AD图,而不是微软图形。您需要的是Azure AD图的应用程序权限。

根据我的测试,Application.ReadWrite.AllDirectory.Read.All可以满足您的需要。如果不希望服务主体具有写入权限,则可以选择Directory.Read.All

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62539979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档