Попытка подключиться к Azure AD из учетной записи Runbook службы автоматизации, но получение кода: Authorization_RequestDenied

Выполняя приведенный ниже код и пытаясь получить значение из Azure AD с помощью учетной записи Runbook службы автоматизации, выдает ошибку отказано в разрешении. Я следил за этими шаги, по-прежнему не могу получить результат. пожалуйста, дайте мне знать, если кто-то столкнется с подобной проблемой или знает, как ее решить

Код:

$connectionName = "AzureRunAsConnection"
# Get the Service Principal connection details for the Connection name
$servicePrincipalConnection = Get-AutomationConnection -Name $connectionName         

# Logging in to Azure AD with Service Principal
"Logging in to Azure AD..."
Connect-AzureAD -TenantId $servicePrincipalConnection.TenantId `
    -ApplicationId $servicePrincipalConnection.ApplicationId `
    -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint

"List Tenant Org Details:"
Get-AzureADTenantDetail | Select DisplayName, Street, PostalCode, City, CountryLetterCode

"Member Account Synced Count:"
(Get-AzureADUser -All $true -Filter "userType eq 'Member' and accountEnabled eq true" | Where-Object {$_.DirSyncEnabled -eq $true}).Count
"Disabled Users Count:"
(Get-AzureADUser -All $true -Filter 'accountEnabled eq false').Count
"Guest User Count:"
(Get-AzureADUser -All $true -Filter "userType eq 'Guest'").Count
"Cloud Only Account Count:"
(Get-AzureADUser -All $true -Filter "userType eq 'Member'" | Where-Object {$_.userPrincipalName -like "*onmicrosoft.com"}).Count

Ошибка:

Get-AzureADUser: произошла ошибка при выполнении GetUsers. Код: Authorization_RequestDenied. Сообщение: недостаточно прав для завершения операции. RequestId: DateTimeStamp: пт, 26 июня 2020 г., 04:07:45 GMT HttpStatusCode: Forbidden HttpStatusDescription: Forbidden HttpResponseStatus: Completed

В строке: 21 символ: 2

  • (Get-AzureADUser -All $ true -Filter userType eq 'Guest'). Подсчет
  •  + CategoryInfo          : NotSpecified: (:) [Get-AzureADUser], ApiException
     + FullyQualifiedErrorId : Microsoft.Open.AzureAD16.Client.ApiException,Microsoft.Open.AzureAD16.PowerShell.GetUser
    
    
    

person rishi    schedule 26.06.2020    source источник
comment
Привет, поскольку вы упомянули, что выполните следующие шаги, я думаю, вы уже добавили разрешение для графа объявлений (Directory.Read.All). Если вы уже добавили разрешение, не забудьте дать на это согласие администратора. И, пожалуйста, откройте другое окно PowerShell, чтобы повторно подключиться к субъекту службы, а затем попробуйте выполнить команду Get-AzureADUser, потому что, возможно, в окне PowerShell возникла проблема с кешированием.   -  person Hury Shen    schedule 26.06.2020
comment
@HuryShen По-прежнему возникает та же ошибка. Я применил разрешение графа объявлений (Directory.Read.All) и даю на это согласие администратора. Я использую модуль Runbook автоматизации для указанного выше сценария. Как вы думаете, мне нужно добавить разрешение для учетной записи службы?   -  person rishi    schedule 27.06.2020
comment
Нет, я не думаю, что вам нужно добавлять разрешение для учетной записи. Поскольку вы подключаете AD с помощью субъекта-службы, вам просто нужно добавить разрешения для приложения, зарегистрированного в AD. Кажется, твои шаги верны. Не могли бы вы попробовать запустить тот же сценарий в PowerShell, чтобы проверить, может ли он добиться успеха у пользователей?   -  person Hury Shen    schedule 29.06.2020


Ответы (1)


@ Хьюри шен

Нашел ответ

Перейдите на портал Azure - ›Azure AD -› роли и администратор - ›роль читателей каталогов -› назначьте эту роль имени учетной записи Runbook.

person rishi    schedule 30.06.2020