Partilhar via


Criar um domínio gerenciado dos Serviços de Domínio do Microsoft Entra usando um modelo do Azure Resource Manager

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 criar um domínio gerenciado usando um modelo do Azure Resource Manager. Os recursos de suporte são criados usando o Azure PowerShell.

Pré-requisitos

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

Requisitos de nomenclatura DNS

Ao criar um domínio gerenciado pelos Serviços de Domínio, você especifica um nome DNS. Há algumas considerações quando você escolhe esse nome DNS:

  • Nome de domínio interno: Por padrão, o nome de domínio interno do diretório é usado (um sufixo .onmicrosoft.com ). Se desejar habilitar o acesso LDAP seguro ao domínio gerenciado pela Internet, não será possível criar um certificado digital para proteger a conexão com esse domínio padrão. A Microsoft é proprietária do domínio .onmicrosoft.com , portanto, uma Autoridade de Certificação (CA) não emite um certificado.
  • Nomes de domínio personalizados: A abordagem mais comum é especificar um nome de domínio personalizado, normalmente um que você já possui e é roteável. Quando você usa um domínio roteável e personalizado, o tráfego pode fluir corretamente conforme necessário para dar suporte aos seus aplicativos.
  • Sufixos de domínio não roteáveis: geralmente recomendamos que você evite um sufixo de nome de domínio não roteável, como contoso.local. O sufixo .local não é roteável e pode causar problemas com a resolução de DNS.

Gorjeta

Se você criar um nome de domínio personalizado, tome cuidado com os namespaces DNS existentes. É recomendável usar um nome de domínio separado de qualquer espaço de nome DNS existente do Azure ou local.

Por exemplo, se você tiver um espaço de nome DNS existente de contoso.com, crie um domínio gerenciado com o nome de domínio personalizado de aaddscontoso.com. Se você precisar usar LDAP seguro, deverá registrar e possuir esse nome de domínio personalizado para gerar os certificados necessários.

Talvez seja necessário criar alguns registros DNS adicionais para outros serviços em seu ambiente ou encaminhadores DNS condicionais entre espaços de nome DNS existentes em seu ambiente. Por exemplo, se você executar um servidor Web que hospeda um site usando o nome DNS raiz, pode haver conflitos de nomenclatura que exigem entradas DNS adicionais.

Neste exemplo e artigos de instruções, o domínio personalizado de aaddscontoso.com é usado como um pequeno exemplo. Em todos os comandos, especifique seu próprio nome de domínio.

As seguintes restrições de nome DNS também se aplicam:

  • Restrições de prefixo de domínio: não é possível criar um domínio gerenciado com um prefixo maior que 15 caracteres. O prefixo do nome de domínio especificado (como aaddscontoso no nome de domínio aaddscontoso.com ) deve conter 15 ou menos caracteres.
  • Conflitos de nome de rede: o nome de domínio DNS do seu domínio gerenciado ainda não deve existir na rede virtual. Especificamente, verifique os seguintes cenários que levariam a um conflito de nomes.
    • Se você já tiver um domínio do Ative Directory com o mesmo nome de domínio DNS na rede virtual do Azure.
    • Se a rede virtual onde você planeja habilitar o domínio gerenciado tiver uma conexão VPN com sua rede local. Nesse cenário, verifique se você não tem um domínio com o mesmo nome de domínio DNS em sua rede local.
    • Se você tiver um serviço de nuvem do Azure existente com esse nome na rede virtual do Azure.

Criar recursos necessários do Microsoft Entra

Os Serviços de Domínio requerem uma entidade de serviço e um grupo Microsoft Entra. Esses recursos permitem que o domínio gerenciado sincronize dados e defina quais usuários têm permissões administrativas no domínio gerenciado.

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

Crie uma entidade de serviço do Microsoft Entra usando o cmdlet New-MgServicePrincipal para Serviços de Domínio para se comunicar e autenticar-se. Uma ID de aplicativo específica é usada chamada Serviços de Controlador de Domínio com uma ID de 2565bd9d-da50-47d4-8b85-4c97f669dc36 para o Azure Global. Para outras nuvens do Azure, procure o valor AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84.

New-MgServicePrincipal

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

