Bagikan melalui


Mengaktifkan Microsoft Entra Domain Services menggunakan PowerShell

Microsoft Entra Domain Services menyediakan layanan domain terkelola seperti gabungan domain, kebijakan grup, LDAP, autentikasi Kerberos/NTLM yang sepenuhnya kompatibel dengan Windows Server Active Directory. Anda menggunakan layanan domain ini tanpa menyebarkan, mengelola, dan melakukan patch pada pengendali domain sendiri. Layanan Domain terintegrasi dengan penyewa Microsoft Entra Anda yang sudah ada. Integrasi ini memungkinkan pengguna masuk menggunakan informasi masuk perusahaan mereka, dan Anda dapat menggunakan grup dan akun pengguna yang ada untuk mengamankan akses ke sumber daya.

Artikel ini memperlihatkan kepada Anda cara mengaktifkan Layanan Domain menggunakan PowerShell.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Prasyarat

Untuk menyelesaikan langkah-langkah dalam artikel ini, Anda memerlukan sumber daya berikut:

  • Pasang dan konfigurasi Azure PowerShell.

  • Menginstal dan mengonfigurasi MS Graph PowerShell.

  • Anda memerlukan hak istimewa administrator global di penyewa Microsoft Entra Anda untuk mengaktifkan Layanan Domain.

  • Anda memerlukan hak istimewa Kontributor di langganan Azure Anda untuk membuat sumber daya Layanan Domain yang diperlukan.

    Penting

    Saat modul PowerShell Az.ADDomainServices dalam pratinjau, Anda harus menginstalnya secara terpisah menggunakan cmdlet Install-Module.

    Install-Module -Name Az.ADDomainServices
    

Membuat sumber daya Microsoft Entra yang diperlukan

Layanan Domain memerlukan perwakilan layanan untuk mengautentikasi dan berkomunikasi dan grup Microsoft Entra untuk menentukan pengguna mana yang memiliki izin administratif di domain terkelola.

Pertama, buat perwakilan layanan Microsoft Entra dengan menggunakan ID aplikasi tertentu bernama Domain Controller Services. Nilai ID-nya adalah 2565bd9d-da50-47d4-8b85-4c97f669dc36 untuk Azure global dan 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 untuk cloud Azure lainnya. Jangan ubah ID aplikasi ini.

Buat perwakilan layanan Microsoft Entra menggunakan cmdlet New-MgServicePrincipal :

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

Sekarang buat grup Microsoft Entra bernama Administrator AAD DC. Pengguna yang ditambahkan ke grup ini kemudian diberi izin untuk melakukan tugas administrasi pada domain terkelola.

Pertama, dapatkan ID objek grup Administrator AAD DC menggunakan cmdlet Get-MgGroup . Jika grup tidak ada, buat dengan grup Administrator AAD DC menggunakan 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."
}

Dengan grup Administrator AAD DC dibuat, dapatkan ID objek pengguna yang diinginkan menggunakan cmdlet Get-MgUser, lalu tambahkan pengguna ke grup menggunakan cmdlet New-MgGroupMember.

Dalam contoh berikut, ID objek pengguna untuk akun dengan UPN admin@contoso.onmicrosoft.com. Ganti akun pengguna ini dengan UPN pengguna yang ingin Anda tambahkan ke grup Administrator AAD DC:

# 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

Membuat sumber daya jaringan

Pertama, daftarkan penyedia sumber daya Microsoft Entra Domain Services menggunakan cmdlet Register-AzResourceProvider :

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

Selanjutnya, buatlah grup sumber daya dengan menggunakan cmdlet New-AzResourceGroup. Pada contoh berikut, grup sumber daya bernama myResourceGroup dan dibuat di wilayah westus. Gunakan nama Anda sendiri dan wilayah yang diinginkan:

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

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

Buat jaringan virtual dan subnet untuk Microsoft Entra Domain Services. Dua subnet dibuat - satu untuk DomainServices,dan satu untuk Beban Kerja. Domain Services disebarkan ke subnet DomainServices khusus. Jangan menyebarkan aplikasi atau beban kerja lain ke subnet ini. Gunakan Beban Kerja terpisah atau subnet lain untuk sisa VM Anda.

Buat subnet dengan menggunakan cmdlet New-AzVirtualNetworkSubnetConfig, lalu buat jaringan virtual dengan menggunakan 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

Membuat grup keamanan jaringan

Layanan Domain memerlukan grup keamanan jaringan untuk mengamankan port yang diperlukan untuk domain terkelola dan memblokir semua lalu lintas masuk lainnya. Kelompok keamanan jaringan (NSG) berisi daftar aturan yang memungkinkan atau menolak lalu lintas jaringan untuk lalu lintas di jaringan virtual Azure. Di Domain Services, kelompok keamanan jaringan bertindak sebagai lapisan perlindungan tambahan untuk mengunci akses ke domain terkelola. Untuk melihat port yang diperlukan, lihat Kelompok keamanan jaringan dan port yang diperlukan.

