Использование Microsoft Entra ID для проверки подлинности в Azure
Служба идентификатора Microsoft Entra включает ряд административных задач, таких как управление пользователями, управление доменами и настройка единого входа. В этой статье описывается, как использовать идентификатор Microsoft Entra в служба автоматизации Azure в качестве поставщика для проверки подлинности в Azure.
Установка модулей Microsoft Entra
Идентификатор Microsoft Entra можно включить с помощью следующих модулей PowerShell:
Azure Active Directory PowerShell для Graph (модули AzureRM и Az). В состав службы автоматизации Azure входит модуль AzureRM и его недавнее обновление, модуль Az. Функции включают неинтерактивную проверку подлинности в Azure с помощью проверки подлинности на основе учетных данных пользователя Microsoft Entra (OrgId). См . идентификатор Microsoft Entra 2.0.2.76.
Идентификатор Microsoft Entra для Windows PowerShell (модуль MSOnline). Этот модуль обеспечивает взаимодействие с Microsoft Online, в том числе с Microsoft 365.
Примечание.
PowerShell Core не поддерживает модуль MSOnline. Чтобы использовать командлеты этого модуля, необходимо запускать их из Windows PowerShell. Вместо модуля MSOnline мы рекомендуем использовать более новую версию модулей Azure Active Directory PowerShell для Graph.
Примечание.
Модули Azure AD и MSOnline PowerShell устарели с 30 марта 2024 г. Дополнительные сведения см. в обновлении об отмене. После этой даты поддержка этих модулей ограничена поддержкой миграции в пакет SDK Для Microsoft Graph PowerShell и исправления безопасности. Устаревшие модули будут продолжать функционировать до 30 марта 2025 года.
Рекомендуется перенести в Microsoft Graph PowerShell для взаимодействия с идентификатором Microsoft Entra (ранее — Azure AD). Часто задаваемые вопросы о миграции см. в разделе "Вопросы и ответы о миграции". Примечание. Версии 1.0.x MSOnline могут возникнуть сбоем после 30 июня 2024 г.
Действия перед установкой
Перед установкой модулей Microsoft Entra на компьютере:
Удалите все предыдущие версии модулей AzureRM, Az и MSOnline.
Удалите помощника по входу в Microsoft Online Services, чтобы он не мешал правильной работе новых модулей PowerShell.
Установка модулей AzureRM и Az
Примечание.
Для работы с этими модулями нужно использовать PowerShell 5.1 или более поздней версии на 64-разрядной версии Windows.
Установите Windows Management Framework (WMF) 5.1. Подробные сведения см. в статье Установка и настройка WMF 5.1.
Установите AzureRM и (или) Az, следуя инструкциям из статьи Установка Azure PowerShell в ОС Windows с помощью PowerShellGet.
Установка модуля MSOnline
Примечание.
Чтобы установить модуль MSOnline, нужно иметь роль администратора. См. раздел О ролях администратора.
Убедитесь, что на вашем компьютере включен компонент Microsoft .NET Framework 3.5.x. Вероятно, что на компьютере уже установлена более новая версия, но обратная совместимость платформы .NET Framework с более старыми версиями может быть включена или отключена.
Установите 64-разрядную версию помощника по входу в Microsoft Online Services.
Откройте сеанс Windows PowerShell от имени администратора, чтобы запустить командную строку Windows PowerShell с повышенными привилегиями.
Разверните идентификатор Microsoft Entra из MSOnline 1.0.
Если появится запрос на установку поставщика NuGet, введите с клавиатуры Y и нажмите клавишу ВВОД.
Если появится запрос на установку модуля из коллекции PSGallery, введите с клавиатуры Y и нажмите клавишу ВВОД.
Установка поддержки для PSCredential
Служба автоматизации Azure использует класс PSCredential для представления ресурса учетных данных. Ваши скрипты извлекают объекты PSCredential
через командлет Get-AutomationPSCredential
. См. дополнительные сведения в статье Управление учетными данными в службе автоматизации Azure.
Назначение администратора подписки
Вам нужно назначить администратора для подписки Azure. Это должен быть пользователь с ролью владельца для области подписки. Подробные сведения см. в статье Управление доступом на основе ролей в службе автоматизации Azure.
Изменение пароля пользователя Microsoft Entra
Чтобы изменить пароль пользователя Microsoft Entra, выполните следующие действия.
Выйдите из Azure.
Войдите в Azure в качестве только что созданного пользователя Microsoft Entra, используя полное имя пользователя (включая домен) и временный пароль.
Попросите администратора изменить пароль в ответ на соответствующий запрос.
Настройка управления подпиской Azure в службе автоматизации Azure
Чтобы служба автоматизации Azure взаимодействовать с идентификатором Microsoft Entra, необходимо получить учетные данные, связанные с подключением Azure к идентификатору Microsoft Entra. В качестве учетных данных могут использоваться идентификатор клиента, идентификатор подписки и т. п. Дополнительные сведения о подключении между Azure и идентификатором Microsoft Entra см. в разделе "Подключение организации к идентификатору Microsoft Entra".
Создание ресурса учетных данных
Используя доступные учетные данные Azure для Microsoft Entra, пришло время создать служба автоматизации Azure ресурс учетных данных для безопасного хранения учетных данных Microsoft Entra, чтобы модули Runbook и скрипты конфигурации требуемого состояния (DSC) могли получить к ним доступ. Это можно сделать с помощью портала Azure или командлетов PowerShell.
Создание ресурса учетных данных на портале Azure
Для создания ресурса учетных данных можно использовать портал Azure. Для этого выберите Учетные данные в области Общие ресурсы для учетной записи службы автоматизации. Подробные сведения см. в статье Управление учетными данными в службе автоматизации Azure.
Создание ресурса учетных данных с помощью Windows PowerShell
Чтобы подготовить новый ресурс учетных данных в Windows PowerShell, скрипт первым делом создает объект PSCredential
с назначенным именем пользователя и паролем. Затем скрипт использует этот объект для создания ресурса, вызывая командлет New-AzureAutomationCredential. Вместо этого скрипт может использовать командлет Get-Credential, чтобы предложить пользователю ввести имя и пароль. Подробные сведения см. в статье Управление учетными данными в службе автоматизации Azure.
Управление ресурсами Azure из runbook службы автоматизации Azure
Вы можете управлять ресурсами Azure из runbook службы автоматизации Azure, используя ресурс учетных данных. Ниже приведен пример runbook PowerShell, который собирает ресурс учетных данных и применяет его для остановки и запуска виртуальных машин в подписке Azure. Этот runbook сначала вызывает Get-AutomationPSCredential
для получения учетных данных для аутентификации в Azure. Затем он вызывает командлет Connect AzAccount, чтобы подключиться к Azure с использованием полученных учетных данных.
Workflow Workflow
{
Param
(
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()]
[String]
$AzureSubscriptionId,
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()]
[String]
$AzureVMList="All",
[Parameter(Mandatory=$true)][ValidateSet("Start","Stop")]
[String]
$Action
)
# Ensures you do not inherit an AzContext in your runbook
Disable-AzContextAutosave -Scope Process
# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext
# get credential
$credential = Get-AutomationPSCredential -Name "AzureCredential"
# Connect to Azure with credential
$AzureContext = (Connect-AzAccount -Credential $credential -TenantId $AzureContext.Subscription.TenantId).context
# set and store context
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
-TenantId $AzureContext.Subscription.TenantId `
-DefaultProfile $AzureContext
if($AzureVMList -ne "All")
{
$AzureVMs = $AzureVMList.Split(",")
[System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs
}
else
{
$AzureVMs = (Get-AzVM -DefaultProfile $AzureContext).Name
[System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs
}
foreach($AzureVM in $AzureVMsToHandle)
{
if(!(Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM}))
{
throw " AzureVM : [$AzureVM] - Does not exist! - Check your inputs "
}
}
if($Action -eq "Stop")
{
Write-Output "Stopping VMs";
foreach -parallel ($AzureVM in $AzureVMsToHandle)
{
Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Stop-AzVM -DefaultProfile $AzureContext -Force
}
}
else
{
Write-Output "Starting VMs";
foreach -parallel ($AzureVM in $AzureVMsToHandle)
{
Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Start-AzVM -DefaultProfile $AzureContext
}
}
}
Следующие шаги
- Подробные сведения об использовании учетных данных см. в статье Управление учетными данными в службе автоматизации Azure.
- Дополнительные сведения о модулях можно найти в статье Администрирование модулей в службе автоматизации Azure.
- При необходимости см. статью Запуск runbook в службе автоматизации Azure.
- Дополнительные сведения о PowerShell см. в документации по PowerShell.