高可用性フェデレーション認証のフェーズ 2: ドメイン コントローラーを構成する

Azure インフラストラクチャ サービスに Microsoft 365 フェデレーション認証の高可用性をデプロイするこのフェーズでは、Azure 仮想ネットワークに 2 つのドメイン コントローラーとディレクトリ同期サーバーを構成します。 オンプレミス ネットワークへのサイト間 VPN 接続を経由して認証トラフィックを送信するのではなく、Azure 仮想ネットワーク内で認証に対するクライアント Web 要求を認証できます。

注:

Active Directory フェデレーション サービス (AD FS) (AD FS) では、Active Directory Domain Services (AD DS) ドメイン コントローラーの代わりに Microsoft Entra ID を使用することはできません。

フェーズ 3: AD FS サーバーの構成に進む前に、このフェーズを完了する必要があります。 すべてのフェーズについては、「 Azure での Microsoft 365 の高可用性フェデレーション認証のデプロイ 」を参照してください。

Azure にドメイン コントローラー仮想マシンを作成する

まず、「表 M」の「 仮想マシン名 」列に必要事項を入力し、必要に応じて、「 最小サイズ 」列で仮想マシンのサイズを変更します。

アイテム 仮想マシン名 ギャラリーの画像 ストレージの種類 最小サイズ
1.
行。 (最初のドメイン コントローラー、DC1 の例)
Windows Server 2016 Datacenter
Standard_LRS
Standard_D2
2.
行。 (2 番目のドメイン コントローラー、DC2 の例)
Windows Server 2016 Datacenter
Standard_LRS
Standard_D2
3。
行。 (ディレクトリ同期サーバー、DS1 の例)
Windows Server 2016 Datacenter
Standard_LRS
Standard_D2
4.
行。 (最初の AD FS サーバー、ADFS1 の例)
Windows Server 2016 Datacenter
Standard_LRS
Standard_D2
5.
行。 (2 つ目の AD FS サーバー、ADFS2 の例)
Windows Server 2016 Datacenter
Standard_LRS
Standard_D2
6.
行。 (最初の Web アプリケーション プロキシ サーバー、WEB1 の例)
Windows Server 2016 Datacenter
Standard_LRS
Standard_D2
7.
行。 (2 つ目の Web アプリケーション プロキシ サーバー、WEB2 の例)
Windows Server 2016 Datacenter
Standard_LRS
Standard_D2

表 M - Azure での Microsoft 365 の高可用性フェデレーション認証用の仮想マシン

仮想マシンのサイズの一覧については、「Azure の仮想マシンのサイズ」を参照してください。

次に示す Azure PowerShell コマンド ブロックは、2 つのドメイン コントローラー用の仮想マシンを作成します。 変数の値を指定します (「<」と「>」の文字は削除してください)。 なお、この Azure PowerShell コマンド ブロックは、次の表の値を使用します。

  • 表 M: 仮想マシン用

  • 表 R: リソース グループ用

  • 表 V: 仮想ネットワークの設定用

  • 表 S: サブネット用

  • 表 I: 静的 IP アドレス用

  • 表 A: 可用性セット用

フェーズ 1: Azure の構成で、テーブル R、V、S、I、A を定義したことを思い出してください。

注:

次のコマンド セットは、Azure PowerShell の最新版を使用します。 「Azure PowerShellの概要」を参照してください。

すべてに適切な値を指定したら、その結果のブロックを Azure PowerShell プロンプト、またはローカル コンピューターの PowerShell 統合スクリプト環境 (ISE) で実行します。

ヒント

カスタム設定に基づいてすぐに実行できる PowerShell コマンド ブロックを生成するには、この Microsoft Excel 構成ブックを使用します。

# Set up variables common to both virtual machines
$locName="<your Azure location>"
$vnetName="<Table V - Item 1 - Value column>"
$subnetName="<Table S - Item 1 - Value column>"
$avName="<Table A - Item 1 - Availability set name column>"
$rgNameTier="<Table R - Item 1 - Resource group name column>"
$rgNameInfra="<Table R - Item 4 - Resource group name column>"

$rgName=$rgNameInfra
$vnet=Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName
$subnet=Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $subnetName

$rgName=$rgNameTier
$avSet=Get-AzAvailabilitySet -Name $avName -ResourceGroupName $rgName 

# Create the first domain controller
$vmName="<Table M - Item 1 - Virtual machine name column>"
$vmSize="<Table M - Item 1 - Minimum size column>"
$staticIP="<Table I - Item 1 - Value column>"
$diskStorageType="<Table M - Item 1 - Storage type column>"
$diskSize=<size of the extra disk for Active Directory Domain Services (AD DS) data in GB>

