課題:なぜローカルアカウントの管理はリスクが高いのか?
VMware vSphereシステムを管理している方なら、新しいスタッフが加わるたびにアカウントを作成したり削除したりする手間に馴染みがあるでしょう。vCenter用に別途ログイン情報を覚えさせることは、脆弱なパスワードの設定につながりやすく、紙や保護されていないメモファイルに書き留めてしまうケースも少なくありません。
私の職場では、8台のESXiホストと5名の管理者がいるクラスタにおいて、アクセス権限の管理が大きな負担となっていました。Microsoft Entra ID(旧称 Azure AD)によるシングルサインオン(SSO)に移行してからは、状況が一変しました。Azure上のグループにユーザーを追加するだけで、そのスタッフは会社のOffice 365アカウントを使って vCenter にログインできるようになります。
本稿では、OIDC(OpenID Connect)の設定手順を解説します。これは、Microsoftのエコシステムと連携する際、従来のSAMLよりもモダンで安定しており、デバッグも容易なプロトコルです。
3つの重要な技術的要素
時間を浪費する「目に見えない」エラーを避けるために、以下の3つの概念を理解しておく必要があります。
- Identity Provider (IdP): Microsoft Entra IDのこと. 本人確認(認証)を担当します。
- OIDC (OpenID Connect): OAuth 2.0上で動作するIDレイヤー。vCenterはバージョン7.0 Update 1からこのプロトコルをスムーズにサポートしています。
- DNSとNTP: vCenterは必ずMicrosoftのドメインを解決でき、かつ正確に時刻同期されている必要があります。5分以上の時刻のズレがあると、OIDCは即座に接続を拒否します。
実践:3ステップの設定手順
ステップ1:Microsoft Entra ID(Azure Portal)での設定
vCenterがAzureからデータを照会できるように、アプリの登録(App Registration)を行う必要があります。
- Azure Portalにアクセスし、Microsoft Entra IDに移動します。
- アプリの登録 (App registrations) > 新規登録 (New registration) を選択します。
vCenter-SSO-OIDCのような分かりやすい名前を付けます。- リダイレクト URI (Redirect URI) で Web を選択し、
https://vcenter-fqdn.example.com/admin/signin/callbackの形式で入力します。
※注意:vcenter-fqdn.example.com は実際のデバイスのFQDNに置き換えてください。1文字でも間違えると、Redirect Mismatchエラーが発生します。
アプリケーション (クライアント) ID と ディレクトリ (テナント) ID を一時ファイルに保存してください。次に、証明書とシークレット (Certificates & secrets) で新しいシークレットを作成します。シークレットの値は一度しか表示されないため、すぐにコピーしてください。
最後に、API のアクセス許可 (API permissions) で、以下のMicrosoft Graphの権限を付与します:openid、profile、email、および GroupMember.Read.All。組織全体に権限を有効化するために、管理者の同意を与えます (Grant admin consent) をクリックするのを忘れないでください。
ステップ2:vCenterでのIDプロバイダー設定
[email protected] 権限で vSphere Client インターフェースにログインします。
- 管理 (Administration) > シングルサインオン (Single Sign On) > 設定 (Configuration) に移動します。
- 識別子ソース (Identity Sources) タブで 追加 (ADD) をクリックし、タイプとして Microsoft Entra ID を選択します。
ステップ1で用意したパラメータを入力します。通常、テナントIDを正しく入力すれば、vCenterはエンドポイントを自動的に認識します。タイムアウトエラーが発生する場合は、ファイアウォールがvCenterのインターネットアクセス(ポート443)をブロックしていないか確認してください。
ステップ3:グループベースの権限割り当て
接続の成功は始まりに過ぎません。Azure上のどのユーザーグループに仮想化システムの管理権限を与えるかを定義する必要があります。
- Azure上でセキュリティグループ(例:
vCenter-Admins)を作成し、そのグループの オブジェクト ID (Object ID) を取得します。 - vCenterで、管理 (Administration) > アクセス制御 (Access Control) > グローバル権限 (Global Permissions) に進みます。
- 追加 (Add) をクリックし、ドメインとして新しいIDプロバイダーを選択します。検索ボックスにオブジェクトIDを貼り付け、管理者 (Administrator) ロールを割り当てます。
実戦経験とトラブルシューティング
実際の導入過程で、3つの重要な教訓を得ました:
NTPを優先する: 時刻を軽視しないでください。トークンの期限切れを防ぐため、vCenterを信頼できるNTPサーバー(pool.ntp.orgや内部のドメインコントローラーなど)に同期させてください。
常にバックドアを残す: [email protected] アカウントは絶対に無効化しないでください。インターネット回線の切断やAzureのグローバルな障害が発生した際、これが唯一の救いとなります。
ログを確認する: 設定が正しいのにログインできない場合は、vCenterにSSHで接続してください。以下のコマンドを実行して、リアルタイムでログを監視します:tail -f /var/log/vmware/sso/ssoAdminServer.log。シークレットやAPI権限に関するエラーは、ここで明確に確認できます。
結論
vCenterとMicrosoft Entra IDの統合は、MFA(多要素認証)の活用によりセキュリティを大幅に向上させます。システムがよりプロフェッショナルになるだけでなく、ITチームの人事管理負担も軽減されます。皆さんの導入が成功することを願っています!

