Abilitare Microsoft Entra Domain Services con PowerShell
Microsoft Entra Domain Services offre servizi di dominio gestiti, ad esempio aggiunta a un dominio, criteri di gruppo, LDAP e autenticazione Kerberos/NTLM, completamente compatibili con Windows Server Active Directory. È possibile utilizzare questi servizi di dominio senza distribuire, gestire e applicare patch manualmente ai controller di dominio. Domain Services si integra con il tenant di Microsoft Entra esistente. Questa integrazione consente agli utenti di accedere con le proprie credenziali aziendali ed è possibile usare i gruppi e gli account utente esistenti per proteggere l'accesso alle risorse.
Questo articolo illustra come abilitare Domain Services tramite PowerShell.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Prerequisiti
Per completare l'esercitazione di questo articolo, sono necessarie le risorse seguenti:
Installare e configurare Azure PowerShell.
- Se necessario, seguire le istruzioni nell'articolo per installare il modulo Azure PowerShell e connettersi alla sottoscrizione di Azure.
- Assicurarsi di accedere alla sottoscrizione di Azure usando il cmdlet Connect-AzAccount.
Installare e configurare MS Graph PowerShell.
- Se necessario, seguire le istruzioni per installare il modulo MS Graph PowerShell e connettersi a Microsoft Entra ID.
- Assicurarsi di accedere al tenant di Microsoft Entra usando il cmdlet Connect-MgGraph.
- Se necessario, seguire le istruzioni per installare il modulo MS Graph PowerShell e connettersi a Microsoft Entra ID.
-
Per gestire questa funzionalità è necessario un amministratore globale.
Per questa funzionalità sono necessari privilegi di collaboratore per la sottoscrizione di Azure.
Importante
Durante la fase di anteprima del modulo Az.ADDomainServices di PowerShell, è necessario installare questo separatamente usando il cmdlet
Install-Module
.Install-Module -Name Az.ADDomainServices
Creare le risorse necessarie di Microsoft Entra
Domain Services richiede un'entità servizio per autenticare e comunicare e un gruppo Microsoft Entra per definire quali utenti dispongono di autorizzazioni amministrative nel dominio gestito.
Creare prima di tutto un'entità servizio Microsoft Entra usando un ID applicazione specifico denominato Domain Controller Services. Il valore ID è 2565bd9d-da50-47d4-8b85-4c97f669dc36 per Azure globale e 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 per altri cloud di Azure. Non modificare questo ID applicazione.
Creare un'entità servizio Microsoft Entra usando il cmdlet New-MgServicePrincipal:
New-MgServicePrincipal -AppId "2565bd9d-da50-47d4-8b85-4c97f669dc36"
Creare ora un gruppo Microsoft Entra denominato AAD DC Administrators. Agli utenti aggiunti a questo gruppo vengono concesse le autorizzazioni per eseguire attività di amministrazione nel dominio gestito.
In primo luogo, recuperare l'ID oggetto del gruppo AAD DC Administrators usando il cmdlet Get-MgGroup. Se non esiste, creare il gruppo AAD DC Administrators usando il 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."
}
Dopo aver creato il gruppo AAD DC Administrators, recuperare l'ID oggetto dell'utente desiderato usando il cmdlet Get-MgUser, quindi aggiungere l'utente al gruppo usando il cmdlet New-MgGroupMemberByRef.
Nell'esempio seguente, l'ID oggetto utente per l'account con nome dell'entità utente admin@contoso.onmicrosoft.com
. Sostituire questo account utente con il nome dell'entità utente dell'utente che si vuole aggiungere al gruppo 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
Creare risorse di rete
Per iniziare, registrare il provider di risorse Microsoft Entra Domain Services usando il cmdlet Register-AzResourceProvider:
Register-AzResourceProvider -ProviderNamespace Microsoft.AAD
Creare quindi un gruppo di risorse con il cmdlet New-AzResourceGroup. Nell'esempio seguente viene creato un gruppo di risorse denominato myResourceGroup nell'area westus. Usare il proprio nome e l'area desiderata:
$ResourceGroupName = "myResourceGroup"
$AzureLocation = "westus"
# Create the resource group.
New-AzResourceGroup `
-Name $ResourceGroupName `
-Location $AzureLocation
Creare la rete virtuale e le subnet per Microsoft Entra Domain Services. Vengono create due subnet, una per DomainServices e una per Workloads. Domain Services viene distribuito nella subnet DomainServices dedicata. Non distribuire altre applicazioni o carichi di lavoro in questa subnet. Per le altre macchine virtuali, usare la subnet separata Workloads o altre subnet.
Creare le subnet usando il cmdlet New-AzVirtualNetworkSubnetConfig, quindi creare la rete virtuale usando il 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
Creare un gruppo di sicurezza di rete
Domain Services richiede un gruppo di sicurezza di rete per proteggere le porte necessarie per il dominio gestito e bloccare tutto l'altro traffico in ingresso. Un gruppo di sicurezza di rete (NSG) contiene un elenco di regole per consentire o negare il traffico di rete indirizzato al traffico in una rete virtuale di Azure. In Domain Services il gruppo di sicurezza di rete funge da livello aggiuntivo di protezione per bloccare l'accesso al dominio gestito. Per visualizzare le porte obbligatorie, vedere Gruppi di sicurezza di rete e porte obbligatorie.
I cmdlet di PowerShell seguenti usano New-AzNetworkSecurityRuleConfig per creare le regole e quindi New-AzNetworkSecurityGroup per creare il gruppo di sicurezza di rete. Il gruppo di sicurezza di rete e le regole vengono quindi associati alla subnet della rete virtuale usando il 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
Creare un dominio gestito
Ora creare un dominio gestito. Impostare l'ID sottoscrizione di Azure e quindi specificare un nome per il dominio gestito, ad esempio dscontoso.com. Per ottenere l'ID sottoscrizione, usare il cmdlet Get-AzSubscription.
Se si sceglie un'area che supporta le zone di disponibilità, le risorse di Domain Services vengono distribuite in più zone per garantire la ridondanza.
Le zone di disponibilità sono posizioni fisiche univoche all'interno di un'area di Azure. Ogni zona è costituita da uno o più data center dotati di impianti indipendenti per l'alimentazione, il raffreddamento e la connettività di rete. Per offrire la resilienza, devono essere presenti almeno tre zone separate in tutte le aree abilitate.
Non è necessario eseguire alcuna operazione di configurazione per distribuire Domain Services in più zone. La piattaforma Azure gestisce automaticamente la distribuzione delle risorse nelle zone. Per altre informazioni e per consultare la disponibilità delle aree, vedere Informazioni sulle zone di disponibilità di 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
Sono necessari alcuni minuti per creare la risorsa e restituire il controllo al prompt di PowerShell. Il provisioning del dominio gestito continua a essere eseguito in background e il completamento della distribuzione può richiedere fino a un'ora. Nell'Interfaccia di amministrazione di Microsoft Entra la pagina Panoramica per il dominio gestito mostra lo stato corrente di questa fase di distribuzione.
Quando l'Interfaccia di amministrazione di Microsoft Entra indica che il provisioning del dominio gestito è stato completato, è necessario eseguire le attività seguenti:
- Aggiornare le impostazioni DNS per la rete virtuale, in modo che le macchine virtuali possano trovare il dominio gestito per l'autenticazione o l'aggiunta al dominio.
- Per configurare il DNS, selezionare il dominio gestito nel portale. Nella finestra Panoramica viene richiesto di configurare automaticamente queste impostazioni DNS.
- Abilitare la sincronizzazione password in Domain Services affinché gli utenti finali possano accedere al dominio gestito con le credenziali aziendali.
Script di PowerShell completo
Lo script di PowerShell completo seguente combina tutte le attività illustrate in questo articolo. Copiare lo script e salvarlo in un file con estensione .ps1
. Per Azure Globale usare il valore AppId 2565bd9d-da50-47d4-8b85-4c97f669dc36. Per altri cloud di Azure, usare il valore AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Eseguire lo script in una console di PowerShell locale o in Azure Cloud Shell.
Per gestire questa funzionalità è necessario un amministratore globale.
Per questa funzionalità sono necessari privilegi di collaboratore per la sottoscrizione di 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
Sono necessari alcuni minuti per creare la risorsa e restituire il controllo al prompt di PowerShell. Il provisioning del dominio gestito continua a essere eseguito in background e il completamento della distribuzione può richiedere fino a un'ora. Nell'Interfaccia di amministrazione di Microsoft Entra la pagina Panoramica per il dominio gestito mostra lo stato corrente di questa fase di distribuzione.
Quando l'Interfaccia di amministrazione di Microsoft Entra indica che il provisioning del dominio gestito è stato completato, è necessario eseguire le attività seguenti:
- Aggiornare le impostazioni DNS per la rete virtuale, in modo che le macchine virtuali possano trovare il dominio gestito per l'autenticazione o l'aggiunta al dominio.
- Per configurare il DNS, selezionare il dominio gestito nel portale. Nella finestra Panoramica viene richiesto di configurare automaticamente queste impostazioni DNS.
- Abilitare la sincronizzazione password in Domain Services affinché gli utenti finali possano accedere al dominio gestito con le credenziali aziendali.
Passaggi successivi
Per vedere il dominio gestito in azione, è possibile aggiungere a un dominio una macchina virtuale Windows, configurare LDAP sicuro e configurare la sincronizzazione degli hash delle password.