权限不足,无法在调用Get-AzADGroupMember

时间:2020-07-06 22:21:39

标签: azure azure-active-directory azure-functions azure-powershell azure-managed-identity

我在Powershell(v 2.0)中具有安装了Az模块的Azure功能,并且分配了一个托管身份来管理一堆租户说“ A”的资源。因此,我能够执行诸如Get-AzVm,Set-AzContext等命令来处理VM /订阅管理的操作。

在该函数中,存在一种逻辑,用于检查用户是否存在于用户组中,例如在AzureAD中针对租户“ 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函数运行此命令?

1 个答案:

答案 0 :(得分:1)

尝试转到您的Azure广告,角色和管理员,选择一个角色,该角色可让您执行所需的ps功能,在这种情况下,您要尝试读取组,因此,目录读取器然后单击添加分配。找到您的函数名称,或从函数应用程序标识刀片中,复制显示的对象ID,然后将其粘贴到“添加分配”搜索框中,应该找到它,然后将其添加到其中。.可能最多需要24小时才能生效,但通常需要花费很多时间更快,那么您应该能够运行这些ps命令。 从功能中的身份刀片添加的天蓝色角色分配仅为其提供例如订阅访问权限,而不能访问天蓝色广告。