Povolení služby Microsoft Entra Domain Services pomocí PowerShellu

Služba Microsoft Entra Domain Services poskytuje spravované doménové služby, jako je připojení k doméně, zásady skupiny, LDAP, ověřování Kerberos/NTLM, které je plně kompatibilní se službou Windows Server Active Directory. Tyto doménové služby využíváte bez nasazení, správy a oprav řadičů domény sami. Domain Services se integruje s vaším stávajícím tenantem Microsoft Entra. Tato integrace umožňuje uživatelům přihlásit se pomocí firemních přihlašovacích údajů a k zabezpečení přístupu k prostředkům můžete použít existující skupiny a uživatelské účty.

V tomto článku se dozvíte, jak povolit službu Domain Services pomocí PowerShellu.

Poznámka

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte instalací Azure PowerShellu . Informace o migraci do modulu Az PowerShell najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Požadavky

K dokončení tohoto článku potřebujete následující zdroje informací:

Vytvoření požadovaných prostředků Microsoft Entra

Služba Domain Services vyžaduje k ověření a komunikaci instančního objektu a skupinu Microsoft Entra, která definuje, kteří uživatelé mají oprávnění správce ve spravované doméně.

Nejprve vytvořte instanční objekt Microsoft Entra pomocí konkrétního ID aplikace s názvem Domain Controller Services. Hodnota ID je 2565bd9d-da50-47d4-8b85-4c97f669dc36 pro globální Azure a 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 pro ostatní cloudy Azure. Toto ID aplikace neměňte.

Vytvoření instančního objektu Microsoft Entra pomocí rutiny New-MgServicePrincipal :

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

Teď vytvořte skupinu Microsoft Entra s názvem AAD DC Administrators. Uživatelům přidaným do této skupiny se pak udělí oprávnění k provádění úloh správy ve spravované doméně.

Nejprve pomocí rutiny Get-MgGroup získejte ID objektu skupiny AAD DC Administrators. Pokud skupina neexistuje, vytvořte ji pomocí skupiny AAD DC Administrators pomocí rutiny 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 vytvoření skupiny AAD DC Administrators získejte ID objektu požadovaného uživatele pomocí rutiny Get-MgUser a pak přidejte uživatele do skupiny pomocí rutiny New-MgGroupMemberByRef.

V následujícím příkladu ID objektu uživatele pro účet s hlavní název uživatele (UPN) admin@contoso.onmicrosoft.com. Nahraďte tento uživatelský účet hlavním názvem uživatele, kterého chcete přidat do skupiny AAD DC Administrators :

# 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

Vytvoření síťových prostředků

Nejprve pomocí rutiny Register-AzResourceProvider zaregistrujte poskytovatele prostředků služby Microsoft Entra Domain Services:

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

Dále vytvořte skupinu prostředků pomocí rutiny New-AzResourceGroup . V následujícím příkladu se skupina prostředků jmenuje myResourceGroup a vytvoří se v oblasti westus . Použijte vlastní název a požadovanou oblast:

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

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

Vytvořte virtuální síť a podsítě pro službu Microsoft Entra Domain Services. Vytvoří se dvě podsítě – jedna pro DomainServices a jedna pro úlohy. Domain Services se nasadí do vyhrazené podsítě DomainServices . Do této podsítě nenasazujte jiné aplikace ani úlohy. Pro zbývající virtuální počítače použijte samostatné úlohy nebo jiné podsítě.

Vytvořte podsítě pomocí rutiny New-AzVirtualNetworkSubnetConfig a pak vytvořte virtuální síť pomocí rutiny 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

Vytvoření skupiny zabezpečení sítě

Služba Domain Services potřebuje skupinu zabezpečení sítě k zabezpečení portů potřebných pro spravovanou doménu a blokování všech ostatních příchozích přenosů. Skupina zabezpečení sítě (NSG) obsahuje seznam pravidel, která povolují nebo zakazují síťový provoz do provozu ve virtuální síti Azure. Ve službě Domain Services funguje skupina zabezpečení sítě jako další vrstva ochrany, která uzamkne přístup ke spravované doméně. Požadované porty zobrazíte v části Skupiny zabezpečení sítě a požadované porty.

