Włączanie usług Microsoft Entra Domain Services przy użyciu programu PowerShell

Microsoft Entra Domain Services udostępnia zarządzane usługi domenowe, takie jak przyłączenie do domeny, zasady grupy, LDAP, uwierzytelnianie Kerberos/NTLM, które jest w pełni zgodne z usługą Active Directory systemu Windows Server. Te usługi domenowe są używane bez samodzielnego wdrażania kontrolerów domeny, zarządzania nimi i stosowania poprawek. Usługi Domain Services integrują się z istniejącą dzierżawą firmy Microsoft Entra. Ta integracja umożliwia użytkownikom logowanie się przy użyciu poświadczeń firmowych, a także zabezpieczanie dostępu do zasobów przy użyciu istniejących grup i kont użytkowników.

W tym artykule pokazano, jak włączyć usługi Domain Services przy użyciu programu PowerShell.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Wymagania wstępne

Do ukończenia tego artykułu potrzebne są następujące zasoby:

  • Zainstaluj i skonfiguruj program Azure PowerShell.

  • Zainstaluj i skonfiguruj program MS Graph PowerShell.

  • Aby włączyć usługi Domain Services, musisz mieć uprawnienia administratora globalnego w dzierżawie firmy Microsoft Entra.

  • Aby utworzyć wymagane zasoby usług Domain Services, musisz mieć uprawnienia Współautor w subskrypcji platformy Azure.

    Ważne

    Chociaż moduł Az.ADDomainServices programu PowerShell jest w wersji zapoznawczej, należy zainstalować go oddzielnie przy użyciu Install-Module polecenia cmdlet .

    Install-Module -Name Az.ADDomainServices
    

Tworzenie wymaganych zasobów firmy Microsoft Entra

Usługi Domain Services wymagają jednostki usługi do uwierzytelniania i komunikacji oraz grupy Entra firmy Microsoft w celu zdefiniowania użytkowników z uprawnieniami administracyjnymi w domenie zarządzanej.

Najpierw utwórz jednostkę usługi Microsoft Entra przy użyciu określonego identyfikatora aplikacji o nazwie Domain Controller Services. Wartość identyfikatora to 2565bd9d-da50-47d4-8b85-4c97f669dc36 dla globalnej platformy Azure i 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 dla innych chmur platformy Azure. Nie zmieniaj tego identyfikatora aplikacji.

Utwórz jednostkę usługi Microsoft Entra przy użyciu polecenia cmdlet New-MgServicePrincipal :

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

Teraz utwórz grupę Microsoft Entra o nazwie AAD DC Administracja istrators. Użytkownicy dodani do tej grupy otrzymują uprawnienia do wykonywania zadań administracyjnych w domenie zarządzanej.

Najpierw pobierz identyfikator obiektu grupy kontrolera domeny usługi AAD Administracja istrators przy użyciu polecenia cmdlet Get-MgGroup. Jeśli grupa nie istnieje, utwórz ją za pomocą grupy Administracja istratorów kontrolera domeny usługi AAD przy użyciu polecenia cmdlet 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."
}

Po utworzeniu grupy Administracja istrators kontrolera domeny usługi AAD pobierz identyfikator obiektu żądanego użytkownika przy użyciu polecenia cmdlet Get-MgUser, a następnie dodaj użytkownika do grupy przy użyciu polecenia cmdlet New-MgGroupMember.

W poniższym przykładzie identyfikator obiektu użytkownika dla konta z nazwą UPN .admin@contoso.onmicrosoft.com Zastąp to konto użytkownika nazwą UPN użytkownika, który chcesz dodać do grupy kontrolerów domeny usługi AAD Administracja istrators:

# 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

Tworzenie zasobów sieciowych

Najpierw zarejestruj dostawcę zasobów microsoft Entra Domain Services przy użyciu polecenia cmdlet Register-AzResourceProvider :

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

Następnie utwórz grupę zasobów przy użyciu polecenia cmdlet New-AzResourceGroup . W poniższym przykładzie grupa zasobów nosi nazwę myResourceGroup i jest tworzona w regionie westus . Użyj własnej nazwy i żądanego regionu:

$ResourceGroupName = "myResourceGroup"
$AzureLocation = "westus"

# Create the resource group.
New-AzResourceGroup `
  -Name $ResourceGroupName `
  -Location $AzureLocation

Utwórz sieć wirtualną i podsieci dla usług Microsoft Entra Domain Services. Tworzone są dwie podsieci — jedna dla usługi DomainServices i jedna dla obciążeń. Usługi domenowe są wdrażane w dedykowanej podsieci DomainServices . Nie wdrażaj innych aplikacji ani obciążeń w tej podsieci. Użyj oddzielnych obciążeń lub innych podsieci dla pozostałych maszyn wirtualnych.

Utwórz podsieci przy użyciu polecenia cmdlet New-AzVirtualNetworkSubnetConfig , a następnie utwórz sieć wirtualną przy użyciu polecenia cmdlet 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

Tworzenie sieciowej grupy zabezpieczeń

