gpt4 book ai didi

azure - 将 Microsoft Graph 权限分配给 Azure 托管服务标识

转载 作者:行者123 更新时间:2023-12-02 00:58:23 26 4
gpt4 key购买 nike

我尝试为我的 Azure 逻辑应用的 Azure 托管服务标识分配权限,但遇到错误。

我使用的是 2.0.1.16 版本的 AzureAD powershell 模块。

我所做的如下:

  1. 创建逻辑应用
  2. 在该逻辑应用的工作流设置中生成 Azure 托管服务标识。
  3. 执行下面的 PowerShell 为 group.readwrite.all 角色分配托管服务身份。

它首先抛出访问被拒绝错误,后续尝试将抛出“InvalidRequest”错误。我是全局管理员,对资源组拥有完全访问权限(这是一个基本开发租户,我拥有完全权限)

我已经在不同的租户身上尝试过了。有人能够让它发挥作用吗?

    PS C:\Users\markp> $msi = Get-AzureADServicePrincipal | ?{$_.DisplayName -ieq "test"}
PS C:\Users\markp> $mai
PS C:\Users\markp> $msi

ObjectId AppId DisplayName
-------- ----- -----------
8d87a1f9-fab0-45a9-a6f3-1e93b2d99b52 032c3c1c-2530-4eae-b390-153e3b0eb3c6 TEST


PS C:\Users\markp> $graph = Get-AzureADServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"
PS C:\Users\markp> $graph

ObjectId AppId DisplayName
-------- ----- -----------
5a634981-6bbe-4c81-9aef-185a71df56f7 00000003-0000-0000-c000-000000000000 Microsoft Graph


PS C:\Users\markp> $role = $graph.AppRoles | ?{$_.Value -imatch "group.read.all" }
PS C:\Users\markp> $role


AllowedMemberTypes : {Application}
Description : Allows the app to read group properties and memberships, and read the calendar and conversations f
or all groups, without a signed-in user.
DisplayName : Read all groups
Id : 5b567255-7703-4780-807c-7be8301ae99b
IsEnabled : True
Value : Group.Read.All



PS C:\Users\markp> New-AzureADServiceAppRoleAssignment -ObjectId $msi.ObjectId -PrincipalId $msi.ObjectId -Id $role.Id -ResourceId $graph.ObjectId
New-AzureADServiceAppRoleAssignment : Error occurred while executing NewServicePrincipalAppRoleAssignment
Code: Authorization_RequestDenied
Message: Insufficient privileges to complete the operation.
HttpStatusCode: Forbidden
HttpStatusDescription: Forbidden
HttpResponseStatus: Completed
At line:1 char:1
+ New-AzureADServiceAppRoleAssignment -ObjectId $msi.ObjectId -Principa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [New-AzureADServiceAppRoleAssignment], ApiException
+ FullyQualifiedErrorId : Microsoft.Open.AzureAD16.Client.ApiException,Microsoft.Open.AzureAD16.PowerShell.NewServ
icePrincipalAppRoleAssignment

PS C:\Users\markp> New-AzureADServiceAppRoleAssignment -ObjectId $msi.ObjectId -PrincipalId $msi.ObjectId -Id $role.Id -ResourceId $graph.ObjectId
New-AzureADServiceAppRoleAssignment : Error occurred while executing NewServicePrincipalAppRoleAssignment
Code: Request_BadRequest
Message: One or more properties are invalid.
RequestId: 57ef7908-dd8b-4a21-b48e-f2692d324264
DateTimeStamp: Fri, 28 Sep 2018 14:36:55 GMT
HttpStatusCode: BadRequest
HttpStatusDescription: Bad Request
HttpResponseStatus: Completed
At line:1 char:1
+ New-AzureADServiceAppRoleAssignment -ObjectId $msi.ObjectId -Principa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [New-AzureADServiceAppRoleAssignment], ApiException
+ FullyQualifiedErrorId : Microsoft.Open.AzureAD16.Client.ApiException,Microsoft.Open.AzureAD16.PowerShell.NewServ
icePrincipalAppRoleAssignment

最佳答案

初始设置

我在试用订阅中设置了一个名为“test”的新逻辑应用,就像您上面所解释的那样,并通过工作流设置为其启用了 MSI。然后我使用了与上面完全相同的 PowerShell 命令。

解释正在发生的两件最重要的事情

  1. 首次运行 - 即使您收到代码错误:Authorization_RequestDenied,添加新角色分配的操作实际上已经完成了工作。添加了新的权限。 (我将在下面的部分中提供一些证据)

  2. 第一次运行后的后续运行 - 您会收到代码错误:Request_BadRequest,因为您尝试添加的权限/角色分配已在第一次运行中添加。

证据

  1. PowerShell 脚本完全来自您的帖子。 enter image description here

  2. 这些查询仅适用于 Azure AD Graph Explorer(而不是新的 Microsoft Graph Explorer)。此外,查询区分大小写,因此即使很小的差异也会产生影响。

    您基本上可以在第一次运行 PowerShell 脚本之前和之后查看服务主体的角色分配,以查看实际添加的所需权限(我创建了一个新的逻辑应用,其中没有任何内容,仅启用了 MSI测试这部分)

Azure AD 图形查询:

Azure AD Graph Query: https://graph.windows.net/{tenant Id}/servicePrincipals/{MSI Service Principal ID}/appRoleAssignments

{MSI Service Principal ID} is 8d87a1f9-fab0-45a9-a6f3-1e93b2d99b52 in your case.

使用上述查询首次运行 New-AzureADServiceAppRoleAssignment 之前,MSI 服务主体的角色分配。

enter image description here

使用上述查询首次运行 New-AzureADServiceAppRoleAssignment 后,MSI 服务主体的角色分配。

enter image description here

另一篇相关但略有不同的 SO 帖子

This SO post提到了与您正在使用的几乎相同的 PowerShell 脚本。有趣的是,对于很多人来说,脚本看起来也没有错误。但请注意用户 Olandese 的最后评论

enter image description here

关于azure - 将 Microsoft Graph 权限分配给 Azure 托管服务标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52557766/

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