Partilhar via


Habilitar os Serviços de Domínio do Microsoft Entra usando o PowerShell

Os Serviços de Domínio Microsoft Entra fornecem serviços de domínio gerenciados, como ingresso no domínio, política de grupo, LDAP, autenticação Kerberos/NTLM que é totalmente compatível com o Ative Directory do Windows Server. Você consome esses serviços de domínio sem implantar, gerenciar e aplicar patches em controladores de domínio. Os Serviços de Domínio integram-se com o seu inquilino existente do Microsoft Entra. Essa integração permite que os usuários entrem usando suas credenciais corporativas e você pode usar grupos e contas de usuário existentes para proteger o acesso aos recursos.

Este artigo mostra como habilitar os Serviços de Domínio usando o PowerShell.

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

Para concluir este artigo, você precisa dos seguintes recursos:

  • Instalar e configurar o Azure PowerShell.

  • Instale e configure o MS Graph PowerShell.

  • Você precisa de privilégios de administrador global em seu locatário do Microsoft Entra para habilitar os Serviços de Domínio.

  • Você precisa de privilégios de Colaborador em sua assinatura do Azure para criar os recursos de Serviços de Domínio necessários.

    Importante

    Enquanto o módulo Az.ADDomainServices PowerShell estiver em visualização, você deve instalá-lo separadamente usando o Install-Module cmdlet.

    Install-Module -Name Az.ADDomainServices
    

Criar recursos necessários do Microsoft Entra

Os Serviços de Domínio requerem uma entidade de serviço para autenticar e comunicar e um grupo do Microsoft Entra para definir quais os utilizadores que têm permissões administrativas no domínio gerido.

Primeiro, crie uma entidade de serviço do Microsoft Entra usando uma ID de aplicativo específica chamada Serviços do Controlador de Domínio. O valor de ID é 2565bd9d-da50-47d4-8b85-4c97f669dc36 para o Azure global e 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 para outras nuvens do Azure. Não altere este ID de aplicação.

Crie uma entidade de serviço do Microsoft Entra usando o cmdlet New-MgServicePrincipal :

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

Agora crie um grupo do Microsoft Entra chamado AAD DC Administrators. Os usuários adicionados a esse grupo recebem permissões para executar tarefas de administração no domínio gerenciado.

Primeiro, obtenha a ID do objeto de grupo Administradores de DC do AAD usando o cmdlet Get-MgGroup. Se o grupo não existir, crie-o com o grupo Administradores de DC do AAD usando o 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."
}

Com o grupo Administradores de DC do AAD criado, obtenha a ID de objeto do usuário desejado usando o cmdlet Get-MgUser e, em seguida, adicione o usuário ao grupo usando o cmdlet New-MgGroupMember.

No exemplo a seguir, o ID do objeto de usuário para a conta com um UPN de admin@contoso.onmicrosoft.com. Substitua essa conta de usuário pelo UPN do usuário que você deseja adicionar ao grupo Administradores de DC do 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

Criar recursos de rede

Primeiro, registre o provedor de recursos dos Serviços de Domínio do Microsoft Entra usando o cmdlet Register-AzResourceProvider :

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

Em seguida, crie um grupo de recursos usando o cmdlet New-AzResourceGroup . No exemplo a seguir, o grupo de recursos é chamado myResourceGroup e é criado na região westus . Use seu próprio nome e região desejada:

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

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

Crie a rede virtual e as sub-redes para os Serviços de Domínio do Microsoft Entra. Duas sub-redes são criadas - uma para DomainServices e outra para Workloads. Os Serviços de Domínio são implantados na sub-rede DomainServices dedicada. Não implante outros aplicativos ou cargas de trabalho nessa sub-rede. Use as Cargas de trabalho separadas ou outras sub-redes para o restante de suas VMs.

Crie as sub-redes usando o cmdlet New-AzVirtualNetworkSubnetConfig e, em seguida, crie a rede virtual usando o 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

Criar um grupo de segurança de rede

Os Serviços de Domínio precisam de um grupo de segurança de rede para proteger as portas necessárias para o domínio gerenciado e bloquear todo o restante tráfego de entrada. Um NSG (grupo de segurança de rede) contém uma lista de regras que permitem ou negam tráfego de rede ao tráfego em uma rede virtual do Azure. Nos Serviços de Domínio, o grupo de segurança de rede atua como uma camada extra de proteção para bloquear o acesso ao domínio gerenciado. Para visualizar as portas necessárias, consulte Grupos de segurança de rede e portas necessárias.

