スマート カード認証を有効にするには、クライアント証明書を要求するように vCenter Server を構成する必要があります。
この構成では、vCenter Server で自動的に設定およびオープンされるポート 3128 が使用されます。
前提条件
認証局 (CA) 証明書を vCenter Server システムにコピーして、信頼できるクライアント CA ストアの作成に使用します。このストアには、クライアント証明書のために CA によって発行された、信頼できる証明書が含まれている必要があります。ここでは、クライアントとは、スマート カード プロセスでエンド ユーザーに情報の入力を求めるメッセージが表示されるブラウザを指します。
注:
vCenter Server 7.0 以降は、HTTP/2 プロトコルをサポートしています。すべての最新のブラウザおよびアプリケーション(
vSphere Client など)は、HTTP/2 を使用して
vCenter Server に接続します。ただし、スマート カード認証では、HTTP/1.1 プロトコルを使用する必要があります。スマート カード認証を有効にすると、HTTP/2 の Application-Layer Protocol Negotiation (ALPN、
https://tools.ietf.org/html/rfc7301) が無効になるため、実質的にブラウザで HTTP/2 が使用されることはありません。ALPN に依存せず、HTTP/2 のみを使用するアプリケーションは引き続き動作します。
スマート カード認証を完了するには、クライアントが該当する vCenter Server でポート 3128/TCP にアクセスすることを許可する必要があります。境界ファイアウォールを確認して、アクセス権が付与されていることを確認します。
接続は、スマート カード ログイン時にポート 3128 にリダイレクトされます。ポート 3128 は、事前構成済みの相互認証接続のみをサポートしており、直接的なブラウザ エンドポイントとしては想定されていません。HSTS ヘッダーは返されません。脆弱性スキャナからこの動作が報告されても、無視して問題ありません。
手順
- root ユーザーとして vCenter Server シェルにログインします。
- 正確なパスと PEM 名 (
/usr/lib/vmware-sso/vmware-sts/conf/clienttrustCA.pem
) を使用して、vCenter Server に信頼できるクライアント CA ストアを作成します。
注意: 正確なパスと PEM 名 (
/usr/lib/vmware-sso/vmware-sts/conf/clienttrustCA.pem
) を使用する必要があります。
- /usr/lib/vmware-sso/ ディレクトリに移動します。
- 信頼できるクライアント CA ストアを作成するには、openssl コマンドを実行し、信頼された署名証明書を入力として取得します。たとえば、次のコマンドを実行すると、信頼された署名証明書 xyzCompanySmartCardSigningCA.cer から clienttrustCA.pem ファイルが作成されます。
openssl x509 -inform PEM -in xyzCompanySmartCardSigningCA.cer > /usr/lib/vmware-sso/vmware-sts/conf/clienttrustCA.pem
信頼できるクライアント CA ストアに証明書を追加するには、「>>」演算子を使用して
openssl コマンドを実行し、証明書を追加します。たとえば、次のコマンドを実行すると、既存の
clienttrustCA.pem ファイルに
xyzCompanySmartCardSigningCA2.cer が追加されます。
openssl x509 -inform PEM -in xyzCompanySmartCardSigningCA2.cer >> /usr/lib/vmware-sso/vmware-sts/conf/clienttrustCA.pem
- スマート カード証明書に署名した信頼できる CA が clienttrustCA.pem ファイルの内容に含まれていることを確認するには、keytool コマンドを実行します。
例:
keytool -printcert -file /usr/lib/vmware-sso/vmware-sts/conf/clienttrustCA.pem | grep -i "owner\|sha1\|issuer:\|valid"
- CA 名がスマート カード ユーザー証明書チェーンと一致することを確認します。
たとえば、次のコマンドを実行できます。
sso-config.sh -get_authn_policy -t vsphere.local | grep trusted
ルート証明書と中間証明書には、一致するサムプリント、名前、有効な日付などが含まれている必要があります。
注:
vSphere Client(
)を使用することもできます。
- STS サービスを再起動します。
service-control --restart sts