调用 Get-AzADGroupMember 时权限不足,无法完成操作

Insufficient privileges to complete the operation while invoking Get-AzADGroupMember

我在 Powershell(v 2.0) 中有一个 Azure 函数,安装了 Az 模块和一个分配的托管身份来管理租户的一堆订阅中的资源,比如 'A'。因此,我已经能够使用 Get-AzVm、Set-AzContext 等命令执行操作来处理 VM/subscriptions 管理

在该函数中,有一个逻辑来检查用户是否存在于用户组中,例如 AzureAD 中的 'readonlygroup' 租户 'A'。我正在尝试通过调用

从函数中获取用户组
$users = Get-AzADGroupMember -GroupDisplayName 'readonlygroup' 

但是我抛出异常

ERROR: Get-AzADGroupMember : Insufficient privileges to complete the operation.
At D:\home\site\wwwroot\{functionname}\run.ps1:110 char:18
+ ...       $users = Get-AzADGroupMember -GroupDisplayName 'readonlygroup'
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (:) [Get-AzADGroupMember], Exception
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.ActiveDirectory.GetAzureADGroupMemberCommand
 
Script stack trace:
   at <ScriptBlock>, D:\home\site\wwwroot\{functionname}\run.ps1: line 110

System.Exception: Insufficient privileges to complete the operation.

我假设是因为与 Function 应用关联的标识没有对 Azure Active Directory 的适当访问权限。我能够将角色分配分配给应用程序身份以管理订阅,但我没有看到任何关于如何设置类似配置以从函数应用程序访问 AD 的选项。

如何从我的 azure powershell 函数运行这个命令?

尝试转到你的天蓝色广告、角色和管理员,选择一个允许你执行你想要的 ps 功能的角色,在这种情况下你正在尝试阅读 groups,所以也许目录读者然后单击添加分配。找到您的函数名称,或从函数应用程序标识 blade 中,复制显示的 object id,然后将其粘贴到添加分配搜索框中,它应该会找到它,然后将其添加到那里。可能最多需要24 小时生效,但通常要快得多,然后您应该能够 运行 那些 ps 命令。 您从函数中的身份 blade 添加的 azure 角色分配仅为其提供订阅访问权限,而不是对 azure 广告的访问权限。