PowerShell kullanarak Microsoft Entra Domain Services'i etkinleştirme

Microsoft Entra Domain Services, Windows Server Active Directory ile tam uyumlu etki alanına katılma, grup ilkesi, LDAP, Kerberos/NTLM kimlik doğrulaması gibi yönetilen etki alanı hizmetleri sağlar. Etki alanı denetleyicilerini kendiniz dağıtmadan, yönetmeden ve düzeltme eki uygulamadan bu etki alanı hizmetlerini kullanırsınız. Domain Services, mevcut Microsoft Entra kiracınızla tümleştirilir. Bu tümleştirme, kullanıcıların kurumsal kimlik bilgilerini kullanarak oturum açmasına olanak tanır ve kaynaklara erişimin güvenliğini sağlamak için mevcut grupları ve kullanıcı hesaplarını kullanabilirsiniz.

Bu makalede, PowerShell kullanarak Etki Alanı Hizmetleri'nin nasıl etkinleştirileceği gösterilmektedir.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Önkoşullar

Bu makaleyi tamamlamak için aşağıdaki kaynaklara ihtiyacınız vardır:

Gerekli Microsoft Entra kaynaklarını oluşturma

Etki Alanı Hizmetleri, kimlik doğrulaması ve iletişim kurmak için bir hizmet sorumlusu ve yönetilen etki alanında hangi kullanıcıların yönetim izinlerine sahip olduğunu tanımlamak için bir Microsoft Entra grubu gerektirir.

İlk olarak, Etki Alanı Denetleyicisi Hizmetleri adlı belirli bir uygulama kimliğini kullanarak bir Microsoft Entra hizmet sorumlusu oluşturun. Kimlik değeri, genel Azure için 2565bd9d-da50-47d4-8b85-4c97f669dc36 ve diğer Azure bulutları için 6ba9a5d4-8456-4118-b521-9c5ca10cdf84'dür. Bu uygulama kimliğini değiştirmeyin.

New-MgServicePrincipal cmdlet'ini kullanarak bir Microsoft Entra hizmet sorumlusu oluşturun:

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

Şimdi AAD DC Yönetici istrators adlı bir Microsoft Entra grubu oluşturun. Daha sonra bu gruba eklenen kullanıcılara yönetilen etki alanında yönetim görevlerini gerçekleştirme izinleri verilir.

İlk olarak Get-MgGroup cmdlet'ini kullanarak AAD DC Yönetici istrators grup nesnesi kimliğini alın. Grup yoksa, New-MgGroup cmdlet'ini kullanarak AAD DC Yönetici istrators grubuyla oluşturun:

# 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."
}

AAD DC Yönetici istrators grubu oluşturulduktan sonra Get-MgUser cmdlet'ini kullanarak istenen kullanıcının nesne kimliğini alın, ardından Kullanıcıyı New-MgGroupMember cmdlet'ini kullanarak gruba ekleyin.

Aşağıdaki örnekte, UPN'si admin@contoso.onmicrosoft.comolan hesabın kullanıcı nesne kimliği. Bu kullanıcı hesabını AAD DC Yönetici istrators grubuna eklemek istediğiniz kullanıcının UPN'siyle değiştirin:

# 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

Ağ kaynakları oluşturma

İlk olarak, Register-AzResourceProvider cmdlet'ini kullanarak Microsoft Entra Domain Services kaynak sağlayıcısını kaydedin:

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

Ardından New-AzResourceGroup cmdlet'ini kullanarak bir kaynak grubu oluşturun. Aşağıdaki örnekte kaynak grubu myResourceGroup olarak adlandırılır ve westus bölgesinde oluşturulur. Kendi adınızı ve istediğiniz bölgeyi kullanın:

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

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

Microsoft Entra Domain Services için sanal ağı ve alt ağları oluşturun. Biri DomainServices, diğeri de İş Yükleri için olan iki alt ağ oluşturulur. Etki Alanı Hizmetleri ayrılmış DomainServices alt asına dağıtılır. Bu alt ağa başka uygulamalar veya iş yükleri dağıtmayın. Vm'lerinizin geri kalanı için ayrı İş Yüklerini veya diğer alt ağları kullanın.

New-AzVirtualNetworkSubnetConfig cmdlet'ini kullanarak alt ağları oluşturun, ardından New-AzVirtualNetwork cmdlet'ini kullanarak sanal ağı oluşturun.

$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

Ağ güvenlik grubu oluşturma