Usługi Domain Services wymagają sieciowej grupy zabezpieczeń, aby zabezpieczyć porty wymagane dla domeny zarządzanej i zablokować cały pozostały ruch przychodzący. Sieciowa grupa zabezpieczeń zawiera listę reguł, które zezwalają na ruch sieciowy w sieci wirtualnej platformy Azure lub zezwalają na nie. W usługach Domain Services sieciowa grupa zabezpieczeń działa jako dodatkowa warstwa ochrony w celu blokowania dostępu do domeny zarządzanej. Aby wyświetlić wymagane porty, zobacz Sieciowe grupy zabezpieczeń i wymagane porty.

Następujące polecenia cmdlet programu PowerShell używają polecenia New-AzNetworkSecurityRuleConfig do tworzenia reguł, a następnie polecenia New-AzNetworkSecurityGroup w celu utworzenia sieciowej grupy zabezpieczeń. Sieciowa grupa zabezpieczeń i reguły są następnie skojarzone z podsiecią sieci wirtualnej przy użyciu polecenia cmdlet 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

Tworzenie domeny zarządzanej

Teraz utwórzmy domenę zarządzaną. Ustaw identyfikator subskrypcji platformy Azure, a następnie podaj nazwę domeny zarządzanej, na przykład dscontoso.com. Identyfikator subskrypcji można uzyskać przy użyciu polecenia cmdlet Get-AzSubscription .

Jeśli wybierzesz region, który obsługuje Strefy dostępności, zasoby usług domenowych są dystrybuowane między strefami w celu zapewnienia nadmiarowości.

Strefy dostępności to unikatowe fizyczne lokalizacje w regionie świadczenia usługi Azure. Każda strefa składa się z co najmniej jednego centrum danych wyposażonego w niezależne zasilanie, chłodzenie i sieć. W celu zapewnienia odporności istnieją co najmniej trzy osobne strefy we wszystkich włączonych regionach.

Nie ma nic do skonfigurowania, aby usługi Domain Services były dystrybuowane między strefami. Platforma Azure automatycznie obsługuje dystrybucję stref zasobów. Aby uzyskać więcej informacji i wyświetlić dostępność regionów, zobacz Co to są Strefy dostępności na platformie 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

Utworzenie zasobu i zwrócenie kontroli do wiersza polecenia programu PowerShell może potrwać kilka minut. Domena zarządzana nadal jest aprowizowana w tle i może upłynąć do godziny, aby ukończyć wdrożenie. W centrum administracyjnym firmy Microsoft Entra na stronie Przegląd domeny zarządzanej jest wyświetlany bieżący stan na tym etapie wdrażania.

Gdy centrum administracyjne firmy Microsoft Entra pokazuje, że domena zarządzana zakończyła aprowizację, należy wykonać następujące zadania:

  • Zaktualizuj ustawienia DNS dla sieci wirtualnej, aby maszyny wirtualne mogły znaleźć domenę zarządzaną na potrzeby przyłączania do domeny lub uwierzytelniania.
    • Aby skonfigurować usługę DNS, wybierz domenę zarządzaną w portalu. W oknie Przegląd zostanie wyświetlony monit o automatyczne skonfigurowanie tych ustawień DNS.
  • Włącz synchronizację haseł w usługach Domain Services , aby użytkownicy końcowi mogli logować się do domeny zarządzanej przy użyciu poświadczeń firmowych.

Ukończ skrypt programu PowerShell

Poniższy kompletny skrypt programu PowerShell łączy wszystkie zadania przedstawione w tym artykule. Skopiuj skrypt i zapisz go w pliku z .ps1 rozszerzeniem. W przypadku globalnej platformy Azure użyj wartości AppId 2565bd9d-da50-47d4-8b85-4c97f669dc36. W przypadku innych chmur platformy Azure użyj wartości AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Uruchom skrypt w lokalnej konsoli programu PowerShell lub w usłudze Azure Cloud Shell.

Uwaga

Aby włączyć usługi Domain Services, musisz być administratorem globalnym dzierżawy firmy Microsoft Entra. Potrzebujesz również co najmniej uprawnień współautora w subskrypcji platformy 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

Utworzenie zasobu i zwrócenie kontroli do wiersza polecenia programu PowerShell może potrwać kilka minut. Domena zarządzana nadal jest aprowizowana w tle i może upłynąć do godziny, aby ukończyć wdrożenie. W centrum administracyjnym firmy Microsoft Entra na stronie Przegląd domeny zarządzanej jest wyświetlany bieżący stan na tym etapie wdrażania.

Gdy centrum administracyjne firmy Microsoft Entra pokazuje, że domena zarządzana zakończyła aprowizację, należy wykonać następujące zadania:

  • Zaktualizuj ustawienia DNS dla sieci wirtualnej, aby maszyny wirtualne mogły znaleźć domenę zarządzaną na potrzeby przyłączania do domeny lub uwierzytelniania.
    • Aby skonfigurować usługę DNS, wybierz domenę zarządzaną w portalu. W oknie Przegląd zostanie wyświetlony monit o automatyczne skonfigurowanie tych ustawień DNS.
  • Włącz synchronizację haseł w usługach Domain Services , aby użytkownicy końcowi mogli logować się do domeny zarządzanej przy użyciu poświadczeń firmowych.

Następne kroki

Aby wyświetlić domenę zarządzaną w akcji, możesz dołączyć do domeny maszynę wirtualną z systemem Windows, skonfigurować bezpieczny protokół LDAP i skonfigurować synchronizację skrótów haseł.