$nic=New-AzNetworkInterface -Name ($vmName +"-NIC") -ResourceGroupName $rgName -Location $locName -Subnet $subnet -PrivateIpAddress $staticIP
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$vm=Set-AzVMOSDisk -VM $vm -Name ($vmName +"-OS") -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType $diskStorageType
$diskConfig=New-AzDiskConfig -AccountType $diskStorageType -Location $locName -CreateOption Empty -DiskSizeGB $diskSize
$dataDisk1=New-AzDisk -DiskName ($vmName + "-DataDisk1") -Disk $diskConfig -ResourceGroupName $rgName
$vm=Add-AzVMDataDisk -VM $vm -Name ($vmName + "-DataDisk1") -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
$cred=Get-Credential -Message "Type the name and password of the local administrator account for the first domain controller." 
$vm=Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version "latest"
$vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
New-AzVM -ResourceGroupName $rgName -Location $locName -VM $vm

# Create the second domain controller
$vmName="<Table M - Item 2 - Virtual machine name column>"
$vmSize="<Table M - Item 2 - Minimum size column>"
$staticIP="<Table I - Item 2 - Value column>"
$diskStorageType="<Table M - Item 2 - Storage type column>"
$diskSize=<size of the extra disk for AD DS data in GB>

$nic=New-AzNetworkInterface -Name ($vmName +"-NIC") -ResourceGroupName $rgName -Location $locName -Subnet $subnet -PrivateIpAddress $staticIP
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id
$vm=Set-AzVMOSDisk -VM $vm -Name ($vmName +"-OS") -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType $diskStorageType
$diskConfig=New-AzDiskConfig -AccountType $diskStorageType -Location $locName -CreateOption Empty -DiskSizeGB $diskSize
$dataDisk1=New-AzDisk -DiskName ($vmName + "-DataDisk1") -Disk $diskConfig -ResourceGroupName $rgName
$vm=Add-AzVMDataDisk -VM $vm -Name ($vmName + "-DataDisk1") -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
$cred=Get-Credential -Message "Type the name and password of the local administrator account for the second domain controller." 
$vm=Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version "latest"
$vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
New-AzVM -ResourceGroupName $rgName -Location $locName -VM $vm

# Create the directory synchronization server
$vmName="<Table M - Item 3 - Virtual machine name column>"
$vmSize="<Table M - Item 3 - Minimum size column>"
$staticIP="<Table I - Item 3 - Value column>"
$diskStorageType="<Table M - Item 3 - Storage type column>"

$nic=New-AzNetworkInterface -Name ($vmName +"-NIC") -ResourceGroupName $rgName -Location $locName -Subnet $subnet -PrivateIpAddress $staticIP
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize

$cred=Get-Credential -Message "Type the name and password of the local administrator account for the directory synchronization server." 
$vm=Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version "latest"
$vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
$vm=Set-AzVMOSDisk -VM $vm -Name ($vmName +"-OS") -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType $diskStorageType
New-AzVM -ResourceGroupName $rgName -Location $locName -VM $vm

注:

これらの仮想マシンはイントラネット アプリケーション用であるため、パブリック IP アドレスまたは DNS ドメイン名ラベルが割り当てられず、インターネットに公開されません。 ただし、これは、Azure portalから接続できないことも意味します。 仮想マシンのプロパティを表示すると、[ 接続 ] オプションは使用できません。 リモート デスクトップ接続アクセサリまたは別のリモート デスクトップ ツールを使用して、プライベート IP アドレスまたはイントラネット DNS 名を使用して仮想マシンに接続します。

最初のドメイン コントローラーを構成する

任意のリモート デスクトップ クライアントを使用して、最初のドメイン コント ローラー仮想マシンへのリモート デスクトップ接続を作成します。 イントラネット DNS を使用するか、ローカル管理者アカウントのコンピューター名と資格情報を使用します。

次に、最初のドメイン コントローラー仮想マシンのWindows PowerShell コマンド プロンプトから、このコマンドを使用して、最初のドメイン コントローラーに追加のデータ ディスクを追加します。

Get-Disk | Where PartitionStyle -eq "RAW" | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "WSAD Data"

次に、最初のドメイン コントローラーから組織ネットワーク上の場所への接続をテストします。テストには、組織ネットワーク上のリソースの名前と IP アドレスを探索する ping コマンドを使用します。

この手順では、DNS 名解決が正しく機能していること (仮想マシンがオンプレミスの DNS サーバーで正しく構成されていること)、およびクロスプレミス仮想ネットワークとの間でパケットを送受信できることを確認します。 この基本的なテストが失敗した場合は、IT 部門に問い合わせて、DNS の名前解決とパケット配信の問題のトラブルシューティングを行ってください。

次に、最初のドメイン コントローラーの Windows PowerShell コマンド プロンプトで、次に示すコマンドを実行します。

$domname="<DNS domain name of the domain for which this computer will be a domain controller, such as corp.contoso.com>"
$cred = Get-Credential -Message "Enter credentials of an account with permission to join a new domain controller to the domain"
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Install-ADDSDomainController -InstallDns -DomainName $domname  -DatabasePath "F:\NTDS" -SysvolPath "F:\SYSVOL" -LogPath "F:\Logs" -Credential $cred

ドメイン管理者アカウントの資格情報の入力を求めるダイアログが表示されます。 コンピューターが再起動されます。

