Включение доменных служб Microsoft Entra с помощью PowerShell
Доменные службы Microsoft Entra предоставляют управляемые доменные службы, такие как присоединение к домену, групповая политика, LDAP, проверка подлинности Kerberos/NTLM, полностью совместимая с Windows Server Active Directory. Эти доменные службы используются без развертывания, управления и исправления контроллеров домена. Доменные службы интегрируются с существующим клиентом Microsoft Entra. Эта интеграция позволяет пользователям входить с помощью корпоративных учетных данных и использовать существующие группы и учетные записи пользователей для защиты доступа к ресурсам.
В этой статье показано, как включить доменные службы с помощью PowerShell.
Заметка
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы приступить к работе, см. статью "Установка Azure PowerShell ". Сведения о миграции в модуль Az PowerShell см. в статье "Миграция Azure PowerShell из AzureRM в Az".
Необходимые условия
Чтобы завершить эту статью, вам потребуются следующие ресурсы:
Установите и настройте Azure PowerShell.
- При необходимости следуйте инструкциям по установке модуля Azure PowerShell и подключению к подписке Azure.
- Убедитесь, что вы входите в подписку Azure с помощью командлета Connect-AzAccount .
Установите и настройте MS Graph PowerShell.
- При необходимости следуйте инструкциям по установке модуля MS Graph PowerShell и подключению к идентификатору Microsoft Entra.
- Убедитесь, что вы войдите в клиент Microsoft Entra с помощью командлета Connect-MgGraph .
- При необходимости следуйте инструкциям по установке модуля MS Graph PowerShell и подключению к идентификатору Microsoft Entra.
-
Для управления этой функцией требуется глобальный администратор .
Для этой функции требуются привилегии участника для подписки Azure.
Важный
Хотя модуль PowerShell Az.ADDomainServices находится в предварительной версии, его необходимо установить отдельно с помощью командлета
Install-Module
.Install-Module -Name Az.ADDomainServices
Создание необходимых ресурсов Microsoft Entra
Для доменных служб требуется субъект-служба для проверки подлинности и обмена данными и группы Microsoft Entra, чтобы определить, какие пользователи имеют административные разрешения в управляемом домене.
Сначала создайте субъект-службу Microsoft Entra с помощью определенного идентификатора приложения с именем доменных контроллеров. Значение идентификатора — 2565bd9d-da50-47d4-8b85-4c97f69dc36 для глобальной среды Azure и 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 для других облаков Azure. Не изменяйте этот идентификатор приложения.
Создайте субъект-службу Microsoft Entra с помощью командлета New-MgServicePrincipal :
New-MgServicePrincipal -AppId "2565bd9d-da50-47d4-8b85-4c97f669dc36"
Теперь создайте группу Microsoft Entra с именем администраторов контроллера домена AAD. Затем пользователям, добавленным в эту группу, предоставляются разрешения на выполнение задач администрирования в управляемом домене.
Сначала получите идентификатор объекта группы администраторов контроллера домена AAD с помощью командлета Get-MgGroup . Если группа не существует, создайте ее с группой администраторов контроллера домена AAD с помощью командлета New-MgGroup :
# First, retrieve the object ID of the 'AAD DC Administrators' group.
$GroupObject = Get-MgGroup `
-Filter "DisplayName eq 'AAD DC Administrators'"
# If the group doesn't exist, create it
if (!$GroupObject) {
$GroupObject = New-MgGroup -DisplayName "AAD DC Administrators" `
-Description "Delegated group to administer Microsoft Entra Domain Services" `
-SecurityEnabled:$true `
-MailEnabled:$false `
-MailNickName "AADDCAdministrators"
} else {
Write-Output "Admin group already exists."
}
Создав группу администраторов контроллера домена AAD, получите идентификатор объекта нужного пользователя с помощью командлета Get-MgUser, а затем добавьте пользователя в группу с помощью командлета New-MgGroupMemberByRef.
В следующем примере идентификатор объекта пользователя для учетной записи с идентификатором имени участника-пользователя [email protected]
. Замените эту учетную запись пользователя на имя участника-пользователя, который вы хотите добавить в группу администраторов контроллера домена AAD:
# Retrieve the object ID of the user you'd like to add to the group.
$UserObjectId = Get-MgUser `
-Filter "UserPrincipalName eq '[email protected]'" | `
Select-Object Id
# Add the user to the 'AAD DC Administrators' group.
New-MgGroupMember -GroupId $GroupObject.Id -DirectoryObjectId $UserObjectId.Id
Создание сетевых ресурсов
Сначала зарегистрируйте поставщика ресурсов доменных служб Microsoft Entra с помощью командлета Register-AzResourceProvider :
Register-AzResourceProvider -ProviderNamespace Microsoft.AAD
Затем создайте группу ресурсов с помощью командлета New-AzResourceGroup . В следующем примере группа ресурсов называется myResourceGroup и создается в регионе westus . Используйте собственное имя и нужный регион:
$ResourceGroupName = "myResourceGroup"
$AzureLocation = "westus"
# Create the resource group.
New-AzResourceGroup `
-Name $ResourceGroupName `
-Location $AzureLocation
Создайте виртуальную сеть и подсети для доменных служб Microsoft Entra. Создаются две подсети — одна для доменных служб и одна для рабочих нагрузок. Доменные службы развертываются в выделенной подсети DomainServices . Не развертывайте другие приложения или рабочие нагрузки в этой подсети. Используйте отдельные рабочие нагрузки или другие подсети для остальных виртуальных машин.
Создайте подсети с помощью командлета New-AzVirtualNetworkSubnetConfig , а затем создайте виртуальную сеть с помощью командлета New-AzVirtualNetwork .
$VnetName = "myVnet"
# Create the dedicated subnet for Microsoft Entra Domain Services.
$SubnetName = "DomainServices"
$AaddsSubnet = New-AzVirtualNetworkSubnetConfig `
-Name $SubnetName `
-AddressPrefix 10.0.0.0/24
# Create an additional subnet for your own VM workloads
$WorkloadSubnet = New-AzVirtualNetworkSubnetConfig `
-Name Workloads `
-AddressPrefix 10.0.1.0/24
# Create the virtual network in which you will enable Microsoft Entra Domain Services.
$Vnet= New-AzVirtualNetwork `
-ResourceGroupName $ResourceGroupName `
-Location westus `
-Name $VnetName `
-AddressPrefix 10.0.0.0/16 `
-Subnet $AaddsSubnet,$WorkloadSubnet
Создание группы безопасности сети
Доменные службы нуждаются в группе безопасности сети, чтобы защитить порты, необходимые для управляемого домена, и заблокировать весь другой входящий трафик. Группа безопасности сети (NSG) содержит список правил, которые разрешают или запрещают трафик сети в виртуальной сети Azure. В доменных службах группа безопасности сети выступает в качестве дополнительного уровня защиты для блокировки доступа к управляемому домену. Сведения о необходимых портах см. в разделе "Группы безопасности сети" и необходимые порты.
Следующие командлеты PowerShell используют New-AzNetworkSecurityRuleConfig для создания правил, а затем New-AzNetworkSecurityGroup для создания группы безопасности сети. Затем группа безопасности сети и правила связаны с подсетью виртуальной сети с помощью командлета Set-AzVirtualNetworkSubnetConfig .
$NSGName = "dsNSG"
# Create a rule to allow inbound TCP port 3389 traffic from Microsoft secure access workstations for troubleshooting
$nsg201 = New-AzNetworkSecurityRuleConfig -Name AllowRD `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 201 `
-SourceAddressPrefix CorpNetSaw `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389
# Create a rule to allow TCP port 5986 traffic for PowerShell remote management
$nsg301 = New-AzNetworkSecurityRuleConfig -Name AllowPSRemoting `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 301 `
-SourceAddressPrefix AzureActiveDirectoryDomainServices `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 5986
# Create the network security group and rules
$nsg = New-AzNetworkSecurityGroup -Name $NSGName `
-ResourceGroupName $ResourceGroupName `
-Location $AzureLocation `
-SecurityRules $nsg201,$nsg301
# Get the existing virtual network resource objects and information
$vnet = Get-AzVirtualNetwork -Name $VnetName -ResourceGroupName $ResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $SubnetName
$addressPrefix = $subnet.AddressPrefix
# Associate the network security group with the virtual network subnet
Set-AzVirtualNetworkSubnetConfig -Name $SubnetName `
-VirtualNetwork $vnet `
-AddressPrefix $addressPrefix `
-NetworkSecurityGroup $nsg
$vnet | Set-AzVirtualNetwork
Создание управляемого домена
Теперь создадим управляемый домен. Задайте идентификатор подписки Azure и укажите имя управляемого домена, например dscontoso.com. Вы можете получить идентификатор подписки с помощью командлета Get-AzSubscription .
Если выбрать регион, поддерживающий Зоны доступности, ресурсы доменных служб распределяются по зонам для избыточности.
Зоны доступности являются уникальными физическими расположениями в регионе Azure. Каждая зона состоит из одного или нескольких центров обработки данных, оснащенных независимым питанием, охлаждением и сетями. Для обеспечения устойчивости существует не менее трех отдельных зон во всех включенных регионах.
Нет ничего, чтобы настроить распределение доменных служб между зонами. Платформа Azure автоматически обрабатывает распределение ресурсов между зонами. Дополнительные сведения и сведения о доступности регионов см. в статье "Что такое Зоны доступности в Azure?".
$AzureSubscriptionId = "YOUR_AZURE_SUBSCRIPTION_ID"
$ManagedDomainName = "dscontoso.com"
# Enable Microsoft Entra Domain Services for the directory.
$replicaSetParams = @{
Location = $AzureLocation
SubnetId = "/subscriptions/$AzureSubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Network/virtualNetworks/$VnetName/subnets/DomainServices"
}
$replicaSet = New-AzADDomainServiceReplicaSetObject @replicaSetParams
$domainServiceParams = @{
Name = $ManagedDomainName
ResourceGroupName = $ResourceGroupName
DomainName = $ManagedDomainName
ReplicaSet = $replicaSet
}
New-AzADDomainService @domainServiceParams
Чтобы создать ресурс и вернуть элемент управления в запрос PowerShell, потребуется несколько минут. Управляемый домен продолжает подготавливаться в фоновом режиме и может занять до часа, чтобы завершить развертывание. На странице "Обзор" управляемого домена в Центре администрирования Microsoft Entra отображается текущее состояние на этом этапе развертывания.
Когда Центр администрирования Microsoft Entra показывает, что управляемый домен завершил подготовку, необходимо выполнить следующие задачи:
- Обновите параметры DNS для виртуальной сети, чтобы виртуальные машины могли найти управляемый домен для присоединения к домену или проверки подлинности.
- Чтобы настроить DNS, выберите управляемый домен на портале. В окне обзора появится запрос на автоматическую настройку этих параметров DNS.
- Включите синхронизацию паролей в доменные службы , чтобы конечные пользователи могли войти в управляемый домен с помощью корпоративных учетных данных.
Завершение скрипта PowerShell
Следующий полный сценарий PowerShell объединяет все задачи, описанные в этой статье. Скопируйте скрипт и сохраните его в файл с расширением .ps1
. Для Azure Global используйте значение AppId 2565bd9d-da50-47d4-8b85-4c97f669dc36. Для других облаков Azure используйте значение AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Запустите скрипт в локальной консоли PowerShell или Azure Cloud Shell.
Для управления этой функцией требуется глобальный администратор .
Для этой функции требуются привилегии участника для подписки Azure.
# Change the following values to match your deployment.
$AaddsAdminUserUpn = "[email protected]"
$ResourceGroupName = "myResourceGroup"
$VnetName = "myVnet"
$AzureLocation = "westus"
$AzureSubscriptionId = "YOUR_AZURE_SUBSCRIPTION_ID"
$ManagedDomainName = "dscontoso.com"
# Connect to your Microsoft Entra directory.
Connect-MgGraph -Scopes "Application.ReadWrite.All","Directory.ReadWrite.All"
# Login to your Azure subscription.
Connect-AzAccount
# Create the service principal for Microsoft Entra Domain Services.
New-MgServicePrincipal -AppId "2565bd9d-da50-47d4-8b85-4c97f669dc36"
# First, retrieve the object of the 'AAD DC Administrators' group.
$GroupObject = Get-MgGroup `
-Filter "DisplayName eq 'AAD DC Administrators'"
# Create the delegated administration group for Microsoft Entra Domain Services if it doesn't already exist.
if (!$GroupObject) {
$GroupObject = New-MgGroup -DisplayName "AAD DC Administrators" `
-Description "Delegated group to administer Microsoft Entra Domain Services" `
-SecurityEnabled:$true `
-MailEnabled:$false `
-MailNickName "AADDCAdministrators"
} else {
Write-Output "Admin group already exists."
}
# Now, retrieve the object ID of the user you'd like to add to the group.
$UserObjectId = Get-MgUser `
-Filter "UserPrincipalName eq '$AaddsAdminUserUpn'" | `
Select-Object Id
# Add the user to the 'AAD DC Administrators' group.
New-MgGroupMember -GroupId $GroupObject.Id -DirectoryObjectId $UserObjectId.Id
# Register the resource provider for Microsoft Entra Domain Services with Resource Manager.
Register-AzResourceProvider -ProviderNamespace Microsoft.AAD
# Create the resource group.
New-AzResourceGroup `
-Name $ResourceGroupName `
-Location $AzureLocation
# Create the dedicated subnet for Microsoft Entra Domain Services.
$SubnetName = "DomainServices"
$AaddsSubnet = New-AzVirtualNetworkSubnetConfig `
-Name DomainServices `
-AddressPrefix 10.0.0.0/24
$WorkloadSubnet = New-AzVirtualNetworkSubnetConfig `
-Name Workloads `
-AddressPrefix 10.0.1.0/24
# Create the virtual network in which you will enable Microsoft Entra Domain Services.
$Vnet=New-AzVirtualNetwork `
-ResourceGroupName $ResourceGroupName `
-Location $AzureLocation `
-Name $VnetName `
-AddressPrefix 10.0.0.0/16 `
-Subnet $AaddsSubnet,$WorkloadSubnet
$NSGName = "dsNSG"
# Create a rule to allow inbound TCP port 3389 traffic from Microsoft secure access workstations for troubleshooting
$nsg201 = New-AzNetworkSecurityRuleConfig -Name AllowRD `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 201 `
-SourceAddressPrefix CorpNetSaw `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389
# Create a rule to allow TCP port 5986 traffic for PowerShell remote management
$nsg301 = New-AzNetworkSecurityRuleConfig -Name AllowPSRemoting `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 301 `
-SourceAddressPrefix AzureActiveDirectoryDomainServices `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 5986
# Create the network security group and rules
$nsg = New-AzNetworkSecurityGroup -Name $NSGName `
-ResourceGroupName $ResourceGroupName `
-Location $AzureLocation `
-SecurityRules $nsg201,$nsg301
# Get the existing virtual network resource objects and information
$vnet = Get-AzVirtualNetwork -Name $VnetName -ResourceGroupName $ResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $SubnetName
$addressPrefix = $subnet.AddressPrefix
# Associate the network security group with the virtual network subnet
Set-AzVirtualNetworkSubnetConfig -Name $SubnetName `
-VirtualNetwork $vnet `
-AddressPrefix $addressPrefix `
-NetworkSecurityGroup $nsg
$vnet | Set-AzVirtualNetwork
# Enable Microsoft Entra Domain Services for the directory.
$replicaSetParams = @{
Location = $AzureLocation
SubnetId = "/subscriptions/$AzureSubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Network/virtualNetworks/$VnetName/subnets/DomainServices"
}
$replicaSet = New-AzADDomainServiceReplicaSet @replicaSetParams
$domainServiceParams = @{
Name = $ManagedDomainName
ResourceGroupName = $ResourceGroupName
DomainName = $ManagedDomainName
ReplicaSet = $replicaSet
}
New-AzADDomainService @domainServiceParams
Чтобы создать ресурс и вернуть элемент управления в запрос PowerShell, потребуется несколько минут. Управляемый домен продолжает подготавливаться в фоновом режиме и может занять до часа, чтобы завершить развертывание. На странице "Обзор" управляемого домена в Центре администрирования Microsoft Entra отображается текущее состояние на этом этапе развертывания.
Когда Центр администрирования Microsoft Entra показывает, что управляемый домен завершил подготовку, необходимо выполнить следующие задачи:
- Обновите параметры DNS для виртуальной сети, чтобы виртуальные машины могли найти управляемый домен для присоединения к домену или проверки подлинности.
- Чтобы настроить DNS, выберите управляемый домен на портале. В окне обзора появится запрос на автоматическую настройку этих параметров DNS.
- Включите синхронизацию паролей в доменные службы , чтобы конечные пользователи могли войти в управляемый домен с помощью корпоративных учетных данных.
Дальнейшие действия
Чтобы просмотреть управляемый домен в действии, можно присоединиться к виртуальной машине Windows, настроить безопасный LDAP и настроить синхронизацию хэша паролей.