New-MgGroup -DisplayName "AAD DC Administrators" `
  -Description "Delegated group to administer Microsoft Entra Domain Services" `
  -SecurityEnabled:$true -MailEnabled:$false `
  -MailNickName "AADDCAdministrators"

Com o grupo Administradores de DC do AAD criado, adicione um usuário ao grupo usando o cmdlet New-MgGroupMemberByRef. Primeiro, você obtém a ID do objeto do grupo Administradores de DC do AAD usando o cmdlet Get-MgGroup e, em seguida, a ID do objeto do usuário desejado usando o cmdlet Get-MgUser.

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:

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

# Now, 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 $GroupObjectId.Id -DirectoryObjectId $UserObjectId.Id

Por fim, 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:

New-AzResourceGroup `
  -Name "myResourceGroup" `
  -Location "WestUS"

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 obter mais 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?.

Definição de recursos para Serviços de Domínio

Como parte da definição de recursos do Resource Manager, os seguintes parâmetros de configuração são necessários:

Parâmetro Value
nome_do_domínio O nome de domínio DNS para seu domínio gerenciado, levando em consideração os pontos anteriores sobre prefixos de nomenclatura e conflitos.
filteredSync Os Serviços de Domínio permitem sincronizar todos os usuários e grupos disponíveis no Microsoft Entra ID ou uma sincronização com escopo de apenas grupos específicos.

Para obter mais informações sobre a sincronização com escopo, consulte Sincronização de escopo dos Serviços de Domínio Microsoft Entra.
notificationSettings Se houver alertas gerados no domínio gerenciado, notificações por e-mail podem ser enviadas.

Administradores altamente privilegiados no locatário do Microsoft Entra ID e membros do grupo Administradores de DC do AAD podem ser habilitados para essas notificações.

Se desejar, você pode adicionar outros destinatários para notificações quando houver alertas que exijam atenção.
domainConfigurationType Por padrão, um domínio gerenciado é criado como uma floresta de usuário . Esse tipo de floresta sincroniza todos os objetos da ID do Microsoft Entra, incluindo todas as contas de usuário criadas em um ambiente AD DS local. Não é necessário especificar um valor domainConfiguration para criar uma floresta de usuário.

Uma floresta de recursos sincroniza apenas usuários e grupos criados diretamente no Microsoft Entra ID. Defina o valor como ResourceTrusting para criar uma floresta de recursos.

Para obter mais informações sobre florestas de recursos , incluindo por que você pode usar uma e como criar relações de confiança de floresta com domínios AD DS locais, consulte Visão geral das florestas de recursos dos Serviços de Domínio.

A definição de parâmetros condensados a seguir mostra como esses valores são declarados. Uma floresta de usuário chamada aaddscontoso.com é criada com todos os usuários do Microsoft Entra ID sincronizados com o domínio gerenciado:

"parameters": {
    "domainName": {
        "value": "aaddscontoso.com"
    },
    "filteredSync": {
        "value": "Disabled"
    },
    "notificationSettings": {
        "value": {
            "notifyGlobalAdmins": "Enabled",
            "notifyDcAdmins": "Enabled",
            "additionalRecipients": []
        }
    },
    [...]
}

O seguinte tipo de recurso de modelo condensado do Resource Manager é usado para definir e criar o domínio gerenciado. Uma rede virtual e uma sub-rede do Azure já devem existir ou ser criadas como parte do modelo do Gerenciador de Recursos. O domínio gerenciado está conectado a essa sub-rede.

"resources": [
    {
        "apiVersion": "2017-06-01",
        "type": "Microsoft.AAD/DomainServices",
        "name": "[parameters('domainName')]",
        "location": "[parameters('location')]",
        "dependsOn": [
            "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]"
        ],
        "properties": {
            "domainName": "[parameters('domainName')]",
            "subnetId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', parameters('vnetName'), '/subnets/', parameters('subnetName'))]",
            "filteredSync": "[parameters('filteredSync')]",
            "notificationSettings": "[parameters('notificationSettings')]"
        }
    },
    [...]
]

Esses parâmetros e tipo de recurso podem ser usados como parte de um modelo mais amplo do Gerenciador de Recursos para implantar um domínio gerenciado, conforme mostrado na seção a seguir.

Criar um domínio gerenciado usando o modelo de exemplo

O modelo de exemplo completo do Resource Manager a seguir cria um domínio gerenciado e as regras de rede virtual, sub-rede e grupo de segurança de rede de suporte. As regras do grupo de segurança de rede são necessárias para proteger o domínio gerenciado e garantir que o tráfego possa fluir corretamente. Uma floresta de usuário com o nome DNS de aaddscontoso.com é criada, com todos os usuários sincronizados a partir do ID do Microsoft Entra:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "apiVersion": {
            "value": "2017-06-01"
        },
        "domainConfigurationType": {
            "value": "FullySynced"
        },
        "domainName": {
            "value": "aaddscontoso.com"
        },
        "filteredSync": {
            "value": "Disabled"
        },
        "location": {
            "value": "westus"
        },
        "notificationSettings": {
            "value": {
                "notifyGlobalAdmins": "Enabled",
                "notifyDcAdmins": "Enabled",
                "additionalRecipients": []
            }
        },
        "subnetName": {
            "value": "aadds-subnet"
        },
        "vnetName": {
            "value": "aadds-vnet"
        },
        "vnetAddressPrefixes": {
            "value": [
                "10.1.0.0/24"
            ]
        },
        "subnetAddressPrefix": {
            "value": "10.1.0.0/24"
        },
        "nsgName": {
            "value": "aadds-nsg"
        }
    },
    "resources": [
        {
            "apiVersion": "2017-06-01",
            "type": "Microsoft.AAD/DomainServices",
            "name": "[parameters('domainName')]",
            "location": "[parameters('location')]",
            "dependsOn": [
                "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]"
            ],
            "properties": {
                "domainName": "[parameters('domainName')]",
                "subnetId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', parameters('vnetName'), '/subnets/', parameters('subnetName'))]",
                "filteredSync": "[parameters('filteredSync')]",
                "domainConfigurationType": "[parameters('domainConfigurationType')]",
                "notificationSettings": "[parameters('notificationSettings')]"
            }
        },
        {
            "type": "Microsoft.Network/NetworkSecurityGroups",
            "name": "[parameters('nsgName')]",
            "location": "[parameters('location')]",
            "properties": {
                "securityRules": [
                    {
                        "name": "AllowSyncWithAzureAD",
                        "properties": {
                            "access": "Allow",
                            "priority": 101,
                            "direction": "Inbound",
                            "protocol": "Tcp",
                            "sourceAddressPrefix": "AzureActiveDirectoryDomainServices",
                            "sourcePortRange": "*",
                            "destinationAddressPrefix": "*",
                            "destinationPortRange": "443"
                        }
                    },
                    {
                        "name": "AllowPSRemoting",
                        "properties": {
                            "access": "Allow",
                            "priority": 301,
                            "direction": "Inbound",
                            "protocol": "Tcp",
                            "sourceAddressPrefix": "AzureActiveDirectoryDomainServices",
                            "sourcePortRange": "*",
                            "destinationAddressPrefix": "*",
                            "destinationPortRange": "5986"
                        }
                    },
                    {
                        "name": "AllowRD",
                        "properties": {
                            "access": "Allow",
                            "priority": 201,
                            "direction": "Inbound",
                            "protocol": "Tcp",
                            "sourceAddressPrefix": "CorpNetSaw",
                            "sourcePortRange": "*",
                            "destinationAddressPrefix": "*",
                            "destinationPortRange": "3389"
                        }
                    }
                ]
            },
            "apiVersion": "2018-04-01"
        },
        {
            "type": "Microsoft.Network/virtualNetworks",
            "name": "[parameters('vnetName')]",
            "location": "[parameters('location')]",
            "apiVersion": "2018-04-01",
            "dependsOn": [
                "[concat('Microsoft.Network/NetworkSecurityGroups/', parameters('nsgName'))]"
            ],
            "properties": {
                "addressSpace": {
                    "addressPrefixes": "[parameters('vnetAddressPrefixes')]"
                },
                "subnets": [
                    {
                        "name": "[parameters('subnetName')]",
                        "properties": {
                            "addressPrefix": "[parameters('subnetAddressPrefix')]",
                            "networkSecurityGroup": {
                                "id": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/NetworkSecurityGroups/', parameters('nsgName'))]"
                            }
                        }
                    }
                ]
            }
        }
    ],
    "outputs": {}
}

Esse modelo pode ser implantado usando seu método de implantação preferido, como o centro de administração do Microsoft Entra, o Azure PowerShell ou um pipeline de CI/CD. O exemplo a seguir usa o cmdlet New-AzResourceGroupDeployment . Especifique seu próprio nome de grupo de recursos e nome de arquivo do modelo:

New-AzResourceGroupDeployment -ResourceGroupName "myResourceGroup" -TemplateFile <path-to-template>

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 conclui 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.