Автоматизация задач Управление идентификацией Microsoft Entra с помощью служба автоматизации Azure и Microsoft Graph
служба автоматизации Azure — это облачная служба Azure, которая позволяет автоматизировать распространенные или повторяющиеся системы управления и процессы. Microsoft Graph — это единая конечная точка API Майкрософт для функций Microsoft Entra, которые управляют пользователями, группами, пакетами доступа, проверками доступа и другими ресурсами в каталоге. Вы можете управлять идентификатором Microsoft Entra в масштабе из командной строки PowerShell с помощью пакета SDK Для Microsoft Graph PowerShell. Вы также можете включить командлеты Microsoft Graph PowerShell из модуля Runbook на основе PowerShell в служба автоматизации Azure, чтобы автоматизировать задачи Microsoft Entra из простого скрипта.
служба автоматизации Azure и пакет SDK Для PowerShell Graph поддерживает проверку подлинности на основе сертификатов и разрешения приложения, чтобы можно было служба автоматизации Azure модули Runbook, прошедшие проверку подлинности в идентификаторе Microsoft Entra, не нуждаясь в контексте пользователя.
В этой статье показано, как приступить к использованию служба автоматизации Azure для Управление идентификацией Microsoft Entra, создав простой модуль Runbook, который запрашивает управление правами через Microsoft Graph PowerShell.
Создание учетной записи служба автоматизации Azure
Кончик
Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.
служба автоматизации Azure предоставляет облачную среду для выполнения runbook. Эти модули Runbook могут запускаться автоматически на основе расписания или запускаться веб-перехватчиками или Logic Apps.
Для использования служба автоматизации Azure требуется подписка Azure.
Необходимая роль: подписка Azure или владелец группы ресурсов
Войдите в портал Azure. Убедитесь, что у вас есть доступ к подписке или группе ресурсов, в которой будет находиться учетная запись служба автоматизации Azure.
Выберите подписку или группу ресурсов и нажмите кнопку "Создать". Автоматизация типов, выберите службу Автоматизации Azure из Майкрософт, а затем нажмите кнопку "Создать".
После создания учетной записи служба автоматизации Azure выберите элемент управления доступом (IAM). Затем выберите "Вид " в представлении доступа к этому ресурсу. Эти пользователи и субъекты-службы впоследствии смогут взаимодействовать со службой Майкрософт с помощью сценариев, которые будут созданы в этой учетной записи служба автоматизации Azure.
Просмотрите пользователей и субъектов-служб, перечисленных там, и убедитесь, что они авторизованы. Удалите всех пользователей, которые не авторизованы.
Создание самозаверяющей пары ключей и сертификата на компьютере
Таким образом, он может работать без использования личных учетных данных, созданная учетная запись служба автоматизации Azure должна пройти проверку подлинности в идентификаторе Microsoft Entra с помощью сертификата.
Если у вас уже есть пара ключей для проверки подлинности службы в идентификатор Microsoft Entra ID и сертификат, полученный от центра сертификации, перейдите к следующему разделу.
Чтобы создать самозаверяющий сертификат,
Следуйте инструкциям в том, как создать самозаверяющий сертификат, вариант 2, чтобы создать и экспортировать сертификат с закрытым ключом.
Отображение отпечатка сертификата.
$cert | ft Thumbprint
После экспорта файлов можно удалить пару сертификатов и ключей из локального хранилища сертификатов пользователя. В последующих шагах вы также удалите
.pfx
и файлы после отправки сертификата и.crt
закрытого ключа в службы служба автоматизации Azure и Microsoft Entra.
Отправка пары ключей в служба автоматизации Azure
Модуль Runbook в служба автоматизации Azure извлекает закрытый ключ из .pfx
файла и использует его для проверки подлинности в Microsoft Graph.
В портал Azure для учетной записи служба автоматизации Azure выберите сертификаты и добавьте сертификат.
.pfx
Отправьте созданный ранее файл и введите пароль, предоставленный при создании файла.После отправки закрытого ключа запишите дату окончания срока действия сертификата.
Теперь вы можете удалить
.pfx
файл с локального компьютера. Однако не удаляйте.crt
файл, так как этот файл понадобится на следующем шаге.
Добавление модулей для Microsoft Graph в учетную запись служба автоматизации Azure
По умолчанию служба автоматизации Azure не имеют предварительно загруженных модулей PowerShell для Microsoft Graph. Необходимо добавить Microsoft.Graph.Authentication, а затем дополнительные модули из коллекции в учетную запись службы автоматизации.
В портал Azure для учетной записи служба автоматизации Azure выберите "Модули" и "Обзор коллекции".
В строке поиска введите Microsoft.Graph.Authentication. Выберите модуль, нажмите кнопку "Импорт" и нажмите кнопку "ОК ", чтобы идентификатор Microsoft Entra начал импортировать модуль. После нажатия кнопки "ОК" импорт модуля может занять несколько минут. Не пытайтесь добавлять дополнительные модули Microsoft Graph до тех пор, пока импорт модуля Microsoft.Graph.Authentication не завершится, так как эти другие модули имеют Microsoft.Graph.Authentication в качестве предварительных требований.
Вернитесь в список модулей и выберите "Обновить". После изменения состояния модуля Microsoft.Graph.Authentication на Available можно импортировать следующий модуль.
Если вы используете командлеты для Управление идентификацией Microsoft Entra функций, таких как управление правами, повторите процесс импорта для модуля Microsoft.Graph.Identity.Management.
Импортируйте другие модули, которые может потребовать скрипт, например Microsoft.Graph.Users. Например, если вы используете Защита идентификации Microsoft Entra, вы можете импортировать модуль Microsoft.Graph.Identity.SignIns.
Создание регистрации приложения и назначение разрешений
Затем вы создадите регистрацию приложения в идентификаторе Microsoft Entra, чтобы идентификатор Microsoft Entra распознал сертификат runbook служба автоматизации Azure для проверки подлинности.
- Войдите в Центр администрирования Microsoft Entra как минимум администратор приложений.
- Перейдите к приложениям> удостоверений>Регистрация приложений.
- Выберите "Создать регистрацию".
- Введите имя приложения и выберите "Зарегистрировать".
- После создания регистрации приложения запишите идентификатор приложения (клиента) и идентификатор каталога (клиента), так как вам потребуется эти элементы позже.
- Выберите сертификаты и сертификаты секретов>Для отправки>сертификата.
.crt
Отправьте созданный ранее файл.
- Выберите разрешения>API" "Добавить разрешение".
- Выберите разрешения приложения Microsoft Graph>.
Выберите все необходимые разрешения для служба автоматизации Azure учетной записи, а затем нажмите кнопку "Добавить разрешения".
- Если модуль Runbook выполняет только запросы или обновления в одном каталоге, вам не нужно назначать разрешения приложения на уровне клиента; вместо этого можно назначить субъект-службу роли владельца каталога или читателя каталога.
- Если модуль Runbook выполняет запросы только для управления правами, то он может использовать разрешение PermissionManagement.Read.All .
- Если модуль Runbook вносит изменения в управление правами, например для создания назначений в нескольких каталогах, используйте разрешение PermissionManagement.ReadWrite.All .
- Для других API убедитесь, что необходимое разрешение будет добавлено. Например, для Защита идентификации Microsoft Entra может потребоваться разрешение IdentityRiskyUser.Read.All.
Предоставление согласия администратора
Приложение, созданное в предыдущем разделе, имеет разрешения, требующие, чтобы кто-то с ролью администратора привилегированных ролей утверждался, прежде чем он будет работать должным образом.
- Войдите в Центр администрирования Microsoft Entra как минимум администратор привилегированных ролей.
- Перейдите к приложениям >identity>Регистрация приложений> All.
- Выберите приложение, созданное в предыдущем разделе.
- Выберите разрешения API и просмотрите необходимые разрешения.
- При необходимости выберите "Предоставить согласие администратора" для "Имя клиента" , чтобы предоставить приложению эти разрешения.
Создание переменных служба автоматизации Azure
На этом шаге вы создадите в учетной записи служба автоматизации Azure три переменных, которые модуль Runbook использует для определения способа проверки подлинности в идентификаторе Microsoft Entra.
В портал Azure вернитесь к учетной записи служба автоматизации Azure.
Выберите переменные и добавьте переменную.
Создайте переменную с именем Отпечаток. В качестве значения переменной отпечаток сертификата, созданный ранее.
Создайте переменную с именем ClientId. В качестве значения переменной идентификатор клиента для приложения, зарегистрированного в идентификаторе Microsoft Entra.
Создайте переменную с именем TenantId. В качестве значения переменной идентификатор клиента каталога, в котором было зарегистрировано приложение.
Создание модуля runbook PowerShell служба автоматизации Azure, который может использовать Graph
На этом шаге вы создадите начальный модуль Runbook. Этот модуль Runbook можно активировать, чтобы проверить проверку подлинности с помощью сертификата, созданного ранее, успешно.
Выберите Модули Runbook и создайте модуль Runbook.
Введите имя модуля Runbook, выберите PowerShell в качестве типа модуля Runbook, который нужно создать, и нажмите кнопку "Создать".
После создания модуля Runbook появится область редактирования текста для ввода в исходном коде Модуля Runbook PowerShell.
Введите следующий powerShell в текстовый редактор.
Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
Connect-MgGraph -clientId $ClientId -tenantId $TenantId -certificatethumbprint $Thumbprint
Выберите область "Тест" и нажмите кнопку "Пуск". Подождите несколько секунд, пока служба автоматизации Azure обработка скрипта Runbook завершится.
Если запуск модуля Runbook выполнен успешно, появится сообщение "Добро пожаловать в Microsoft Graph!" .
Теперь, когда вы убедились, что модуль Runbook может пройти проверку подлинности в Microsoft Graph, расширьте модуль Runbook, добавив командлеты для взаимодействия с функциями Microsoft Entra.
Расширение модуля Runbook для использования управления правами
Если у регистрации приложения для модуля Runbook есть разрешения PermissionManagement.Read.All или EntitlementManagement.ReadWrite.All , то он может использовать API управления правами.
- Например, чтобы получить список пакетов доступа к управлению правами Microsoft Entra, можно обновить созданный выше модуль Runbook и заменить текст следующим кодом PowerShell.
Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
$auth = Connect-MgGraph -clientId $ClientId -tenantid $TenantId -certificatethumbprint $Thumbprint
Import-Module Microsoft.Graph.Identity.Governance
$ap = @(Get-MgEntitlementManagementAccessPackage -All -ErrorAction Stop)
if ($null -eq $ap -or $ap.Count -eq 0) {
ConvertTo-Json @()
} else {
$ap | Select-Object -Property Id,DisplayName | ConvertTo-Json -AsArray
}
Выберите область "Тест" и нажмите кнопку "Пуск". Подождите несколько секунд, пока служба автоматизации Azure обработка скрипта Runbook завершится.
Если выполнение выполнено успешно, выходные данные вместо приветственного сообщения будут массивом JSON. Массив JSON содержит идентификатор и отображаемое имя каждого пакета доступа, возвращенного из запроса.
Укажите параметры модуля Runbook (необязательно)
Вы также можете добавить входные параметры в модуль Runbook, добавив Param
раздел в верхней части скрипта PowerShell. Например
Param
(
[String] $AccessPackageAssignmentId
)
Формат разрешенных параметров зависит от вызываемой службы. Если модуль Runbook принимает параметры из вызывающего средства, необходимо добавить логику проверки в модуль Runbook, чтобы убедиться, что указанные значения параметров подходят для запуска модуля Runbook. Например, если модуль Runbook запускается веб-перехватчиком, служба автоматизации Azure не выполняет проверку подлинности в запросе веб-перехватчика до тех пор, пока он выполнен в правильный URL-адрес, поэтому вам потребуется альтернативный способ проверки запроса.
После настройки входных параметров runbook при тестировании модуля Runbook можно указать значения на странице "Тест". Позже при публикации модуля Runbook можно указать параметры при запуске модуля Runbook из PowerShell, REST API или приложения логики.
Анализ выходных данных учетной записи служба автоматизации Azure в Logic Apps (необязательно)
После публикации модуля Runbook можно создать расписание в служба автоматизации Azure и связать модуль Runbook с этим расписанием для автоматического запуска. Планирование модулей Runbook из служба автоматизации Azure подходит для модулей Runbook, которые не должны взаимодействовать с другими службами Azure или Office 365, у которых нет интерфейсов PowerShell.
Если вы хотите отправить выходные данные модуля Runbook в другую службу, вам может потребоваться использовать Azure Logic Apps для запуска модуля Runbook служба автоматизации Azure, так как Logic Apps также может проанализировать результаты.
В Azure Logic Apps создайте приложение логики в конструкторе Logic Apps, начиная с повторения.
Добавьте задание создания операции из служба автоматизации Azure. Выполните проверку подлинности в идентификаторе Microsoft Entra и выберите подписку, группу ресурсов, учетную запись службы автоматизации, созданную ранее. Выберите "Ожидание задания".
Добавьте имя runbook параметра и введите имя запуска модуля Runbook. Если модуль Runbook имеет входные параметры, их можно указать.
Выберите новый шаг и добавьте выходные данные задания get. Выберите ту же подписку, группу ресурсов, учетную запись службы автоматизации, что и предыдущий шаг, и выберите динамическое значение идентификатора задания на предыдущем шаге.
Затем можно добавить дополнительные операции в приложение логики, например действие Анализа JSON, которое использует содержимое, возвращаемое при завершении модуля Runbook. (При автоматическом создании Анализ схемы JSON из примера полезных данных обязательно следует учитывать для скрипта PowerShell, потенциально возвращающего значение NULL; может потребоваться изменить некоторые значения
"type": "string"
"type": ["string", "null"]
в схеме.)
В служба автоматизации Azure модуль Runbook PowerShell может завершиться сбоем, если он пытается одновременно записать большое количество данных в выходной поток. Как правило, эту проблему можно обойти, указав выходные данные runbook, необходимые приложению логики, например с помощью Select-Object -Property
командлета, чтобы исключить ненужные свойства.
Планирование актуальности сертификата
Если вы создали самозаверяющий сертификат, выполнив описанные выше действия для проверки подлинности, помните, что срок действия сертификата ограничен до истечения срока действия. Необходимо повторно создать сертификат и отправить новый сертификат до истечения срока его действия.
Есть два места, где можно увидеть дату окончания срока действия в портал Azure.
- В служба автоматизации Azure экран "Сертификаты" отображает дату окончания срока действия сертификата.
- В идентификаторе Microsoft Entra на регистрации приложения экран "Сертификаты и секреты" отображает дату окончания срока действия сертификата, используемого для учетной записи служба автоматизации Azure.