Os cmdlets do PowerShell a seguir usam New-AzNetworkSecurityRuleConfig para criar as regras e, em seguida , New-AzNetworkSecurityGroup para criar o grupo de segurança de rede. O grupo de segurança de rede e as regras são então associados à sub-rede de rede virtual usando o 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

Criar um domínio gerido

Agora vamos criar um domínio gerenciado. Defina sua ID de assinatura do Azure e forneça um nome para o domínio gerenciado, como dscontoso.com. Você pode obter sua ID de assinatura usando o cmdlet Get-AzSubscription .

Se você escolher uma região que ofereça suporte a Zonas de Disponibilidade, os recursos dos Serviços de Domínio serão distribuídos entre zonas para redundância.

As Zonas de Disponibilidade são localizações físicas exclusivas numa região do Azure. Cada zona é composta por um ou mais datacenters equipados com energia, refrigeração e rede independentes. Para garantir a resiliência, há um mínimo de três zonas separadas em todas as regiões ativadas.

Não há nada para você configurar para que os Serviços de Domínio sejam distribuídos entre zonas. A plataforma Azure lida automaticamente com a distribuição de recursos por zona. Para obter mais informações e ver a disponibilidade da região, consulte O que são zonas de disponibilidade no 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

Leva alguns minutos para criar o recurso e retornar o controle para o prompt do PowerShell. O domínio gerenciado continua a ser provisionado em segundo plano e pode levar até uma hora para concluir a implantação. No centro de administração do Microsoft Entra, a página Visão geral do seu domínio gerenciado mostra o status atual durante este estágio de implantação.

Quando o centro de administração do Microsoft Entra mostra que o domínio gerenciado concluiu o provisionamento, as seguintes tarefas precisam ser concluídas:

  • Atualize as configurações de DNS para a rede virtual para que as máquinas virtuais possam encontrar o domínio gerenciado para ingresso ou autenticação no domínio.
    • Para configurar o DNS, selecione seu domínio gerenciado no portal. Na janela Visão geral, você será solicitado a definir automaticamente essas configurações de DNS.
  • Habilite a sincronização de senha com os Serviços de Domínio para que os usuários finais possam entrar no domínio gerenciado usando suas credenciais corporativas.

Script completo do PowerShell

O script completo do PowerShell a seguir combina todas as tarefas mostradas neste artigo. Copie o script e salve-o em um arquivo com uma .ps1 extensão. Para o Azure Global, use o valor AppId 2565bd9d-da50-47d4-8b85-4c97f669dc36. Para outras nuvens do Azure, use o valor AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Execute o script em um console do PowerShell local ou no Azure Cloud Shell.

Nota

Para habilitar os Serviços de Domínio, você deve ser um administrador global para o locatário do Microsoft Entra. Você também precisa de pelo menos privilégios de Colaborador na assinatura do 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

Leva alguns minutos para criar o recurso e retornar o controle para o prompt do PowerShell. O domínio gerenciado continua a ser provisionado em segundo plano e pode levar até uma hora para concluir a implantação. No centro de administração do Microsoft Entra, a página Visão geral do seu domínio gerenciado mostra o status atual durante este estágio de implantação.

Quando o centro de administração do Microsoft Entra mostra que o domínio gerenciado concluiu o provisionamento, as seguintes tarefas precisam ser concluídas:

  • Atualize as configurações de DNS para a rede virtual para que as máquinas virtuais possam encontrar o domínio gerenciado para ingresso ou autenticação no domínio.
    • Para configurar o DNS, selecione seu domínio gerenciado no portal. Na janela Visão geral, você será solicitado a definir automaticamente essas configurações de DNS.
  • Habilite a sincronização de senha com os Serviços de Domínio para que os usuários finais possam entrar no domínio gerenciado usando suas credenciais corporativas.

Próximos passos

Para ver o domínio gerido em ação, pode associar uma VM do Windows ao domínio, configurar um LDAP seguro e configurar a sincronização do hash de palavras-passe.