2 番目のドメイン コントローラーを構成する

任意のリモート デスクトップ クライアントを使用して、2 番目のドメイン コント ローラー仮想マシンへのリモート デスクトップ接続を作成します。 イントラネット DNS を使用するか、ローカル管理者アカウントのコンピューター名と資格情報を使用します。

次に、2 つ目のドメイン コントローラー仮想マシンのWindows PowerShell コマンド プロンプトからこのコマンドを使用して、2 番目のドメイン コントローラーに追加のデータ ディスクを追加する必要があります。

Get-Disk | Where PartitionStyle -eq "RAW" | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "WSAD Data"

次に、以下のコマンドを実行します。

$domname="<DNS domain name of the domain for which this computer will be a domain controller, such as corp.contoso.com>"
$cred = Get-Credential -Message "Enter credentials of an account with permission to join a new domain controller to the domain"
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Install-ADDSDomainController -InstallDns -DomainName $domname  -DatabasePath "F:\NTDS" -SysvolPath "F:\SYSVOL" -LogPath "F:\Logs" -Credential $cred

ドメイン管理者アカウントの資格情報の入力を求めるダイアログが表示されます。 コンピューターが再起動されます。

次に、DNS サーバーとして使用する 2 つの新しいドメイン コントローラーの IP アドレスを Azure が仮想マシンに割り当てるように、仮想ネットワークの DNS サーバーを更新する必要があります。 変数を入力し、ローカル コンピューターのWindows PowerShell コマンド プロンプトから次のコマンドを実行します。

$rgName="<Table R - Item 4 - Resource group name column>"
$adrgName="<Table R - Item 1 - Resource group name column>"
$locName="<your Azure location>"
$vnetName="<Table V - Item 1 - Value column>"
$onpremDNSIP1="<Table D - Item 1 - DNS server IP address column>"
$onpremDNSIP2="<Table D - Item 2 - DNS server IP address column>"
$staticIP1="<Table I - Item 1 - Value column>"
$staticIP2="<Table I - Item 2 - Value column>"
$firstDCName="<Table M - Item 1 - Virtual machine name column>"
$secondDCName="<Table M - Item 2 - Virtual machine name column>"

$vnet=Get-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnetName
$vnet.DhcpOptions.DnsServers.Add($staticIP1)
$vnet.DhcpOptions.DnsServers.Add($staticIP2) 
$vnet.DhcpOptions.DnsServers.Remove($onpremDNSIP1)
$vnet.DhcpOptions.DnsServers.Remove($onpremDNSIP2) 
Set-AzVirtualNetwork -VirtualNetwork $vnet
Restart-AzVM -ResourceGroupName $adrgName -Name $firstDCName
Restart-AzVM -ResourceGroupName $adrgName -Name $secondDCName

2 つのドメイン コントローラーを再起動して、これらが DNS サーバーとしてオンプレミスの DNS サーバーで構成されないようにします。 これらはいずれも DNS サーバーなので、ドメイン コントローラーに昇格されたときに、自動的に DNS フォワーダーとして、オンプレミスの DNS サーバーで構成されていました。

次に、Active Directory のレプリケーション サイトを作成して、Azure 仮想ネットワークのサーバーがローカル ドメイン コントローラーを使用するようにする必要があります。 ドメイン管理者アカウントを使用してどちらかのドメイン コントローラーに接続し、管理者レベルの Windows PowerShell プロンプトから次に示すコマンドを実行します。

$vnet="<Table V - Item 1 - Value column>"
$vnetSpace="<Table V - Item 4 - Value column>"
New-ADReplicationSite -Name $vnet 
New-ADReplicationSubnet -Name $vnetSpace -Site $vnet

ディレクトリ同期サーバーを構成する

任意のリモート デスクトップ クライアントを使用し、ディレクトリ同期サーバー仮想マシンへのリモート デスクトップ接続を作成します。 イントラネット DNS を使用するか、ローカル管理者アカウントのコンピューター名と資格情報を使用します。

次に、Windows PowerShell プロンプトでこれらのコマンドを使用して、適切な AD DS ドメインに参加させます。

$domName="<AD DS domain name to join, such as corp.contoso.com>"
$cred=Get-Credential -Message "Type the name and password of a domain account."
Add-Computer -DomainName $domName -Credential $cred
Restart-Computer

次に、このフェーズが正常に完了した結果の構成を示します。コンピューター名にはプレース ホルダーを使用しています。

フェーズ 2: Azure の高可用性フェデレーション認証インフラストラクチャ用のドメイン コントローラーとディレクトリ同期サーバー

ドメイン コントローラーを使用した Azure の高可用性 Microsoft 365 フェデレーション認証インフラストラクチャのフェーズ 2。

次の手順

フェーズ 3: AD FS サーバーを構成して、このワークロードの構成を続行します。

関連項目

Azure に Microsoft 365 の高可用性フェデレーション認証を展開する

Microsoft 365 開発/テスト環境のフェデレーション ID

Microsoft 365 ソリューションおよびアーキテクチャ センター