gpt4 book ai didi

azure-active-directory - Get-AzureADServicePrincipal 需要哪些权限?

转载 作者:行者123 更新时间:2023-12-05 06:15:12 24 4
gpt4 key购买 nike

我正在尝试运行 PowerShell 脚本以从 DevOps 服务主体分配 appRoles。

DevOps 服务主体分配了以下权限并获得管理员同意:

  • Application.Read.All
  • AppRoleAssignment.ReadWrite.All
  • 用户.阅读

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

$sp = Get-AzureADServicePrincipal -filter "displayName eq '$AppName'"

错误信息:

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 一个管理角色。我只想申请完成这项工作所需的特定权限。

最佳答案

我注意到您分配了权限User.Read,它只存在于委托(delegate)权限中。所以我猜你配置的其他 2 个权限 Application.Read.AllAppRoleAssignment.ReadWrite.All 也是委托(delegate)权限。

但是现在您从服务主体运行 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,graph.microsoft.com 适用于 Microsoft Graph。

所以它调用的是 Azure AD Graph 而不是 Microsoft Graph。您需要的是 Azure AD Graph 的应用程序权限。

根据我的测试,Application.ReadWrite.AllDirectory.Read.All 可以满足您的需求。如果不想让服务主体有写权限,可以选择Directory.Read.All

enter image description here

关于azure-active-directory - Get-AzureADServicePrincipal 需要哪些权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62539979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com