LDAPS の使用

このページでは、Managed Service for Microsoft Active Directory(マネージド Microsoft AD)で LDAP over SSL/TLS(LDAPS)を有効にして、LDAP トラフィックの機密性と安全性を高める方法について説明します。デフォルトでは、マネージド Microsoft AD とクライアント アプリケーション間の通信は、単純な LDAP バインドでは暗号化されません。

LDAPS を有効にするには、証明書が必要です。このページでは、必要な証明書の仕様と証明書の検証およびモニタリングの方法についても説明します。

証明書をリクエスト

Public Certificate Authority(CA)、Enterprise CA、Google Cloud Certificate Authority Service から証明書をリクエストするか、自己署名証明書を使用できます。Windows、OpenSSL、MakeCert では、New-SelfSignedCertificate コマンドを使用して自己署名証明書を作成できます。

証明書の要件

証明書は以下の要件を満たしている必要があります。

  • サブジェクト名: アップグレードや復元時にサービスの可用性を維持するために、マネージド Microsoft AD ドメインのワイルドカードが前に付いた名前にする必要があります。これは、ドメイン コントローラーがアップグレードや復元中に変更されるランダムな名前を使用するためです。たとえば、ドメイン名が ad.mycompany.com の場合、サブジェクト名は CN=*.ad.mycompany.com にする必要があります。

  • サブジェクト代替名(DNS 名または SAN): 次のもののみを含める必要があります。

    • Managed Microsoft AD ドメインのワイルドカード名
    • Managed Microsoft AD のドメイン名。

    例: "CN=*.ad.mycompany.com","CN=.ad.mycompany.com"

  • KeySpec: デジタル署名と鍵交換の両方に使用できることを示す「1」に設定する必要があります。

  • KeyLength: 最小鍵サイズは、暗号アルゴリズムによって異なります。

    • RSA: 2,048 ビット以上
    • ECDSA: 256 ビット以上
    • ED25519: 512 ビット(固定長)
  • KeyUsage: 「デジタル署名」と「鍵による暗号化」を含める必要があります。

  • EnhancedKeyUsageExtension: サーバー認証には OID=1.3.6.1.5.5.7.3.1 が必要です。

  • NotBefore: 証明書の有効になる時間。LDAPS を有効にする場合は、証明書が有効である必要があります。

  • NotAfter: 証明書が有効でなくなる時間。LDAPS を有効にする場合は、証明書が有効である必要があります。

  • 発行チェーン: 証明書チェーン全体をアップロードして、有効にする必要があります。チェーンは線形でなければならず、複数のチェーンを含めることはできません。

  • 署名アルゴリズム: SHA-1、MD2、MD5 などの弱い署名アルゴリズムはサポートされていません。

  • 証明書の形式: 形式は Public-Key Cryptography Standards(PKCS)#12 に準拠している必要があります。PFX ファイルを使用する必要があります。

Public CA または Enterprise CA からリクエストする

Public CA または Enterprise CA から証明書をリクエストするには、こちらの手順を行ってください。

リクエストが生成されたものと同じ VM で証明書を受け入れます。

証明書を PKCS #12 形式でエクスポートする

