AD FS での証明書認証のための代替ホスト名バインドのサポート

適用対象: Windows Server 2016 以降

多くのネットワークでは、ローカル ファイアウォール ポリシーによって、49443 などの非標準ポート経由のトラフィックが許可されない場合があります。 非標準ポートでは、同じホスト上でデバイス認証とユーザー証明書認証に対して異なるバインディングを使用できないため、Windows Server 2016 よりも前のバージョンで AD FS で証明書認証を実行しようとすると、問題が発生していました。 Windows Server 2016 よりも前のバージョンで、既定のポート 443 はデバイスの証明書の受信にバインドされ、同じチャネルで複数のバインドをサポートするために変更することはできません。 スマート カード認証は機能せず、ユーザーに原因を説明する通知はありません。

Windows Server の AD FS では代替ホスト名のバインドがサポートされている

Windows Server の AD FS では、代替ホスト名のバインドがサポートされています。 2 つのモードがサポートされています。 最初のモードでは、異なるポート (443、49443) で同じホスト (つまり、adfs.contoso.com) が使用されます。 2 つ目のモードでは、同じポート (443) で異なるホスト (adfs.contoso.com と certauth.adfs.contoso.com) が使用されます。 2 つ目のモードには、代替サブジェクト名として "certauth.<adfs-service-name>" をサポートするために TLS/SSL 証明書が必要です。 代替ホスト名のバインドは、ファームの作成時に、または PowerShell を使用して後で構成できます。

証明書認証のための代替ホスト名のバインディングを構成する方法

証明書認証用の代替ホスト名のバインドを追加するには、2 つの方法があります。

  • Windows Server 2016 に AD FS を使用して新しい AD FS ファームを設定するとき、証明書にサブジェクトの代替名 (SAN) が含まれている場合は、前のセクションで説明した 2 つ目のモードを使用するように自動的に設定されます。 つまり、2 つの異なるホスト (sts.contoso.com と certauth.sts.contoso.com) が同じポートで自動的に設定されます。

証明書に SAN が含まれていない場合は、"証明書サブジェクトの代替名が certauth.* をサポートしていない" という警告が表示されます。 次のスクリーンショットを参照してください。 最初のスクリーンショットは、証明書に SAN が含まれているインストールを示しています。 2 つ目のスクリーンショットは、SAN が含まれていない証明書を示しています。

Screenshot that shows an installation where the certificate contains a SAN.

Screenshot that shows a certificate that doesn't contain a SAN.

  • Windows Server で AD FS が展開されたら、PowerShell コマンドレット Set-AdfsAlternateTlsClientBinding を使用して、証明書認証用の代替ホスト名バインドを追加できます。 詳細については、「Set-AdfsAlternateTlsClientBinding」を参照してください。
Set-AdfsAlternateTlsClientBinding -Member ADFS1.contoso.com -Thumbprint '<thumbprint of cert>'

メッセージが表示されたら、[はい] を選択して確認します。

alternate hostname binding