Bagikan melalui


Membuat domain terkelola Microsoft Entra Domain Services menggunakan templat Azure Resource Manager

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 tenant Microsoft Entra Anda yang telah 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 menunjukkan cara membuat domain terkelola menggunakan templat Azure Resource Manager. Sumber daya pendukung dibuat menggunakan Azure PowerShell.

Prasyarat

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

Syarat penamaan DNS

Saat membuat domain terkelola Domain Services, Anda menentukan nama DNS. Ada beberapa pertimbangan saat Anda memilih nama DNS ini:

  • Nama domain bawaan: Secara default, nama domain bawaan direktori digunakan (akhiran .onmicrosoft.com). Jika Anda ingin mengaktifkan akses LDAP aman ke domain terkelola melalui internet, Anda tidak dapat membuat sertifikat digital untuk mengamankan koneksi dengan domain default ini. Microsoft memiliki domain .onmicrosoft.com , sehingga Otoritas Sertifikat (CA) tidak mengeluarkan sertifikat.
  • Nama domain kustom: Pendekatan yang paling umum adalah menentukan nama domain kustom, biasanya yang sudah Anda miliki dan dapat dirutekan. Saat Anda menggunakan domain kustom yang dapat dirutekan, lalu lintas dapat mengalir dengan benar sesuai kebutuhan untuk mendukung aplikasi Anda.
  • Akhiran domain yang tidak dapat dirutekan: Kami umumnya menyarankan agar Anda menghindari akhiran nama domain yang tidak dapat dirutekan, seperti contoso.local. Akhiran .local tidak dapat dirutekan dan dapat menyebabkan masalah dengan resolusi DNS.

Petunjuk / Saran

Jika Anda membuat nama domain kustom, berhati-hatilah dengan ruang nama DNS yang sudah ada. Disarankan untuk menggunakan nama domain yang terpisah dari ruang nama Azure atau DNS lokal yang sudah ada.

Misalnya, jika Anda memiliki ruang nama DNS contoso.com yang sudah ada, buat domain terkelola dengan nama domain kustom aaddscontoso.com. Jika Anda perlu menggunakan LDAP aman, Anda harus mendaftar dan memiliki nama domain kustom ini untuk menghasilkan sertifikat yang diperlukan.

Anda mungkin perlu membuat beberapa catatan DNS tambahan untuk layanan lain di lingkungan Anda, atau penerus DNS kondisional antara ruang nama DNS yang ada di lingkungan Anda. Misalnya, jika Anda menjalankan server web yang menghosting situs menggunakan nama DNS root, mungkin ada konflik penamaan yang mengharuskan entri DNS tambahan.

Dalam sampel dan artikel panduan ini, domain kustom aaddscontoso.com digunakan sebagai contoh singkat. Di semua perintah, tentukan nama domain Anda sendiri.

Pembatasan nama DNS berikut juga berlaku:

  • Pembatasan awalan domain: Anda tidak dapat membuat domain terkelola dengan panjang awalan lebih dari 15 karakter. Awalan nama domain yang Anda tentukan (seperti aaddscontoso dalam nama domain aaddscontoso.com) harus berisi 15 karakter atau kurang.
  • Konflik nama jaringan: Nama domain DNS untuk domain terkelola Anda harus belum ada di jaringan virtual. Secara khusus, periksa skenario berikut yang akan menyebabkan konflik nama.
    • Jika Anda telah memiliki domain Direktori Aktif dengan nama domain DNS yang sama di jaringan virtual Azure.
    • Jika jaringan virtual tempat Anda berencana mengaktifkan domain terkelola memiliki koneksi VPN dengan jaringan lokal Anda. Dalam skenario ini, pastikan Anda tidak memiliki domain dengan nama domain DNS yang sama di jaringan lokal Anda.
    • Jika Anda memiliki layanan cloud Azure yang sudah ada dengan nama tersebut di jaringan virtual Azure.

Membuat sumber daya Microsoft Entra yang diperlukan

Layanan Domain memerlukan perwakilan layanan dan grup Microsoft Entra. Sumber daya ini memungkinkan domain terkelola menyinkronkan data, dan menentukan pengguna mana yang memiliki izin administratif di domain terkelola.

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

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

Buat entitas layanan Microsoft Entra menggunakan cmdlet New-MgServicePrincipal untuk Layanan Domain, agar dapat berkomunikasi dan mengautentikasi dirinya sendiri. ID aplikasi tertentu digunakan bernama Domain Controller Services dengan ID 2565bd9d-da50-47d4-8b85-4c97f669dc36 untuk Azure Global. Untuk cloud Azure lainnya, carilah nilai AppId 6ba9a5d4-8456-4118-b521-9c5ca10cdf84.

New-MgServicePrincipal

