Включение доменных служб Microsoft Entra с помощью PowerShell

Доменные службы Microsoft Entra предоставляют управляемые доменные службы, такие как присоединение к домену, групповая политика, LDAP, проверка подлинности Kerberos/NTLM, полностью совместимая с Windows Server Active Directory. Эти доменные службы можно использовать без необходимости развертывать, администрировать и обновлять контроллеры домена. Доменные службы интегрируются с существующим клиентом Microsoft Entra. Такая интеграция позволяет пользователям входить в систему с корпоративными учетными данными. При этом вы можете использовать существующие группы и учетные записи пользователей для защиты доступа к ресурсам.

В этой статье показано, как включить доменные службы с помощью PowerShell.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Необходимые компоненты

Для работы с этой статьей требуются следующие ресурсы:

  • Установите и настройте Azure PowerShell.

  • Установите и настройте 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-4c97f669dc36 для глобального облака Azure и 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 для других облаков Azure. Не изменяйте этот идентификатор приложения.

Создайте субъект-службу Microsoft Entra с помощью командлета New-MgServicePrincipal :

New-MgServicePrincipal -AppId "2565bd9d-da50-47d4-8b85-4c97f669dc36"

Теперь создайте группу Microsoft Entra с именем AAD DC Администратор istrators. Пользователи, добавленные в эту группу, получают разрешения на выполнение задач администрирования в управляемом домене.

Сначала получите идентификатор объекта группы контроллера домена AAD Администратор istrators с помощью командлета Get-MgGroup. Если группа не существует, создайте ее с помощью группы контроллера домена AAD Администратор istrator с помощью командлета 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 Администратор istrator, получите идентификатор объекта нужного пользователя с помощью командлета Get-MgUser, а затем добавьте пользователя в группу с помощью командлета New-MgGroupMember.

В приведенном ниже примере показан идентификатор объекта пользователя для учетной записи с именем участника-пользователя admin@contoso.onmicrosoft.com. Используйте вместо этой учетной записи пользователя имя участника-пользователя, которого нужно добавить в группу Администраторы контроллера домена AAD

# Retrieve the object ID of the user you'd like to add to the group.
$UserObjectId = Get-MgUser `
  -Filter "UserPrincipalName eq 'admin@contoso.onmicrosoft.com'" | `
  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) и для рабочих нагрузок (Workloads). Доменные службы развертываются в выделенной подсети DomainServices . Не развертывайте другие приложения или рабочие нагрузки в этой подсети. Используйте отдельные подсети Workloads или другие подсети для остальных виртуальных машин.

Создайте подсети с помощью командлета 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

Создание группы безопасности сети

Доменные службы нуждаются в группе безопасности сети, чтобы защитить порты, необходимые для управляемого домена, и заблокировать весь другой входящий трафик. Группа безопасности сети содержит перечень правил, которые разрешают или запрещают передачу трафика в виртуальную сеть 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 автоматически обрабатывает распределение ресурсов зоны. См. дополнительные сведения о зонах доступности и регионах.

$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 используйте значение AppId 2565bd9d-da50-47d4-8b85-4c97f669dc36. Для других облаков Azure используйте значение AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Запустите скрипт в локальной консоли PowerShell или Azure Cloud Shell.

Примечание.

Чтобы включить доменные службы, необходимо быть глобальным администратором клиента Microsoft Entra. Кроме того, понадобятся разрешения не ниже уровня Участник в подписке Azure.

# Change the following values to match your deployment.
$AaddsAdminUserUpn = "admin@contoso.onmicrosoft.com"
$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 и синхронизацию хэша паролей.