Etki Alanı Hizmetleri,yönetilen etki alanı için gereken bağlantı noktalarının güvenliğini sağlamak ve diğer tüm gelen trafiği engellemek için bir ağ güvenlik grubuna ihtiyaç duyar. Ağ güvenlik grubu (NSG), Azure sanal ağındaki trafiğe ağ trafiğine izin veren veya trafiği reddeden kuralların listesini içerir. Etki Alanı Hizmetleri'nde ağ güvenlik grubu, yönetilen etki alanına erişimi kilitlemek için ek bir koruma katmanı görevi görür. Gerekli bağlantı noktalarını görüntülemek için bkz . Ağ güvenlik grupları ve gerekli bağlantı noktaları.

Aşağıdaki PowerShell cmdlet'leri, kuralları oluşturmak için New-AzNetworkSecurityRuleConfig, ağ güvenlik grubunu oluşturmak için New-AzNetworkSecurityGroup kullanır. Ardından ağ güvenlik grubu ve kuralları, Set-AzVirtualNetworkSubnetConfig cmdlet'i kullanılarak sanal ağ alt ağıyla ilişkilendirilir.

$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

Yönetilen etki alanı oluşturma

Şimdi yönetilen bir etki alanı oluşturalım. Azure abonelik kimliğinizi ayarlayın ve yönetilen etki alanı için dscontoso.com gibi bir ad sağlayın. Get-AzSubscription cmdlet'ini kullanarak abonelik kimliğinizi alabilirsiniz.

Kullanılabilirlik Alanları destekleyen bir bölge seçerseniz, Domain Services kaynakları yedeklilik için bölgeler arasında dağıtılır.

Kullanılabilirlik Alanları, Azure bölgesi içinde fiziksel olarak benzersiz konumlardır. Her alan bağımsız güç, soğutma ve ağ bağlantısı ile donatılmış bir veya daha fazla veri merkezinden oluşur. Dayanıklılığı güvence altına almak için etkinleştirilmiş tüm bölgelerde en az üç ayrı alan vardır.

Etki Alanı Hizmetleri'nin bölgeler arasında dağıtılması için yapılandırabileceğiniz bir şey yoktur. Azure platformu kaynakların bölge dağıtımını otomatik olarak işler. Daha fazla bilgi edinmek ve bölge kullanılabilirliğini görmek için bkz. Azure'da Kullanılabilirlik Alanları nedir?.

$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

Kaynağın oluşturulması ve denetimin PowerShell istemine döndürülmesi birkaç dakika sürer. Yönetilen etki alanının arka planda sağlanması devam eder ve dağıtımın tamamlanması bir saate kadar sürebilir. Microsoft Entra yönetim merkezinde, yönetilen etki alanınızın Genel Bakış sayfası bu dağıtım aşaması boyunca geçerli durumu gösterir.

Microsoft Entra yönetim merkezi yönetilen etki alanının sağlama işleminin tamamlandığını gösterdiğinde, aşağıdaki görevlerin tamamlanması gerekir:

PowerShell betiğini tamamlama

Aşağıdaki tam PowerShell betiği, bu makalede gösterilen tüm görevleri birleştirir. Betiği kopyalayın ve uzantılı bir .ps1 dosyaya kaydedin. Azure Global için 2565bd9d-da50-47d4-8b85-4c97f669dc36 AppId değerini kullanın. Diğer Azure bulutları için 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 AppId değerini kullanın. Betiği yerel bir PowerShell konsolunda veya Azure Cloud Shell'de çalıştırın.

Not

Etki Alanı Hizmetleri'ni etkinleştirmek için Microsoft Entra kiracısının genel yöneticisi olmanız gerekir. Ayrıca Azure aboneliğinde en az Katkıda Bulunan ayrıcalıklarına da ihtiyacınız vardır.

# 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

Kaynağın oluşturulması ve denetimin PowerShell istemine döndürülmesi birkaç dakika sürer. Yönetilen etki alanının arka planda sağlanması devam eder ve dağıtımın tamamlanması bir saate kadar sürebilir. Microsoft Entra yönetim merkezinde, yönetilen etki alanınızın Genel Bakış sayfası bu dağıtım aşaması boyunca geçerli durumu gösterir.

Microsoft Entra yönetim merkezi yönetilen etki alanının sağlama işleminin tamamlandığını gösterdiğinde, aşağıdaki görevlerin tamamlanması gerekir:

Sonraki adımlar

Yönetilen etki alanını uygulamada görmek için bir Windows VM'sine etki alanına katılabilir, güvenli LDAP'yi yapılandırabilir ve parola karması eşitlemesini yapılandırabilirsiniz.