PowerShell を使用した Azure Active Directory Domain Services の有効化Enable Azure Active Directory Domain Services using PowerShell

Azure Active Directory Domain Services (Azure AD DS) では、Windows Server Active Directory と完全に互換性のあるマネージド ドメイン サービス (ドメイン参加、グループ ポリシー、LDAP、Kerberos 認証、NTLM 認証など) が提供されます。Azure Active Directory Domain Services (Azure AD DS) provides managed domain services such as domain join, group policy, LDAP, Kerberos/NTLM authentication that is fully compatible with Windows Server Active Directory. ドメイン コントローラーのデプロイ、管理、パッチの適用を自分で行わなくても、これらのドメイン サービスを使用することができます。You consume these domain services without deploying, managing, and patching domain controllers yourself. Azure AD DS は、既存の Azure AD テナントと統合されます。Azure AD DS integrates with your existing Azure AD tenant. この統合により、ユーザーは、各自の会社の資格情報を使用してサインインすることができます。また管理者は、既存のグループとユーザー アカウントを使用してリソースへのアクセスをセキュリティで保護することができます。This integration lets users sign in using their corporate credentials, and you can use existing groups and user accounts to secure access to resources.

この記事では、PowerShell を使用して Azure AD DS を有効にする方法について説明します。This article shows you how to enable Azure AD DS using PowerShell.

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

前提条件Prerequisites

この記事を完了するには、以下のリソースが必要です。To complete this article, you need the following resources:

必要な Azure AD リソースを作成するCreate required Azure AD resources

Azure AD DS には、サービス プリンシパルと Azure AD グループが必要です。Azure AD DS requires a service principal and an Azure AD group. これらのリソースにより、Azure AD DS マネージド ドメインはデータを同期し、マネージド ドメインで管理アクセス許可を持つユーザーを定義できます。These resources let the Azure AD DS managed domain synchronize data, and define which users have administrative permissions in the managed domain.

まず、Azure AD DS が通信と自身の認証を行うための Azure AD サービス プリンシパルを作成します。First, create an Azure AD service principal for Azure AD DS to communicate and authenticate itself. ID 6ba9a5d4-8456-4118-b521-9c5ca10cdf84 を持つ Domain Controller Services という名前の特定のアプリケーション ID が使用されます。A specific application ID is used named Domain Controller Services with an ID of 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. このアプリケーション ID は変更しないでください。Don't change this application ID.

New-AzureADServicePrincipal コマンドレットを使用して Azure AD サービス プリンシパルを作成します。Create an Azure AD service principal using the New-AzureADServicePrincipal cmdlet:

New-AzureADServicePrincipal -AppId "6ba9a5d4-8456-4118-b521-9c5ca10cdf84"

次に、AAD DC Administrators という名前の Azure AD グループを作成します。Now create an Azure AD group named AAD DC Administrators. このグループに追加されたユーザーには、マネージド ドメインで管理タスクを実行するためのアクセス許可が付与されます。Users added to this group are then granted permissions to perform administration tasks on the managed domain.

まず、Get-AzureADGroup コマンドレットを使用して AAD DC Administrators グループ オブジェクト ID を取得します。First, get the AAD DC Administrators group object ID using the Get-AzureADGroup cmdlet. AAD DC Administrators グループが存在しない場合は、New-AzureADGroup コマンドレットを使用して作成します。If the group doesn't exist, create it with the AAD DC Administrators group using the New-AzureADGroup cmdlet:

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

# If the group doesn't exist, create it
if (!$GroupObjectId) {
  $GroupObjectId = New-AzureADGroup -DisplayName "AAD DC Administrators" `
    -Description "Delegated group to administer Azure AD Domain Services" `
    -SecurityEnabled $true `
    -MailEnabled $false `
    -MailNickName "AADDCAdministrators"
  }
else {
  Write-Output "Admin group already exists."
}

AAD DC Administrators グループが作成されたら、Get-AzureADUser コマンドレットを使用して、目的のユーザーのオブジェクト ID を取得し、Add-AzureADGroupMember コマンドレットを使用して、そのユーザーをグループに追加します。With the AAD DC Administrators group created, get the desired user's object ID using the Get-AzureADUser cmdlet, then add the user to the group using the Add-AzureADGroupMember cmdlet..

次の例では、UPN が admin@contoso.onmicrosoft.com のアカウントのユーザー オブジェクト ID です。In the following example, the user object ID for the account with a UPN of admin@contoso.onmicrosoft.com. このユーザー アカウントを、AAD DC Administrators グループに追加するユーザーの UPN に置き換えます。Replace this user account with the UPN of the user you wish to add to the AAD DC Administrators group:

