Azure Automation:Runbook,RunAs帐户:如何允许访问AAD(例如,对于Get-AzADUser)?

问题描述 投票:0回答:1

下午好

我为这个问题选择了stackoverflow,因为大概主要是程序员都面临这个问题:

这是问题:

如果调用Get-AzADUser以在Azure自动化运行手册中获取所有AAD用户,则我们将获得:Error 'Insufficient privileges'

我们这样做:

  1. 我们有一个带有“ Azure运行方式帐户”的自动化帐户
  2. 在PowerShell Runbook中,我们称为:
    # Connect to AAD
    $Conn = Get-AutomationConnection -Name AzureRunAsConnection
    $account = Connect-AzAccount -ServicePrincipal `
               -TenantId $Conn.TenantID  `
               -ApplicationId $Conn.ApplicationID  `
               -CertificateThumbprint $Conn.CertificateThumbprint
    # Get All AAD Users
    $AllADUsers = Get-AzADUser
  1. 如果启动Runbook,则会出现错误:
> Get-AzADUser : Insufficient privileges to complete the operation.
> FullyQualifiedErrorId :
> Microsoft.Azure.Commands.ActiveDirectory.GetAzureADUserCommand

这是权限配置:

  1. Automation Account设置了Run as accounts»Azure Run As Account(而不是Azure经典运行方式帐户)
  2. 实际上,Azure Run As Account具有误导性,它是已注册的应用程序,可以在Azure App registrations中找到
  3. 注册的应用程序具有以下设置:

»具有all权限的自定义角色。

»API权限:

Microsoft Graph (6)
Delegated    Directory.AccessAsUser.All
Delegated    Directory.ReadWrite.All
Delegated    User.ReadWrite.All
Application  Directory.ReadWrite.All
Application  User.Export.All
Application  User.ReadWrite.All

»所有API权限均已授予我们的租户

不幸的是,我们仍然收到错误“权限不足”

非常感谢您的帮助!

亲切的问候,托马斯

azure azure-active-directory azure-powershell azure-automation azure-runbook
1个回答
0
投票

根据一些测试,您需要添加Azure AD的权限,但不需要添加Micorsoft Graph。似乎Get-AzADUser命令在后端中使用Azure AD图形,而不在Microsoft图形中使用。因此,我们需要执行以下操作:enter image description here

enter image description here

[此后,我们可以成功使用命令Get-AzADUser(如果在powershell中测试该命令,则在添加Azure AD权限时,请关闭该powershell并重新打开它,然后重新连接以避免缓存的影响] >)

我在我这边对其进行测试,它显示出与您相同的错误,并且添加此权限后可以使用户成功。希望对您有所帮助〜

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.