高可用性フェデレーション認証のフェーズ 4: Web アプリケーション プロキシを構成する

Azure インフラストラクチャ サービスに Microsoft 365 フェデレーション認証の高可用性をデプロイするこのフェーズでは、内部ロード バランサーと 2 つの AD FS サーバーを作成します。

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

Azure でインターネット接続ロード バランサーを作成する

Azure がインターネットからの着信クライアント認証トラフィックを 2 つの Web アプリケーション プロキシ サーバーに均等に分散するように、インターネット接続ロード バランサーを作成する必要があります。

注:

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

場所とリソース グループの値を指定したら、その結果のブロックを Azure PowerShell コマンド プロンプトまたは PowerShell ISE で実行します。

ヒント

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

# Set up key variables
$locName="<your Azure location>"
$rgName="<Table R - Item 4 - Resource group name column>"

$publicIP=New-AzPublicIpAddress -ResourceGroupName $rgName -Name "WebProxyPublicIP" -Location $LocName -AllocationMethod "Static"
$frontendIP=New-AzLoadBalancerFrontendIpConfig -Name "WebAppProxyServers-LBFE" -PublicIpAddress $publicIP
$beAddressPool=New-AzLoadBalancerBackendAddressPoolConfig -Name "WebAppProxyServers-LBBE"
$healthProbe=New-AzLoadBalancerProbeConfig -Name "WebServersProbe" -Protocol "TCP" -Port 443 -IntervalInSeconds 15 -ProbeCount 2
$lbrule=New-AzLoadBalancerRuleConfig -Name "WebTraffic" -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol "TCP" -FrontendPort 443 -BackendPort 443
New-AzLoadBalancer -ResourceGroupName $rgName -Name "WebAppProxyServers" -Location $locName -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe -FrontendIpConfiguration $frontendIP

インターネット接続ロード バランサーに割り当てられたパブリック IP アドレスを表示するには、ローカル コンピューターの Azure PowerShell コマンド プロンプトで次のコマンドを実行します。

Write-Host (Get-AzPublicIpaddress -Name "WebProxyPublicIP" -ResourceGroup $rgName).IPAddress

フェデレーション サービス FQDN を決定してて、DNS レコードを作成する

インターネット上のフェデレーション サービス名を識別するには、DNS 名を決定する必要があります。 Microsoft Entra Connect では、フェーズ 5 でこの名前で Microsoft 365 が構成されます。これは、Microsoft 365 が接続クライアントに送信してセキュリティ トークンを取得する URL の一部になります。 たとえば、fs.contoso.com です (fs はフェデレーション サービスを表します)。

フェデレーション サービス FDQN を取得後、Azure インターネット接続ロード バランサーのパブリック IP アドレスに解決される、フェデレーション サービス FDQN のパブリック DNS ドメイン A レコードを作成します。

名前 Type TTL
フェデレーション サービス FDQN
A
3600
Azure インターネット接続ロード バランサーのパブリック IP アドレス (前のセクションの Write-Host コマンドで表示されます)

次に例を示します:

名前 Type TTL
fs.contoso.com
A
3600
131.107.249.117

次に、フェデレーション サービス FQDN を AD FS サーバーの内部ロード バランサーに割り当てられたプライベート IP アドレスに解決する、組織のプライベート DNS 名前空間に DNS アドレス レコードを追加します (「表 I」、「項目 4」、「値」列)。

Azure に Web アプリケーション プロキシ サーバーの仮想マシンを作成する

次に示す Azure PowerShell コマンドのブロックを使用して、2 つの Web アプリケーション プロキシ サーバーの仮想マシンを作成します。

次に示す Azure PowerShell コマンド セットには、次の表の値を使用します。

  • 表 M: 仮想マシン用

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

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

  • 表 S: サブネット用

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

  • 表 A: 可用性セット用

フェーズ 2: フェーズ 1: Azure の構成で、ドメイン コントローラーとテーブル R、V、S、I、および A のテーブル M を定義したことを思い出してください。

適切な値をすべて指定したら、その結果のブロックを Azure PowerShell コマンド プロンプトまたは PowerShell ISE で実行します。

# Set up variables common to both virtual machines
$locName="<your Azure location>"
$vnetName="<Table V - Item 1 - Value column>"
$subnetName="<Table R - Item 3 - Subnet name column>"
$avName="<Table A - Item 3 - Availability set name column>"
$rgNameTier="<Table R - Item 3 - 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
$backendSubnet=Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $vnet
$webLB=Get-AzLoadBalancer -ResourceGroupName $rgName -Name "WebAppProxyServers"

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

# Create the first web application proxy server virtual machine
$vmName="<Table M - Item 6 - Virtual machine name column>"
$vmSize="<Table M - Item 6 - Minimum size column>"
$staticIP="<Table I - Item 7 - Value column>"
$diskStorageType="<Table M - Item 6 - Storage type column>"

$nic=New-AzNetworkInterface -Name ($vmName +"-NIC") -ResourceGroupName $rgName -Location $locName -Subnet $backendSubnet -LoadBalancerBackendAddressPool $webLB.BackendAddressPools[0] -PrivateIpAddress $staticIP
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id

$cred=Get-Credential -Message "Type the name and password of the local administrator account for the first web application proxy 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

# Create the second web application proxy virtual machine
$vmName="<Table M - Item 7 - Virtual machine name column>"
$vmSize="<Table M - Item 7 - Minimum size column>"
$staticIP="<Table I - Item 8 - Value column>"
$diskStorageType="<Table M - Item 7 - Storage type column>"

$nic=New-AzNetworkInterface -Name ($vmName +"-NIC") -ResourceGroupName $rgName -Location $locName  -Subnet $backendSubnet -LoadBalancerBackendAddressPool $webLB.BackendAddressPools[0] -PrivateIpAddress $staticIP
$vm=New-AzVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id

$cred=Get-Credential -Message "Type the name and password of the local administrator account for the second web application proxy 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 名とローカル管理者アカウントの資格情報を使用して仮想マシンに接続します。

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

フェーズ 4:Azure での高可用性フェデレーション認証インフラストラクチャ用のインターネット接続ロード バランサーと Web アプリケーション プロキシ サーバー

Web アプリケーション プロキシ サーバーを使用した Azure での高可用性 Microsoft 365 フェデレーション認証インフラストラクチャのフェーズ 4。

次の手順

フェーズ 5: Microsoft 365 のフェデレーション認証を構成して、このワークロードの構成を続行します。

関連項目

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

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

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