调用 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 广告的访问权限。
我在 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 广告的访问权限。