Windows Server の AD FS での証明書認証のための代替ホスト名バインド
多くのネットワークでは、ローカル ファイアウォール ポリシーによって、49443などの非標準ポート経由のトラフィックが許可されない場合があります。 非標準ポートでは、以前の Windows バージョンに対応する Windows Server で AD FS で証明書認証を実行しようとすると、問題が発生する可能性があります。 同じホスト上では、デバイス認証とユーザー証明書認証に異なるバインディングを行うことはできません。
Windows Server 2016 より前のバージョンの Windows の場合、デバイス証明書を受信するように既定のポート 443 がバインドされています。 このポートは、同じチャネルで複数のバインドをサポートするように変更することはできません。 スマート カード認証が機能せず、ユーザーに原因を説明する通知もありません。
Windows Server の AD FS では代替ホスト名のバインドがサポートされている
Windows Server の AD FS では、2 つのモードを使用して、代替ホスト名のバインドがサポートされています。
1 つ目のモードでは、異なるポート (443、49443) で同じホスト (
adfs.contoso.com
) が使用されます。2 つ目のモードでは、同じポート (443) で異なるホスト (
adfs.contoso.com
とcertauth.adfs.contoso.com
) が使用されます。 このモードでは、代替サブジェクト名としてcertauth.\<adfs-service-name>
をサポートするために TLS/SSL 証明書が必要になります。 代替ホスト名のバインドは、ファームの作成時に構成することも、後で PowerShell を使用して構成することもできます。
証明書認証のための代替ホスト名のバインディングを構成する方法
証明書認証用の代替ホスト名のバインドを追加するには、2 つの方法があります。
1 つ目は、Windows Server 2016 用の AD FS を使用して新しい AD FS ファームをセットアップする方法です。 証明書にサブジェクトの代替名 (SAN) が含まれている場合は、前述の 2 つ目のモードを使用するように自動的に設定されます。 つまり、2 つの異なるホスト (
sts.contoso.com
とcertauth.sts.contoso.com
) が同じポートで自動的に設定されます。証明書に SAN が含まれていない場合は、証明書サブジェクトの代替名が
certauth.*
をサポートしていないことを示す警告メッセージが表示されます。The SSL certificate subject alternative names do not support host name 'certauth.adfs.contoso.com'. Configuring certificate authentication binding on port '49443' and hostname 'adfs.contoso.com'. The SSL certificate does not contain all UPN suffix values that exist in the enterprise. Users with UPN suffix values not represented in the certificate will not be able to Workplace-Join their devices. For more information, see http://go.microsoft.com/fwlink/?LinkId=311954.
証明書に SAN が含まれているインストールでは、メッセージの 2 番目の部分のみが表示されます。
The SSL certificate does not contain all UPN suffix values that exist in the enterprise. Users with UPN suffix values not represented in the certificate will not be able to Workplace-Join their devices. For more information, see http://go.microsoft.com/fwlink/?LinkId=311954.
2 つ目の方法は、Windows Server に AD FS を展開した後で使用できます。 証明書認証用の代替ホスト名バインドを追加するには、PowerShell コマンドレット
Set-AdfsAlternateTlsClientBinding
を使用します。 詳細については、「Set-AdfsAlternateTlsClientBinding」を参照してください。Set-AdfsAlternateTlsClientBinding -Member ADFS1.contoso.com -Thumbprint '<thumbprint of cert>'
証明書の構成を確認するメッセージが表示されたら、[はい] または [すべてはい] を選択します。