Následující rutiny PowerShellu k vytvoření pravidel používají Rutiny New-AzNetworkSecurityRuleConfig a pak New-AzNetworkSecurityGroup k vytvoření skupiny zabezpečení sítě. Skupina zabezpečení sítě a pravidla se pak přidružují k podsíti virtuální sítě pomocí rutiny 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

Vytvoření spravované domény

Teď vytvoříme spravovanou doménu. Nastavte ID předplatného Azure a zadejte název spravované domény, například dscontoso.com. ID předplatného můžete získat pomocí rutiny Get-AzSubscription .

Pokud zvolíte oblast, která podporuje Zóny dostupnosti, prostředky služby Domain Services se distribuují napříč zónami kvůli redundanci.

Zóny dostupnosti jsou jedinečná fyzická umístění v rámci oblasti Azure. Každá zóna se skládá z jednoho nebo více datacenter vybavených nezávislým napájením, chlazením a sítěmi. Kvůli zajištění odolnosti je ve všech povolených oblastech minimálně tři samostatné zóny.

Není nic, co byste nakonfigurovali, aby služba Domain Services byla distribuována napříč zónami. Platforma Azure automaticky zpracovává distribuci zón prostředků. Další informace a zobrazení dostupnosti oblastí najdete v tématu Co jsou Zóny dostupnosti v 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

Vytvoření prostředku a vrácení ovládacího prvku do příkazového řádku PowerShellu trvá několik minut. Spravovaná doména se bude dál zřizovat na pozadí a dokončení nasazení může trvat až hodinu. V Centru pro správu Microsoft Entra se na stránce Přehled pro vaši spravovanou doménu zobrazuje aktuální stav v celé této fázi nasazení.

Když Centrum pro správu Microsoft Entra ukazuje, že spravovaná doména dokončila zřizování, je potřeba dokončit následující úlohy:

  • Aktualizujte nastavení DNS pro virtuální síť, aby virtuální počítače mohly najít spravovanou doménu pro připojení k doméně nebo ověřování.
    • Pokud chcete nakonfigurovat DNS, vyberte na portálu spravovanou doménu. V okně Přehled se zobrazí výzva k automatické konfiguraci těchto nastavení DNS.
  • Povolte synchronizaci hesel se službou Domain Services , aby se koncoví uživatelé mohli přihlásit ke spravované doméně pomocí firemních přihlašovacích údajů.

Dokončení skriptu PowerShellu

Následující úplný skript PowerShellu kombinuje všechny úlohy uvedené v tomto článku. Zkopírujte skript a uložte ho do souboru s příponou .ps1 . V případě globálního Azure použijte hodnotu AppId 2565bd9d-da50-47d4-8b85-4c97f669dc36. V případě jiných cloudů Azure použijte hodnotu AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Spusťte skript v místní konzole PowerShellu nebo v Azure Cloud Shellu.

Ke správě této funkce je potřeba globální správce.

Pro tuto funkci se vyžadují oprávnění přispěvatele pro předplatné 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

Vytvoření prostředku a vrácení ovládacího prvku do příkazového řádku PowerShellu trvá několik minut. Spravovaná doména se bude dál zřizovat na pozadí a dokončení nasazení může trvat až hodinu. V Centru pro správu Microsoft Entra se na stránce Přehled pro vaši spravovanou doménu zobrazuje aktuální stav v celé této fázi nasazení.

Když Centrum pro správu Microsoft Entra ukazuje, že spravovaná doména dokončila zřizování, je potřeba dokončit následující úlohy:

  • Aktualizujte nastavení DNS pro virtuální síť, aby virtuální počítače mohly najít spravovanou doménu pro připojení k doméně nebo ověřování.
    • Pokud chcete nakonfigurovat DNS, vyberte na portálu spravovanou doménu. V okně Přehled se zobrazí výzva k automatické konfiguraci těchto nastavení DNS.
  • Povolte synchronizaci hesel se službou Domain Services , aby se koncoví uživatelé mohli přihlásit ke spravované doméně pomocí firemních přihlašovacích údajů.

Další kroky

Pokud chcete vidět spravovanou doménu v akci, můžete se připojit k virtuálnímu počítači s Windows, nakonfigurovat zabezpečený protokol LDAP a nakonfigurovat synchronizaci hodnot hash hesel.