証明書を PKCS #12 形式(PFX ファイルとして)でエクスポートするには、次の手順を行います。

  1. Windows では、Microsoft 管理コンソール(MMC)で証明書に移動します。

  2. [ローカル コンピュータ証明書] を展開し、[個人用] > [証明書] に移動します。

  3. 作成した証明書を右クリックして LDAPS を有効にし、[すべてのタスク] > [エクスポート] を選択します。

  4. 表示される [証明書のエクスポート ウィザード] ダイアログで、[次へ] をクリックします。

  5. [秘密鍵をエクスポート] ページで、[はい] を選択して秘密鍵をエクスポートします。

  6. アプリケーションの [エクスポート ファイル フォーマット] ページで、[Personal Information Exchange - PKCS #12(.PFX)] を選択し、可能であれば、認証パスにすべての証明書を含めます。[次へ] をクリックします。

  7. [セキュリティ] ページで [パスワード] チェックボックスをオンにして、証明書を保護するための強力なパスワードを入力します。[次へ] をクリックします。このパスワードは、Managed Microsoft AD ドメインで LDAPS を構成するときに必要です。

  8. [File to Export] ページで、エクスポートする PFX ファイルの宛先の名前とパスを入力します。[次へ] をクリックします。

  9. [完了] をクリックします。

クライアント コンピュータへの発行元チェーンをエクスポートする

LDAPS が機能するためには、すべてのクライアント コンピュータが LDAPS 証明書の発行元を信頼する必要があります。よく知られている Public CA の場合、クライアント コンピュータによって発行元チェーンがすでに信頼されている場合があります。チェーンが信頼されていない場合は、次の手順で発行元チェーンをエクスポートします。

  1. Windows では、Microsoft 管理コンソール(MMC)で証明書に移動します。

  2. [ローカル コンピュータ証明書] を展開し、[個人用] > [証明書] に移動します。LDAPS 証明書をダブルクリックします。

  3. [証明書] ウィンドウで、[証明書パス] タブをクリックします。

  4. [証明書のパス] タブで、パスのルート証明書を選択します。

  5. [証明書を表示] をクリックします。

  6. [詳細] タブをクリックし、[ファイルにコピー] をクリックします。

  7. 表示される [証明書のエクスポート ウィザード] ダイアログで、[Base-64 encoded X.509] を選択して [次へ] をクリックします。

  8. 証明書チェーンのファイル名と場所を選択し、[完了] をクリックします。

  9. LDAPS 接続を確立するクライアント コンピュータに証明書をコピーするには、[証明書のインポート ウィザード] ダイアログを使用して、「ローカルマシン」ストアに証明書をインポートします。また、Windows のグループ ポリシーを使用してクライアント コンピュータに発行元の証明書チェーンを配布することもできます。

Managed Microsoft AD ドメインで LDAPS を有効にする

Managed Microsoft AD ドメインで LDAPS を有効にするには、次の手順を行います。

  1. 次のいずれかの IAM ロールがあることを確認します。

    • Google Cloud Managed Identities 管理者(roles/managedidentities.admin
    • Google Cloud Managed Identities ドメイン管理者(roles/managedidentities.domainAdmin

    マネージド Microsoft AD の IAM ロールの詳細については、アクセス制御をご覧ください。

  2. 次の gcloud CLI コマンドを実行します。

   gcloud active-directory domains update-ldaps-settings DOMAIN_NAME 
--certificate-pfx-file=PFX_FILENAME
--certificate-password=PASSWORD

以下を置き換えます。

  • DOMAIN_NAME: マネージド Microsoft AD ドメインの完全なリソース名。完全なリソース名の形式: projects/PROJECT_ID/locations/global/domains/DOMAIN_NAME
  • PFX_FILENAME: LDAPS の構成に使用する証明書チェーンを指定する PKCS #12 形式の PFX ファイル。
  • PASSWORD: PKCS #12 証明書の暗号化に使用するパスワード。パスワードを指定しない場合、コマンドの実行中にパスワードの入力を求められます。

LDAPS を検証する

LDAPS バインドを実行して、LDAPS が有効になっていることを確認できます。このプロセスでは、LDP.exe を使用します。これは、VM をドメインに参加させる際にインストールする RSAT ツールの 1 つです。

ドメインに参加している Google Cloud Windows VM で、PowerShell で次の手順を行います。

  1. PowerShell で LDP.exe を起動し、[Connection] > [Connect] に移動します。

  2. [Connect] ダイアログで、次の手順を行います。

    1. [サーバー] フィールドにドメイン名を入力します。
    2. [ポート] フィールドに、「636」と入力します。
    3. [SSL] チェックボックスをオンにします。
    4. [OK] をクリックします。

    LDAPS が正しく有効になっている場合、接続は成功します。

証明書をモニタリングする

証明書チェーンの有効期間(TTL)は、Cloud Monitoring で確認できます。cert_ttl 指標は、有効期限が最も早いチェーン内の証明書の残りの有効日数を示します。

Metrics Explorer を使用してモニタリング対象リソースの指標を表示する手順は次のとおりです。

  1. Google Cloud Console で、Monitoring の [Metrics Explorer] ページに移動します。
  2. Metrics Explorer に移動

  3. ツールバーで [エクスプローラ] タブを選択します。
  4. [CONFIGURATION] タブを選択します。
  5. [指標を選択] メニューを開いて、フィルタバーに「LDAPS Certificate TTL」と入力し、サブメニューを使用して特定のリソースタイプと指標を選択します。
    1. [アクティブなリソース] メニューで、[Microsoft Active Directory ドメイン] を選択します。
    2. [有効な指標カテゴリ] メニューで、[Microsoft_ad] を選択します。
    3. [有効な指標] メニューで、[LDAPS Certificate TTL] を選択します。
    4. [適用] をクリックします。
  6. 省略可: データの表示方法を構成するには、フィルタを追加し、[Group By]、[Aggregator]、グラフタイプの各メニューを使用します。たとえば、リソースラベルや指標ラベルごとにグループ化できます。詳細については、Metrics Explorer 使用時の指標の選択をご覧ください。
  7. 省略可: グラフの設定を変更します。
    • 割り当てと、1 日に 1 つのサンプルを報告するその他の指標については、期間を 1 週間以上に設定し、プロットタイプを [積み上げ棒グラフ] に設定します。
    • 分布値の指標の場合、グラフの種類を [ヒートマップ グラフ] に設定します。

Query Editor を使用して、こうした指標を見つけることもできます。

  1. [指標] タブで [Query Editor] を選択します。

  2. Query Editor のテキスト フィールドに、次の MQL クエリを入力し、[クエリを実行] を選択します。

    fetch microsoft_ad_domain
    | metric 'managedidentities.googleapis.com/microsoft_ad/domain/ldaps/cert_ttl'
    | group_by 1m, [value_cert_ttl_mean: mean(value.cert_ttl)]
    | every 1m
    | group_by [resource.fqdn], [value_cert_ttl_mean_aggregate: aggregate(value_cert_ttl_mean)]
    

LDAPS を無効にする

LDAPS を無効にするには、次の gcloud CLI コマンドを実行します。

gcloud active-directory domains update-ldaps-settings DOMAIN_NAME \
     --clear-ldaps-certificate

DOMAIN_NAME は、マネージド Microsoft AD ドメインの完全なリソース名に置き換えます。完全なリソース名の形式: projects/PROJECT_ID/locations/global/domains/DOMAIN_NAME