Povolení Azure Active Directory Domain Services pomocí PowerShellu

Azure Active Directory Domain Services (Azure AD DS) 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í s Windows Server Active Directory. Tyto doménové služby využíváte bez nasazení, správy a opravy řadičů domény sami. Azure AD DS se integruje s vaším stávajícím tenantem Azure AD. Tato integrace umožňuje uživatelům přihlásit se pomocí firemních přihlašovacích údajů a pomocí existujících skupin a uživatelských účtů zabezpečit přístup k prostředkům.

V tomto článku se dozvíte, jak povolit Azure AD DS pomocí PowerShellu.

Poznámka

K interakci s Azure se doporučuje modul Azure Az PowerShell. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShell. Informace o tom, jak migrovat na modul 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í:

  • Instalace a konfigurace Azure Powershellu.

  • Nainstalujte a nakonfigurujte Azure AD PowerShellu.

  • K povolení Azure AD DS potřebujete ve svém tenantovi Azure AD oprávnění globálního správce.

  • K vytvoření požadovaných prostředků Azure AD DS potřebujete oprávnění přispěvatele ve svém předplatném Azure.

    Důležité

    Modul PowerShellu Az.ADDomainServices je ve verzi Preview, ale musíte ho nainstalovat samostatně pomocí rutiny Install-Module .

    Install-Module -Name Az.ADDomainServices
    

Vytvoření požadovaných prostředků Azure AD

Azure AD DS vyžaduje, aby instanční objekt ověřovali a komunikovali a skupina Azure AD definovali, kteří uživatelé mají oprávnění správce ve spravované doméně.

Nejprve vytvořte Azure AD instanční objekt 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.

Pomocí rutiny New-AzureADServicePrincipal vytvořte instanční objekt Azure AD:

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

Teď vytvořte skupinu Azure AD 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-AzureADGroup získejte ID objektu skupiny AAD DC Administrators. Pokud skupina neexistuje, vytvořte ji pomocí skupiny AAD DC Administrators pomocí rutiny New-AzureADGroup :

# First, retrieve the object ID of the 'AAD DC Administrators' group.
$GroupObjectId = Get-AzureADGroup `
  -Filter "DisplayName eq 'AAD DC Administrators'" | `
  Select-Object ObjectId

# If the group doesn't exist, create it
if (!$GroupObjectId) {
  $GroupObjectId = New-AzureADGroup -DisplayName "AAD DC Administrators" `
    -Description "Delegated group to administer Azure AD Domain Services" `
    -SecurityEnabled $true `
    -MailEnabled $false `
    -MailNickName "AADDCAdministrators"
  }
else {
  Write-Output "Admin group already exists."
}

S vytvořenou skupinou AAD DC Administrators získejte ID objektu požadovaného uživatele pomocí rutiny Get-AzureADUser a pak přidejte uživatele do skupiny pomocí rutiny Add-AzureADGroupMember .

V následujícím příkladu id objektu uživatele pro účet s 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-AzureADUser `
  -Filter "UserPrincipalName eq 'admin@contoso.onmicrosoft.com'" | `
  Select-Object ObjectId

# Add the user to the 'AAD DC Administrators' group.
Add-AzureADGroupMember -ObjectId $GroupObjectId.ObjectId -RefObjectId $UserObjectId.ObjectId

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

Nejprve pomocí rutiny Register-AzResourceProvider zaregistrujte poskytovatele prostředků Azure AD Domain Services:

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

Dále pomocí rutiny New-AzResourceGroup vytvořte skupinu prostředků. 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 Azure AD Domain Services. Vytvoří se dvě podsítě – jedna pro DomainServices a jedna pro úlohy. Azure AD DS 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 Azure AD 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 Azure AD 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ě

Azure AD DS 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ě Azure AD DS funguje skupina zabezpečení sítě jako další vrstva ochrany, která uzamkne přístup ke spravované doméně. Pokud chcete zobrazit požadované porty, přečtěte si téma Skupiny zabezpečení sítě a požadované porty.

Následující rutiny PowerShellu používají rutiny New-AzNetworkSecurityRuleConfig k vytvoření pravidel a pak New-AzNetworkSecurityGroup k vytvoření skupiny zabezpečení sítě. Skupina zabezpečení sítě a pravidla se pak přidruží k podsíti virtuální sítě pomocí rutiny Set-AzVirtualNetworkSubnetConfig .

$NSGName = "aaddsNSG"

# 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 aaddscontoso.com. ID předplatného můžete získat pomocí rutiny Get-AzSubscription .

Pokud zvolíte oblast, která podporuje Zóny dostupnosti, budou prostředky Azure AD DS distribuovány napříč zónami kvůli redundanci.

Zóny dostupnosti jsou jedinečná fyzická umístění uvnitř oblasti Azure. Každou zónu tvoří jedno nebo několik datacenter vybavených nezávislým napájením, chlazením a sítí. Kvůli odolnosti ve všech aktivovaných oblastech existují minimálně tři samostatné zóny.

Neexistuje nic, co byste nakonfigurovali pro Azure AD DS, aby se distribuoval 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 = "aaddscontoso.com"

# Enable Azure AD 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. Na Azure Portal se na stránce Přehled pro vaši spravovanou doménu zobrazuje aktuální stav v této fázi nasazení.

Když Azure Portal ukazuje, že se dokončilo zřizování spravované domény, 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 pro Azure AD DS, 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 . Pro Globální 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 Shell.

Poznámka

Pokud chcete povolit Azure AD DS, musíte být globálním správcem tenanta Azure AD. V předplatném Azure potřebujete alespoň oprávnění přispěvatele .

# 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 = "aaddscontoso.com"

# Connect to your Azure AD directory.
Connect-AzureAD

# Login to your Azure subscription.
Connect-AzAccount

# Create the service principal for Azure AD Domain Services.
New-AzureADServicePrincipal -AppId "2565bd9d-da50-47d4-8b85-4c97f669dc36"

# First, retrieve the object ID of the 'AAD DC Administrators' group.
$GroupObjectId = Get-AzureADGroup `
  -Filter "DisplayName eq 'AAD DC Administrators'" | `
  Select-Object ObjectId

# Create the delegated administration group for Azure AD Domain Services if it doesn't already exist.
if (!$GroupObjectId) {
  $GroupObjectId = New-AzureADGroup -DisplayName "AAD DC Administrators" `
    -Description "Delegated group to administer Azure AD 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-AzureADUser `
  -Filter "UserPrincipalName eq '$AaddsAdminUserUpn'" | `
  Select-Object ObjectId

# Add the user to the 'AAD DC Administrators' group.
Add-AzureADGroupMember -ObjectId $GroupObjectId.ObjectId -RefObjectId $UserObjectId.ObjectId

# Register the resource provider for Azure AD 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 AAD 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 Azure AD Domain Services.
$Vnet=New-AzVirtualNetwork `
  -ResourceGroupName $ResourceGroupName `
  -Location $AzureLocation `
  -Name $VnetName `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $AaddsSubnet,$WorkloadSubnet

$NSGName = "aaddsNSG"

# 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 Azure AD 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. Na Azure Portal se na stránce Přehled pro vaši spravovanou doménu zobrazuje aktuální stav v této fázi nasazení.

Když Azure Portal ukazuje, že se dokončilo zřizování spravované domény, 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 pro Azure AD DS, 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 zobrazit spravovanou doménu v akci, můžete připojit virtuální počítač s Windows, nakonfigurovat protokol LDAP a nakonfigurovat synchronizaci hodnot hash hesel.