Sekarang buat grup Microsoft Entra bernama AAD DC Administrators menggunakan New-MgGroup cmdlet. Pengguna yang ditambahkan ke grup ini kemudian diberi izin untuk melakukan tugas administrasi pada domain terkelola.

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

Dengan grup AAD DC Administrators sudah dibuat, tambahkan pengguna ke grup menggunakan Cmdlet New-MgGroupMemberByRef. Pertama-tama Anda mendapatkan ID objek grup Administrator AAD DC menggunakan cmdlet Get-MgGroup , lalu ID objek pengguna yang diinginkan menggunakan cmdlet Get-MgUser .

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:

# 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

Terakhir, buat 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:

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

Jika Anda memilih wilayah yang mendukung Zona Ketersediaan, sumber daya Layanan Domain didistribusikan di seluruh zona untuk lebih banyak redundansi. Zona Ketersediaan adalah lokasi fisik unik 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?.

Definisi sumber daya untuk Layanan Domain

Sebagai bagian dari definisi sumber daya Resource Manager, parameter konfigurasi berikut diperlukan:

Pengaturan Nilai
domainNama Nama domain DNS untuk domain terkelola Anda, dengan mempertimbangkan poin sebelumnya tentang awalan dan konflik penamaan.
filteredsync Layanan Domain memungkinkan Anda menyinkronkan semua pengguna dan grup yang tersedia di ID Microsoft Entra, atau sinkronisasi tercakup hanya dari grup tertentu.

Untuk informasi selengkapnya tentang sinkronisasi dengan ruang lingkup, lihat sinkronisasi dengan ruang lingkup Microsoft Entra Domain Services.
Pengaturan Notifikasi Jika ada pemberitahuan yang dihasilkan di domain terkelola, pemberitahuan email dapat dikirimkan.

Administrator dengan hak istimewa tinggi di tenant Microsoft Entra ID dan anggota grup Administrator AAD DC dapat diaktifkan untuk pemberitahuan ini.

Jika diinginkan, Anda dapat menambahkan penerima lain untuk pemberitahuan saat ada pemberitahuan yang memerlukan perhatian.
tipeKonfigurasiDomain Secara default, sebuah domain terkelola dibuat sebagai "hutan Pengguna". Jenis Forest ini menyinkronkan semua objek dari Microsoft Entra ID, termasuk semua akun pengguna yang dibuat di lingkungan AD DS lokal. Anda tidak perlu menentukan nilai domainConfiguration untuk membuat hutan direktori pengguna.

Hutan Sumber Daya hanya menyinkronkan pengguna dan grup yang dibuat langsung di Microsoft Entra ID. Atur nilai ke ResourceTrusting untuk membuat resource forest.

Untuk informasi selengkapnya tentang sumber daya forest, termasuk mengapa Anda mungkin menggunakannya dan cara membuat trust forest dengan domain AD DS di lokasi, lihat Gambaran Umum Forest Sumber Daya Layanan Domain.

Definisi parameter ringkas berikut menunjukkan bagaimana nilai ini disebutkan. Suatu hutan pengguna bernama aaddscontoso.com dibuat, di mana semua pengguna dari ID Microsoft Entra disinkronkan dengan domain terkelola.

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

Jenis sumber daya templat Resource Manager ringkas berikut ini digunakan untuk menentukan dan membuat domain terkelola. Jaringan virtual dan subnet Azure harus sudah ada, atau dibuat sebagai bagian dari templat Resource Manager. Domain terkelola tersambung ke subnet ini.

"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')]"
        }
    },
    [...]
]

Parameter dan jenis sumber daya ini dapat digunakan sebagai bagian dari templat Resource Manager yang lebih luas untuk menerapkan domain terkelola, seperti yang ditunjukkan di bagian berikutnya.

Membuat domain terkelola menggunakan templat sampel

Templat sampel Resource Manager lengkap berikut ini membuat domain terkelola dan aturan jaringan virtual, subnet, dan grup keamanan jaringan yang mendukung. Aturan grup keamanan jaringan diperlukan untuk mengamankan domain terkelola dan memastikan lalu lintas dapat berjalan dengan benar. Hutan pengguna dengan nama DNS aaddscontoso.com dibuat, dengan semua pengguna disinkronkan dari ID 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": {}
}

Templat ini dapat disebarkan menggunakan metode penyebaran pilihan Anda, seperti pusat admin Microsoft Entra, Azure PowerShell, atau alur CI/CD. Contoh berikut menggunakan cmdlet New-AzResourceGroupDeployment. Tentukan nama grup sumber daya dan nama file templat Anda sendiri:

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

Diperlukan beberapa menit untuk membuat sumber daya dan mengembalikan kontrol ke prompt 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 menyelesaikan provisi, 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 Gambaran Umum , 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 dalam aksi, Anda dapat menyambungkan VM Windows ke domain, mengonfigurasi LDAP yang aman, dan mengonfigurasi sinkronisasi hash kata sandi.