# Retrieve the object ID of the user you'd like to add to the group.
$UserObjectId = Get-AzureADUser `
  -Filter "UserPrincipalName eq 'admin@contoso.onmicrosoft.com'" | `
  Select-Object ObjectId

# Add the user to the 'AAD DC Administrators' group.
Add-AzureADGroupMember -ObjectId $GroupObjectId.ObjectId -RefObjectId $UserObjectId.ObjectId

ネットワーク リソースを作成するCreate network resources

まず、Register-AzResourceProvider コマンドレットを使用して、Azure AD Domain Services リソース プロバイダーを登録します。First, register the Azure AD Domain Services resource provider using the Register-AzResourceProvider cmdlet:

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

次に、New-AzResourceGroup コマンドレットを使用してリソース グループを作成します。Next, create a resource group using the New-AzResourceGroup cmdlet. 次の例では、リソース グループは myResourceGroup という名前が付けられ、westus リージョンに作成されます。In the following example, the resource group is named myResourceGroup and is created in the westus region. 独自の名前と希望するリージョンを使用します。Use your own name and desired region:

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

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

Azure AD Domain Services の仮想ネットワークとサブネットを作成します。Create the virtual network and subnets for Azure AD Domain Services. DomainServices 用と Workloads 用の 2 つのサブネットが作成されます。Two subnets are created - one for DomainServices, and one for Workloads. Azure AD DS は、専用の DomainServices サブネットにデプロイされます。Azure AD DS is deployed into the dedicated DomainServices subnet. このサブネットには、他のアプリケーションやワークロードをデプロイしないでください。Don't deploy other applications or workloads into this subnet. 残りの VM には、別個の Workloads または他のサブネットを使用します。Use the separate Workloads or other subnets for the rest of your VMs.

New-AzVirtualNetworkSubnetConfig コマンドレットを使用してサブネットを作成し、次に New-AzVirtualNetwork コマンドレットを使用して仮想ネットワークを作成します。Create the subnets using the New-AzVirtualNetworkSubnetConfig cmdlet, then create the virtual network using the New-AzVirtualNetwork cmdlet.

$VnetName = "myVnet"

# Create the dedicated subnet for Azure AD 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 Azure AD Domain Services.
$Vnet= New-AzVirtualNetwork `
  -ResourceGroupName $ResourceGroupName `
  -Location westus `
  -Name $VnetName `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $AaddsSubnet,$WorkloadSubnet

ネットワーク セキュリティ グループの作成Create a network security group

Azure AD DS には、マネージド ドメインに必要なポートをセキュリティで保護し、その他すべての受信トラフィックをブロックするネットワーク セキュリティ グループが必要です。Azure AD DS needs a network security group to secure the ports needed for the managed domain and block all other incoming traffic. ネットワーク セキュリティ グループ (NSG) には、Azure 仮想ネットワーク内のトラフィックへのネットワーク トラフィックを許可または拒否するルールの一覧が含まれています。A network security group (NSG) contains a list of rules that allow or deny network traffic to traffic in an Azure virtual network. Azure AD DS では、ネットワーク セキュリティ グループは、マネージド ドメインへのアクセスをロックダウンするための追加の保護レイヤーとして機能します。In Azure AD DS, the network security group acts as an extra layer of protection to lock down access to the managed domain. 必要なポートを確認するには、「ネットワーク セキュリティ グループと必要なポート」を参照してください。To view the ports required, see Network security groups and required ports.

次の PowerShell コマンドレットでは、New-AzNetworkSecurityRuleConfig を使用してルールを作成し、New-AzNetworkSecurityGroup を使用してネットワーク セキュリティ グループを作成します。The following PowerShell cmdlets use New-AzNetworkSecurityRuleConfig to create the rules, then New-AzNetworkSecurityGroup to create the network security group. ネットワーク セキュリティ グループとルールは、Set-AzVirtualNetworkSubnetConfig コマンドレットを使用して仮想ネットワーク サブネットに関連付けられます。The network security group and rules are then associated with the virtual network subnet using the Set-AzVirtualNetworkSubnetConfig cmdlet.

$NSGName = "aaddsNSG"

