Azure 自动化:Runbook、RunAs 帐户:如何允许访问 AAD(例如,对于 Get-AzADUser)?
Azure Automation: Runbook, RunAs Account: How to allow access to AAD (e.g. for Get-AzADUser)?
下午好
我选择了Whosebug来回答这个问题,因为可能主要是程序员面临这个问题:
问题所在:
如果我们调用 Get-AzADUser
来获取 Azure 自动化 运行 书中的所有 AAD 用户,那么我们会得到:Error 'Insufficient privileges'
我们这样做:
- 我们有一个 "Azure Run As Account"
的自动化帐户
- 在 PowerShell 运行书中我们调用:
# 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
- 如果我们启动 运行本书,我们会得到错误:
> Get-AzADUser : Insufficient privileges to complete the operation.
> FullyQualifiedErrorId :
> Microsoft.Azure.Commands.ActiveDirectory.GetAzureADUserCommand
这是权限配置:
Automation Account
已设置 Run as accounts
» Azure Run As Account
(而不是 Azure Classic 运行 作为帐户)
- 事实上,
Azure Run As Account
是一种误导,它是一个已注册的应用程序,可以在Azure中找到App registrations
- 已注册的应用程序具有以下设置:
» 具有 所有 权限的自定义角色。
» 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 权限
不幸的是,我们仍然得到错误 'Insufficient privileges'
非常感谢您的帮助!
亲切的问候,
托马斯
根据一些测试,您需要添加Azure AD的权限而不是Micorsoft Graph。 Get-AzADUser
命令似乎在后端使用 Azure AD 图形,而不是 Microsoft 图形。所以我们需要做如下操作:
之后我们就可以成功使用命令Get-AzADUser了(如果你在powershell中测试命令,当你添加Azure AD权限时,请关闭powershell并重新打开它并重新连接到避免缓存)
的影响
我在我这边测试,和你的一样报错,加了这个权限后可以让用户成功。希望对你有帮助~
下午好
我选择了Whosebug来回答这个问题,因为可能主要是程序员面临这个问题:
问题所在:
如果我们调用 Get-AzADUser
来获取 Azure 自动化 运行 书中的所有 AAD 用户,那么我们会得到:Error 'Insufficient privileges'
我们这样做:
- 我们有一个 "Azure Run As Account" 的自动化帐户
- 在 PowerShell 运行书中我们调用:
# 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
- 如果我们启动 运行本书,我们会得到错误:
> Get-AzADUser : Insufficient privileges to complete the operation.
> FullyQualifiedErrorId :
> Microsoft.Azure.Commands.ActiveDirectory.GetAzureADUserCommand
这是权限配置:
Automation Account
已设置Run as accounts
»Azure Run As Account
(而不是 Azure Classic 运行 作为帐户)- 事实上,
Azure Run As Account
是一种误导,它是一个已注册的应用程序,可以在Azure中找到App registrations
- 已注册的应用程序具有以下设置:
» 具有 所有 权限的自定义角色。
» 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 权限
不幸的是,我们仍然得到错误 'Insufficient privileges'
非常感谢您的帮助!
亲切的问候, 托马斯
根据一些测试,您需要添加Azure AD的权限而不是Micorsoft Graph。 Get-AzADUser
命令似乎在后端使用 Azure AD 图形,而不是 Microsoft 图形。所以我们需要做如下操作:
之后我们就可以成功使用命令Get-AzADUser了(如果你在powershell中测试命令,当你添加Azure AD权限时,请关闭powershell并重新打开它并重新连接到避免缓存)
的影响我在我这边测试,和你的一样报错,加了这个权限后可以让用户成功。希望对你有帮助~