久しぶりにブログを更新してみようと思います。
vCenter 7.0からWindows統合認証が非推奨となり、LDAP/LDAPSかAD FSが推奨となりました。 Windows統合認証はWindows版vCenterがあった時代は、OSがWindowsであったため構成上問題はありませんでしたが、現在はPhoton OSのアプライアンス版しか存在しないため、Linux環境でWindowsの認証を利用必要があり複雑性が増していることから廃止予定となったようです。
ただし、ユーザ認証の設定について既存のADを利用する場合など考慮事項も多いため、設定変更を行う手順について確認を行ってみました。
構成
Active DirectoryのLDAPSの設定
Active Directoryがすでに設定済みの環境を用意します。 Active Directoryは初期設定ではLDAPSに利用される689ポートが開いていますが、証明書が登録されていないため、すぐに利用することはできません。
LDAPSを有効化させる方法は2つの方法があります。
今回はエンタープライズCAを利用した方法を確認してみようと思います。
エンタープライズCAのインストール
Windows Server 2019 (AD CS)でエンタープライズCAのインストールを行っていきます。
- Windows Server 2019 (AD CS)をドメイン参加させておきます。
- サーバーマネージャのダッシュボードから役割と機能の追加をクリックします。
- インストールの種類で役割ベースまたは機能ベースのインストールを選択し、次へをクリックします。
- サーバーの役割で、Active Directory証明書サービスを選択し、機能の追加を選択します。
- Active Directory証明書サービスの役割サービスで証明機関を選択し、次へをクリックします。
- インストールをクリックし、インストールを行います。
- 対象のサーバーに Active Directory 証明書サービスを構成するをクリックします。
- 資格情報にて、ドメインの管理者アカウントが入力されていることを確認し、次へをクリックします。
- 役割サービスにて、認証機関を選択し、次へをクリックします。
- セットアップの種類にて、エンタープライズ CAを選択し、次へをクリックします。
- CAの種類にて、ルートCAを選択し、次へをクリックします。
- 秘密キーにて、新しい秘密キーを作成するを選択し、次へをクリックします。
- CAの暗号化にて、RSA#Microsoft Software Key Strong Provider、 キー長に2048、SHA256を選択し、次へをクリックします。
- CAの名前にて、CAの名前を指定し、次へをクリックします。
- 有効期間にて、CA証明書の有効期間の長さを入力し、次へをクリックします。
- CAデータベースにて、証明書データベースを入力し、次へをクリックします。
- 確認にて、設定値を確認し、構成をクリックします。
- サーバーマネージャのダッシュボードからツール>証明機関をクリックし、グリーンのチェックマークがついていればインストールは完了です。
ADサーバーの証明書の発行の確認
エンタープライズCAから自動的にサーバー証明書が発行されることを確認します。
タスクスケジューラでサーバー起動時か8時間ごとに自動的に処理が行われているため、サーバーの再起動かタスクスケジューラのWindows>CertificateServiceClient>SystemTaskを実行します。
- ファイル名を指定して実行に
mmc
と入力し、コンソールを起動します。 - ファイルからスナップインの追加と削除をクリックします。
- スナップインの追加と削除にて、証明書を選択し、追加をクリックします。
- コンピューターアカウントを選択し、完了をクリックします。
- そのままで完了をクリックします。
- 選択されたスナップインに証明書が追加されたことを確認し、OKをクリックします。
- 個人>証明書をクリックし、サーバー証明書の発行を確認します。
ルート証明書のダウンロード
ルート証明書の取得方法はいくつかあります。
- エンタープライズCAの証明機関から取得
- ADサーバーのコンソールから取得
- openssl s_clientコマンドによる取得
openssl s_clientコマンドによる取得した際に、サーバー証明書は取得できますが、 ルート証明書が自己署名されているため、ルート証明書の取得ができません。
そのため、エンタープライズCAからの証明機関から取得してみます。
- サーバーマネージャのダッシュボードからツール>証明機関をクリックします。
- グリーンのチェックマークがついているアイコンを右クリックし、プロパティをクリックします。
- 証明書の表示をクリックします。
- 証明書にて、詳細タブをクリックし、ファイルにコピーをクリックします。
- 証明書のエクスポートウィザードにて、次へをクリックします。
- Base-64 encoded X.509 (.CER)を選択します。
- エクスポートするファイルにて、ファイル名に
ca.cer
などを入力し、次へをクリックします。 - 完了をクリックします。
- エクスポートした証明書を手元の環境にダウンロードします。
vCenterのIDソースの設定
最後にvCenterへLDAPSのユーザ認証の設定を追加します。
- vSphere Clientにadministrator@vsphere.localユーザでログインします。
- 管理>Single Sign-On>設定をクリックし、IDプロバイダ>IDソースで追加をクリックします。
- IDソースの追加にて、IDソースタイプにLDAPを介したActive Directoryを選択し、以下のような値を入力します。
- IDソース名: Active Directory over LDAPS
- ユーザーのベース識別名: cn=Users,dc=home,dc=lab
- グループのベース識別名: cn=Users,dc=home,dc=lab
- ドメイン名: home.lab
- ユーザー名: administrator@home.lab
- プライマリ サーバ URL: ldaps://windows2019-1.home.lab:636
- 証明書(LDAPSの場合)の参照をクリックし、先の手順でダウンロードしたルート証明書を登録します。
- 保存をクリックします。
- 以下のように設定が保存されれば、LDAPSのIDソースの追加が完了です。
- 一度vSphere Clientからログアウトし、ADユーザでログインできることを確認します。
エラーが発生するケースについて
保存をクリックした際に、設定に問題がある場合はエラーが発生することがあります。
LDAPを介したActive Directoryの課題について
LDAPを介したActive Directoryに設定を移行した場合、以下の課題があるように見えます。
- LDAPで登録し、LDAPSに切り替えたい場合、一度IDソースとして削除し再登録する必要がある
- LDAPSで登録し、証明書の有効期限が切れた場合、一度IDソースを削除し再登録する必要がある
- サーバー証明書を証明書と登録した場合、エンタープライズCAのデフォルト設定で1年間に1回サーバー証明書が更新されるめ、再登録が必要
LDAPSの証明書の有効期限が切れた場合に、新しい証明書を追加で登録できないため、 IDソースを切り替える際にユーザ認証ができないという課題があり、この辺りの考慮が必要になってきそうです。 vCenterのCLIツールでIDソースの再登録を自動化するという手もあるかもしれません。