# Create a rule to allow inbound TCP port 443 traffic for synchronization with Azure AD
$nsg101 = New-AzNetworkSecurityRuleConfig `
    -Name AllowSyncWithAzureAD `
    -Access Allow `
    -Protocol Tcp `
    -Direction Inbound `
    -Priority 101 `
    -SourceAddressPrefix AzureActiveDirectoryDomainServices `
    -SourcePortRange * `
    -DestinationAddressPrefix * `
    -DestinationPortRange 443

# 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 $nsg101,$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

マネージド ドメインの作成Create a managed domain

次に、マネージド ドメインを作成しましょう。Now let's create a managed domain. お使いの Azure サブスクリプション ID を設定し、マネージド ドメインの名前 (aaddscontoso.com など) を指定します。Set your Azure subscription ID, and then provide a name for the managed domain, such as aaddscontoso.com. お使いのサブスクリプション ID は、Get-AzSubscription コマンドレットを使用して取得できます。You can get your subscription ID using the Get-AzSubscription cmdlet.

Availability Zones がサポートされているリージョンを選択すると、Azure AD DS リソースが、冗長性強化のために複数のゾーンに分散されます。If you choose a region that supports Availability Zones, the Azure AD DS resources are distributed across zones for additional redundancy.

Availability Zones は、Azure リージョン内の一意の物理的な場所です。Availability Zones are unique physical locations within an Azure region. それぞれのゾーンは、独立した電源、冷却手段、ネットワークを備えた 1 つまたは複数のデータセンターで構成されています。Each zone is made up of one or more datacenters equipped with independent power, cooling, and networking. 回復性を確保するため、有効になっているリージョンにはいずれも最低 3 つのゾーンが別個に存在しています。To ensure resiliency, there's a minimum of three separate zones in all enabled regions.

Azure AD DS を複数のゾーンに分散するために、ご自身で構成するものは何もありません。There's nothing for you to configure for Azure AD DS to be distributed across zones. Azure プラットフォームでは、ゾーンへのリソース分散が自動的に処理されます。The Azure platform automatically handles the zone distribution of resources. 詳細情報および利用可能なリージョンについては、「Azure の Availability Zones の概要」を参照してください。For more information and to see region availability, see What are Availability Zones in Azure?.

$AzureSubscriptionId = "YOUR_AZURE_SUBSCRIPTION_ID"
$ManagedDomainName = "aaddscontoso.com"

# Enable Azure AD Domain Services for the directory.
New-AzResource -ResourceId "/subscriptions/$AzureSubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.AAD/DomainServices/$ManagedDomainName" `
  -ApiVersion "2017-06-01" `
  -Location $AzureLocation `
  -Properties @{"DomainName"=$ManagedDomainName; `
    "SubnetId"="/subscriptions/$AzureSubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Network/virtualNetworks/$VnetName/subnets/DomainServices"} `
  -Force -Verbose

リソースが作成され、PowerShell プロンプトに制御が戻るまで数分かかります。It takes a few minutes to create the resource and return control to the PowerShell prompt. マネージド ドメインは引き続きバックグラウンドでプロビジョニングされ、デプロイが完了するまでには最大 1 時間かかる場合があります。The managed domain continues to be provisioned in the background, and can take up to an hour to complete the deployment. Azure portal では、お使いのマネージド ドメインの [概要] ページに、このデプロイ ステージ全体の現在の状態が表示されます。In the Azure portal, the Overview page for your managed domain shows the current status throughout this deployment stage.

マネージド ドメインがプロビジョニングを完了したことが Azure portal に示されたら、次のタスクを完了する必要があります。When the Azure portal shows that the managed domain has finished provisioning, the following tasks need to be completed:

  • 仮想マシンがマネージド ドメインを検出してドメイン参加または認証を行うことができるように、仮想ネットワークの DNS 設定を更新します。Update DNS settings for the virtual network so virtual machines can find the managed domain for domain join or authentication.
    • DNS を構成するには、ポータルでマネージド ドメインを選択します。To configure DNS, select your managed domain in the portal. [概要] ウィンドウで、これらの DNS 設定を自動的に構成するように求められます。On the Overview window, you are prompted to automatically configure these DNS settings.
  • Azure AD DS とのパスワード同期を有効にして、エンド ユーザーが会社の資格情報を使用してマネージド ドメインにサインインできるようにします。Enable password synchronization to Azure AD DS so end users can sign in to the managed domain using their corporate credentials.

完全な PowerShell スクリプトComplete PowerShell script

次の完全な PowerShell スクリプトは、この記事に示されているすべてのタスクを結合します。The following complete PowerShell script combines all of the tasks shown in this article. スクリプトをコピーし、.ps1 拡張子付きのファイルに保存します。Copy the script and save it to a file with a .ps1 extension. ローカルの PowerShell コンソール、または Azure Cloud Shell でスクリプトを実行します。Run the script in a local PowerShell console or the Azure Cloud Shell.

注意

Azure AD DS を有効にするには、Azure AD テナントのグローバル管理者である必要があります。To enable Azure AD DS, you must be a global administrator for the Azure AD tenant. また、Azure サブスクリプションで、少なくとも 共同作成者 権限が必要です。You also need at least Contributor privileges in the Azure subscription.

# 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 = "aaddscontoso.com"

# Connect to your Azure AD directory.
Connect-AzureAD

# Login to your Azure subscription.
Connect-AzAccount

# Create the service principal for Azure AD Domain Services.
New-AzureADServicePrincipal -AppId "6ba9a5d4-8456-4118-b521-9c5ca10cdf84"

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

# Create the delegated administration group for Azure AD Domain Services if it doesn't already exist.
if (!$GroupObjectId) {
  $GroupObjectId = New-AzureADGroup -DisplayName "AAD DC Administrators" `
    -Description "Delegated group to administer Azure AD 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-AzureADUser `
  -Filter "UserPrincipalName eq '$AaddsAdminUserUpn'" | `
  Select-Object ObjectId

# Add the user to the 'AAD DC Administrators' group.
Add-AzureADGroupMember -ObjectId $GroupObjectId.ObjectId -RefObjectId $UserObjectId.ObjectId

# Register the resource provider for Azure AD 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 AAD 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 Azure AD Domain Services.
$Vnet=New-AzVirtualNetwork `
  -ResourceGroupName $ResourceGroupName `
  -Location $AzureLocation `
  -Name $VnetName `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $AaddsSubnet,$WorkloadSubnet
  
$NSGName = "aaddsNSG"

# Create a rule to allow inbound TCP port 443 traffic for synchronization with Azure AD
$nsg101 = New-AzNetworkSecurityRuleConfig `
    -Name AllowSyncWithAzureAD `
    -Access Allow `
    -Protocol Tcp `
    -Direction Inbound `
    -Priority 101 `
    -SourceAddressPrefix AzureActiveDirectoryDomainServices `
    -SourcePortRange * `
    -DestinationAddressPrefix * `
    -DestinationPortRange 443

# 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 $nsg101,$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 Azure AD Domain Services for the directory.
New-AzResource -ResourceId "/subscriptions/$AzureSubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.AAD/DomainServices/$ManagedDomainName" `
  -ApiVersion "2017-06-01" `
  -Location $AzureLocation `
  -Properties @{"DomainName"=$ManagedDomainName; `
    "SubnetId"="/subscriptions/$AzureSubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Network/virtualNetworks/$VnetName/subnets/DomainServices"} `
  -Force -Verbose

リソースが作成され、PowerShell プロンプトに制御が戻るまで数分かかります。It takes a few minutes to create the resource and return control to the PowerShell prompt. マネージド ドメインは引き続きバックグラウンドでプロビジョニングされ、デプロイが完了するまでには最大 1 時間かかる場合があります。The managed domain continues to be provisioned in the background, and can take up to an hour to complete the deployment. Azure portal では、お使いのマネージド ドメインの [概要] ページに、このデプロイ ステージ全体の現在の状態が表示されます。In the Azure portal, the Overview page for your managed domain shows the current status throughout this deployment stage.

マネージド ドメインがプロビジョニングを完了したことが Azure portal に示されたら、次のタスクを完了する必要があります。When the Azure portal shows that the managed domain has finished provisioning, the following tasks need to be completed:

  • 仮想マシンがマネージド ドメインを検出してドメイン参加または認証を行うことができるように、仮想ネットワークの DNS 設定を更新します。Update DNS settings for the virtual network so virtual machines can find the managed domain for domain join or authentication.
    • DNS を構成するには、ポータルでマネージド ドメインを選択します。To configure DNS, select your managed domain in the portal. [概要] ウィンドウで、これらの DNS 設定を自動的に構成するように求められます。On the Overview window, you are prompted to automatically configure these DNS settings.
  • Azure AD DS とのパスワード同期を有効にして、エンド ユーザーが会社の資格情報を使用してマネージド ドメインにサインインできるようにします。Enable password synchronization to Azure AD DS so end users can sign in to the managed domain using their corporate credentials.

次のステップNext steps

動作中のマネージド ドメインを確認するために、Windows VM のドメイン参加Secure LDAP の構成パスワード ハッシュ同期の構成を実行できます。To see the managed domain in action, you can domain-join a Windows VM, configure secure LDAP, and configure password hash sync.