Cmdlet PowerShell berikut menggunakan New-AzNetworkSecurityRuleConfig untuk membuat aturan, lalu New-AzNetworkSecurityGroup untuk membuat grup keamanan jaringan. Grup dan aturan keamanan jaringan kemudian dikaitkan dengan subnet jaringan virtual dengan menggunakan 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

Membuat domain terkelola

Sekarang mari kita buat domain terkelola. Atur ID langganan Azure Anda, lalu berikan nama untuk domain terkelola, seperti dscontoso.com. Anda bisa mendapatkan ID langganan dengan menggunakan cmdlet Get-AzSubscription.

Jika Anda memilih wilayah yang mendukung Zona Ketersediaan, sumber daya Layanan Domain didistribusikan di seluruh zona untuk redundansi.

Zona Ketersediaan adalah lokasi nyata yang berada dalam wilayah Azure. Setiap zonanya terdiri dari satu atau beberapa pusat data yang dilengkapi dengan daya, pendinginan, dan jaringan yang independen. Untuk memastikan ketahanan, terdapat minimum tiga zona terpisah di semua wilayah yang diaktifkan.

Tidak ada yang dapat Anda konfigurasi agar Layanan Domain didistribusikan di seluruh zona. Platform Azure secara otomatis menangani distribusi zona sumber daya. Untuk informasi selengkapnya dan untuk melihat ketersediaan wilayah, lihat Apa itu Zona Ketersediaan 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

Dibutuhkan beberapa menit untuk membuat sumber daya dan mengembalikan kontrol ke permintaan PowerShell. Domain terkelola terus disediakan di latar belakang, dan penerapan mungkin memerlukan waktu satu jam hingga selesai. Di pusat admin Microsoft Entra, halaman Gambaran Umum untuk domain terkelola Anda memperlihatkan status saat ini sepanjang tahap penyebaran ini.

Saat pusat admin Microsoft Entra menunjukkan bahwa domain terkelola telah selesai disediakan, tugas berikut perlu diselesaikan:

  • Perbarui pengaturan DNS untuk jaringan virtual agar komputer virtual dapat menemukan domain terkelola untuk gabungan domain atau autentikasi.
    • Untuk mengonfigurasi DNS, pilih domain terkelola Anda di portal. Pada jendela Ringkasan, Anda diminta untuk mengonfigurasi pengaturan DNS ini secara otomatis.
  • Aktifkan sinkronisasi kata sandi ke Layanan Domain sehingga pengguna akhir dapat masuk ke domain terkelola menggunakan kredensial perusahaan mereka.

Melengkapi skrip PowerShell

Skrip PowerShell lengkap berikut ini menggabungkan semua tugas yang diperlihatkan dalam artikel ini. Salin skrip dan simpan ke file dengan .ps1 ekstensi. Untuk Azure Global, harap gunakan nilai AppId 2565bd9d-da50-47d4-8b85-4c97f669dc36. Untuk cloud Azure lainnya, gunakan nilai AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Jalankan skrip di konsol PowerShell lokal atau Azure Cloud Shell.

Catatan

Untuk mengaktifkan Layanan Domain, Anda harus menjadi administrator global untuk penyewa Microsoft Entra. Anda juga memerlukan setidaknya hak istimewa Kontributor di langganan 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

Dibutuhkan beberapa menit untuk membuat sumber daya dan mengembalikan kontrol ke permintaan PowerShell. Domain terkelola terus disediakan di latar belakang, dan penerapan mungkin memerlukan waktu satu jam hingga selesai. Di pusat admin Microsoft Entra, halaman Gambaran Umum untuk domain terkelola Anda memperlihatkan status saat ini sepanjang tahap penyebaran ini.

Saat pusat admin Microsoft Entra menunjukkan bahwa domain terkelola telah selesai disediakan, tugas berikut perlu diselesaikan:

  • Perbarui pengaturan DNS untuk jaringan virtual agar komputer virtual dapat menemukan domain terkelola untuk gabungan domain atau autentikasi.
    • Untuk mengonfigurasi DNS, pilih domain terkelola Anda di portal. Pada jendela Ringkasan, Anda diminta untuk mengonfigurasi pengaturan DNS ini secara otomatis.
  • Aktifkan sinkronisasi kata sandi ke Layanan Domain sehingga pengguna akhir dapat masuk ke domain terkelola menggunakan kredensial perusahaan mereka.

Langkah berikutnya

Untuk melihat domain terkelola pada tindakan, Anda dapat bergabung dengan domain Windows VM, mengonfigurasi LDAP aman, dan mengonfigurasi sinkronisasi hash kata sandi.