Active Directory over LDAPS の ID ソースを構成する

Share on:

Table of contents

はじめに

前回、3記事に渡って vSphere 7 の新機能である Identity Federation の構成を行っていきました。しかし、いきなり AD FS を用意するのはシステム的/コスト的に難しい場合もあると思いますので、今回の記事では従来の vCenter SSO で Active Directory over LDAPS の ID ソースを構成していきたいと思います。

vCenter Single Sign-On とは?

vCenter Single Sign-On (以下 vCenter SSO) は vSpehre Web Client (Flash) と併せて vSphere 5.1 で初めて導入された、vCenter Server でユーザー認証を行うためのコンポーネントです。SAML 2.0 による認証フロー1が採用されており、vCenter SSO は SAML における Identity Provider (IdP) として動作します。

従来の vCenter SSO による認証

なお、前回の記事シリーズでの Identity Federation は、vCenter Server に組み込まれている vCenter SSO (SAML) を使用せず、ID プロバイダに AD FS (OpenID Connect) を使用しています。以下の図と比較してもらえると、vCenter SSO の立ち位置が丸ごと AD FS に置き換わっていることが分かると思います。

Identity Federation の流れ

ID ソースとは?

Active Directory や OpenLDAP といった認証情報のリポジトリは、vCenter SSO では「ID ソース (Identity Source)」として使用されます。vCenter SSO によるユーザーの認証時には、vCenter SSO を経由して ID ソースに認証情報が渡され、ID ソースで認証が行われます。

vCenter SSO では以下の ID ソースが使用可能となっています。最初の2つは既定で使用でき、残りの3つは外部の ID ソースのため別途追加が必要になります。

  • vCenter SSO ドメイン ※組み込み
  • ローカル OS
  • Active Directory (統合 Windows 認証)
  • Active Directory over LDAP
  • OpenLDAP

なお、vCenter SSO 自体も独自のユーザーやグループを持っており、組み込みの ID ソースとして保持しています2。vCenter SSO ドメインのユーザーを認証する場合、特に外部の ID ソースは使用されず vSphere 内で認証が完結することになります。

Active Directory over LDAP とは?

日本語では「LDAP を介した Active Directory」となり、LDAP プロトコルを使って Active Directory によるユーザー認証を行うための ID ソースです。

「Active Directory (統合 Windows 認証)」の ID ソースの場合は Kerberos など LDAP 以外のプロトコルも使用しますが、Active Directory over LDAP(S) の場合は純粋に LDAP のみで認証をおこないます。

なお、SSL/TLS を使用しない Active Directory over LDAP の場合では、LDAP サーバへのバインド要求に SASL でなく Simple を使用しているため以下のようにネットワーク上にパスワードが平文で流れます3。このため、ネットワークの盗聴によりパスワードの取得が可能であることから、セキュリティの観点からは SSL/TLS による暗号化が行われる LDAPS の使用が推奨されます。

LDAP (TLS なし) パケットキャプチャ

なぜ Active Directory over LDAPS を使用するのか?

vSphere 7 からは統合 Windows 認証が非推奨になっており、将来的に廃止される予定です。このため、Identity Federation もしくは Active Directory over LDAPS の利用が推奨されています。

vSphere 7 – Integrated Windows Authentication (IWA) Deprecation

また、統合 Windows 認証と Active Directory over LDAP (TLS 無し) の ID ソースは、以下の記事で情報公開されている Active Directory LDAP のセキュリティ強化のための設定を有効 (Microsoft の推奨) にした場合に影響を受けます。このため、こちらでも Identity Federation もしくは Active Directory over LDAPS の利用が推奨されています。

vSphere Authentication, Microsoft Active Directory LDAP, and Event ID 2889

2020 LDAP channel binding and LDAP signing requirements for Windows

冒頭に記載のように、AD FS を用意するのはシステム的/コスト的に難しい場合もあるため、AD FS (Identity Federation) が利用できない場合には、組み込みの vCenter SSO で Active Directory over LDAPS を利用するという選択になると思います。

Active Directory over LDAPS を構成する

以下のVMware社ナレッジベースの手順が詳しいので、こちらに沿って実施していきます。

Configuring a vCenter Single Sign-On Identity Source using LDAP with SSL (LDAPS) (2041378)

サーバ証明書のエクスポート

vCenter Server からの LDAPS 接続にあたってサーバ証明書が必要になるため、事前に Active Directory の LDAP サーバ証明書を取得します。前回の Identity Federation での手順と同様ですので、Windows の証明書ストアからファイルとしてエクスポートするか、以下の openssl コマンドで Base64 エンコードの証明書をコピー&ペーストでファイルにします。

1$ openssl s_client -showcerts -host <AD DS の FQDN> -port 636

ID ソースの追加

vSphere Client で [管理] > [Single Sign-On] > [設定] を開き、[ID プロバイダ] タブ > [ID ソース] を開きます。

ID ソース

[追加] を押下すると [ID ソースの追加] ダイアログがポップアップするため、[ID ソースタイプ] に [LDAP を介した Active Directory] を選択します。その後、以下のように LDAP としての各種情報を入力していきます。

ID ソースの追加

なお、[ドメイン名] と [ドメイン エイリアス] はそれぞれ Active Directory ドメインの FQDN と NETBIOS 名を入力します。接続先には [特定のドメイン コントローラ] を選択し、プライマリ(とセカンダリ)のドメインコントローラの LDAPS URL を入力します。

[追加] をクリックして ID ソースを追加したら、[管理] > [Single Sign-On] > [ユーザーおよびグループ] から追加した ID ソースのドメインを選択し、ユーザーの一覧が取得できているか確認します。

ユーザーおよびグループ

Active Directory over LDAPS の ID ソースの構成はこれで完了です。あとは、vCenter Server のインベントリ上のいずれかのオブジェクトでユーザーにロールを割り当てればログインが行えるようになります。

おわりに

今回は Active Directory over LDAPS の構成について見ていきました。構成手順に3記事かかった Identity Federation に比べると、用意するコンポーネントも手順も少ないので構成自体は容易かなと思っています。

VMware 拡張認証プラグインでの Windows セッション認証などもあり、統合 Windows 認証で Active Directory を使用している環境は少なくないのではないかと思っています。vSphere 7 で統合 Windows 認証が非推奨、将来的に廃止される予定であることから、今のうちから vCenter Server の認証構成について確認や検討を進めていくことを推奨したいと思います。


  1. 旧 vSphere Client (C# Client) によるアクセスでは、vCenter Server に直接接続するため SAML によるフローは使用されませんが、内部で vCenter Server から vCenter SSO に認証情報が渡されます↩︎

  2. 既定では vsphere.local (vSphere 5.1 は System-Domain) というドメイン名が使用されます。vCenter Server のインストール時に変更可能です。 ↩︎

  3. ESXi 6.7 上の VCSA 7.0 で AD over LDAP (TLS なし) を構成した後、pktcap-uw で VCSA の vNIC をキャプチャポイントに指定して採取、Wireshark から画像の通り確認しています。 ↩︎