4. LDAP クライアントをセキュア LDAP サービスに接続する

この記事の手順に沿って、LDAP クライアントをセキュア LDAP サービスに接続します。

重要:

  • ベンダーのドキュメントを必ずお読みください
    この記事に記載されている LDAP クライアントをセキュア LDAP サービスに接続する手順は参考用であり、変更される可能性があります。これらのヘルプの手順に加えて、クライアントをセキュア LDAP サービスに接続するための最新の手順については、ベンダーのドキュメントも必ずお読みください。
  • 始める前に
    これらの手順を使用する前に、クライアントをセキュア LDAP サービスに追加し、アクセス権限を構成し、クライアント証明書と鍵をダウンロードし、必要に応じてアクセス認証情報を作成していることを確認してください。
  • 接続テスト
    必要に応じて、これらの手順を開始する前に、ldapsearch、ADSI、ldp.exe などのシンプルなツールを使用して、簡単な接続テストを行うことができます。これらのツールは、LDAP クライアントをサービスに接続しようとしたときにエラーが発生した場合のトラブルシューティングにも使用できます。手順については、セキュア LDAP 接続のテストをご覧ください。
  • 設定手順を完了する方法
    このページの手順に沿って LDAP クライアントを接続したら、Google 管理コンソールでサービスのステータスを [オン] に切り替えて、LDAP クライアントの設定を完了する必要があります。手順については、5. LDAP クライアントを [オン] に切り替えます。

この記事の内容

この記事は、以下の項目で構成されています。

この手順では、ダウンロードするクライアント鍵ファイルと証明書ファイルの名前が ldap-client.key と ldap-client.crt であることを前提としています。

基本的な構成手順

このセクションでは、LDAP クライアントをセキュア LDAP サービスに接続するための一般的な手順について説明します。LDAP クライアントが以下の手順に記載されていない場合は、そのアプリケーションのドキュメントを参照してください。

注: Atlassian Jira や SSSD などの特定の LDAP クライアントは、ユーザー認証中にユーザー ルックアップを実行して、ユーザーに関する詳細情報を取得します。このような LDAP クライアントでユーザー認証が正しく機能するようにするには、[ユーザー認証情報を確認する] がオンになっているすべての組織部門で [ユーザー情報を読み取る] をオンにする必要があります。(手順については、アクセス権限を構成するをご覧ください)。

LDAP クライアントをセキュア LDAP サービスに接続するには:

  1. Cloud Directory を使用して、LDAP クライアントを LDAP サーバーとして設定します。
  2. LDAP クライアントに証明書をアップロードします。

    Secure LDAP サービスは、TLS クライアント証明書を主な認証メカニズムとして使用します。証明書を LDAP クライアントにアップロードするプロセスを開始するには、LDAP クライアントの認証設定またはディレクトリ設定を開き、下の表の詳細を入力します。

    注: TLS 証明書をアップロードする方法と場所の詳細については、ベンダーのドキュメントをご覧ください。

基本的な接続情報については、次の表をご確認ください。

Hostname

ldap.google.com

ポート

StartTLS を有効にした LDAP の場合は 389
LDAPS(SSL、TLS 対応)の場合は 636

Base DN

DN 形式のドメイン。以下に例を示します。

example.com の場合は dc=example,dc=com

ユーザー名とパスワード

証明書による認証に加えて、一部の LDAP クライアントではユーザー名とパスワードを入力する必要があります。ユーザー名とパスワードのフィールドが必須でない場合は、この手順をスキップできます。

Google 管理コンソールでユーザー名とパスワードを生成します。手順については、アクセス認証情報を生成するをご覧ください。

クライアント証明書と鍵ファイル

Google 管理コンソールからダウンロードした証明書とキーファイルを使用します。LDAP クライアントにクライアント証明書で認証する方法がない場合は、stunnel をプロキシとして使用するをご覧ください。

重要: Apache Directory Studio などの一部の LDAP クライアントは、デジタル証明書のアップロードをサポートしていません。この場合の対応方法については、stunnel をプロキシとして使用するをご覧ください。

特定の LDAP クライアントの構成手順

ADSI エディター(Windows)

手順は次のとおりです。

  1. ldp.exe(Windows)の手順 1 ~ 11 に沿って、クライアント証明書をインストールします。
  2. [操作] > [接続先] に移動します。
  3. 次の接続設定を入力します。

    名前: 接続の名前(例:Google LDAP)を入力します。
    接続ポイント: [Select or type a Distinguished Name or Naming Context](識別名または命名コンテキストを選択または入力)
    ドメイン名を DN 形式で入力します(例: example.com の場合は dc=example,dc=com)。

    コンピュータ: [ドメインまたはサーバーを選択または入力]
    ldap.google.com

    SSL ベースの暗号化を使用する: チェック済み
  4. [詳細...] をクリックし、次の詳細情報を入力します。

    認証情報を指定: オン
    ユーザー名: 管理コンソールのアクセス認証情報のユーザー名
    パスワード: 管理コンソールのアクセス認証情報のパスワード
    ポート番号: 636
    プロトコル: LDAP
    シンプル バインド認証: オン
  5. [OK] をクリックし、再度 [OK] をクリックします。
  6. 接続に成功すると、ベース DN の Active Directory の内容が右側のパネルに表示されます。

Apache Directory Studio

Apache Directory Studio を使用するには、stunnel を介して接続し、Google 管理コンソールで生成されたアクセス認証情報(ユーザー名とパスワード)を使用します。認証情報が設定済みで、stunnel が localhost ポート 1389 でリッスンしていると仮定して、次の手順を行います。

  1. [File] > [New…] をクリックします。
  2. [LDAP Browser] > [LDAP Connection] を選択します。
  3. [次へ] をクリックします。
  4. 接続パラメータを入力します。

    接続名: Google LDAP などの名前を選択します。
    ホスト名: localhost
    ポート: 1389(または stunnel のリッスン/受け入れポート)
    暗号化方式: 暗号化なし(注: stunnel がリモートで実行されている場合は、stunnel とクライアント間の暗号化をおすすめします)。
  5. [次へ] をクリックします。
  6. 認証パラメータを入力します。

    認証方法: Simple Authentication
    バインド DN またはユーザー: 管理コンソールのアクセス認証情報のユーザー名
    バインド パスワード: 管理コンソールのアクセス認証情報のパスワード
  7. [次へ] をクリックします。
  8. ベース DN を入力します。
    これは、DN 形式のドメイン名です(example.com の場合は dc=example,dc=com)。
  9. [完了] をクリックします。

Atlassian Jira

Atlassian Jira は、ユーザー認証時にユーザー ルックアップを実行して、ユーザーに関する詳細情報を取得します。この LDAP クライアントでユーザー認証が正しく機能するようにするには、[ユーザー認証情報を確認する] がオンになっているすべての組織部門で、[ユーザー情報を読み取る] と [グループ情報を読み取る] をオンにする必要があります。(手順については、アクセス権限を設定するをご覧ください)。

重要: 以下の手順を使用すると、keystorePassword がユーザーとログファイルに公開される可能性があります。ローカルシェル、ログファイル、Google 管理コンソールへの不正アクセスを防ぐための対策を講じます。次の手順の代わりに、stunnel4 メソッドを使用します(省略可: stunnel をプロキシとして使用するをご覧ください)。

注: 次の手順は、Jira が /opt/atlassian/jira にインストールされていることを前提としています。

Atlassian Jira クライアントをセキュア LDAP サービスに接続するには:

  1. 証明書とキーを Jira サーバーにコピーします(これは、LDAP クライアントをセキュア LDAP サービスに追加する際に Google 管理コンソールで生成される証明書です)。

    例:
    $ scp ldap-client.key user@jira-server:
  2. 証明書とキーを Java キーストア形式に変換します。この操作中に、何度かパスワードを入力することになります。作業を簡素化するためには、安全なパスワードを選び、入力を求められたら毎回同じパスワードを使用してください。

    $ openssl pkcs12 -export -out jira-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key

    $ sudo /opt/atlassian/jira/jre/bin/keytool -v -importkeystore -srckeystore jira-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore /opt/atlassian/jira/jira-ldap.jks -deststoretype JKS

  3. 新たに作成したキーストアを使用するように Jira を設定します。こちらの手順に沿ってオプションを追加します。

    "-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password"

    Linux の場合:
    1. /opt/atlassian/jira/bin/setenv.sh を編集します。
    2. JVM_SUPPORT_RECOMMENDED_ARGS 設定を探します。
    3. 「-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password」を追加します。ここで、「password」は上記で選択したパスワードに置き換えます。
  4. Jira を再起動します。

    $ /opt/atlassian/jira/bin/stop-jira.sh
    $ /opt/atlassian/jira/bin/start-jira.sh

  5. Jira ウェブ インターフェースに管理者としてログインします。
    1. [設定] > [ユーザー管理] に移動します。(設定には、右上の歯車アイコンからアクセスします)。
    2. [User Directories] をクリックします。
    3. [ディレクトリを追加] をクリックします。
    4. タイプとして [LDAP] を選択します。
    5. [次へ] をクリックします。
  6. 次のように入力します。

    Name

    Google Secure LDAP

    Directory type

    OpenLDAP

    Hostname

    ldap.google.com

    Port

    636

    Use SSL

    オン

    ユーザー名

    Google 管理コンソールでユーザー名とパスワードを生成します。手順については、アクセス認証情報を生成するをご覧ください。

    パスワード

    Google 管理コンソールでユーザー名とパスワードを生成します。手順については、アクセス認証情報を生成するをご覧ください。

    Base DN

    DN 形式のドメイン名(例: example.com の場合は dc=example,dc=com)

    Additional User DN

    省略可。"ou=Users"

    Additional Group DN

    省略可。"ou=Groups"

    LDAP Permissions

    Read only

    Advanced Settings

    変更なし

    User Schema Settings >
    User Name Attribute

    googleUid

    User Schema Settings >
    User Name RDN Attribute

    uid

    Group Schema Settings >
    Group Object Class

    groupOfNames

    Group Schema Settings >
    Group Object Filter

    (objectClass=groupOfNames)

    Membership Schema Settings >
    Group Members Attribute

    member

    Membership Schema Settings >
    Use the User Membership Attribute

    オン
  7. グループに役割を割り当てます。

    Atlassian Jira でユーザーがログインできるようにするには、そのユーザーが Jira へのアクセス権が付与されたグループのメンバーである必要があります。

    グループに役割を付与するには:
    1. [設定] > [アプリケーション] > [アプリケーション アクセス] に移動します。
    2. [グループを選択] テキスト ボックスに、Jira へのアクセス権を付与する Google グループの名前を入力します。

CloudBees Core、Jenkins

CloudBees Core をセキュア LDAP サービスに接続する手順については、Configure CloudBees Core with Google's Cloud Identity Secure LDAP をご覧ください。

FreeRadius

手順は次のとおりです。

  1. /etc/freeradius/3.0/ に FreeRADIUS をインストールして構成します。

    FreeRADIUS をインストールしたら、freeradius-ldap プラグインをインストールして LDAP 設定を追加できます。

    $ sudo apt-get install freeradius freeradius-ldap
  2. LDAP クライアントの鍵ファイルと証明書ファイルを、それぞれ /etc/freeradius/3.0/certs/ldap-client.key と /etc/freeradius/3.0/certs/ldap-client.crt にコピーします。

    $ chown freeradius:freeradius
    /etc/freeradius/3.0/certs/ldap-client.*
    $ chmod 640 /etc/freeradius/3.0/certs/ldap-client.*

  3. LDAP モジュールを有効にします。

    $ cd /etc/freeradius/3.0/mods-enabled/
    $ ln -s ../mods-available/ldap ldap

  4. /etc/freeradius/3.0/mods-available/ldap を編集します。
    1. ldap->server = 'ldaps://ldap.google.com:636'
    2. identity = アプリケーション認証情報のユーザー名
    3. password = アプリケーション認証情報のパスワード
    4. base_dn = 'dc=domain,dc=com'
    5. tls->start_tls = no
    6. tls->certificate_file = /etc/freeradius/3.0/certs/ldap-client.cer
    7. tls->private_key_file = /etc/freeradius/3.0/certs/ldap-client.key
    8. tls->require_cert = 'allow'
    9. セクション「ldap -> post-auth -> update」を表すブレッドクラム内のすべてのフィールドをコメントアウトします。
  5. /etc/freeradius/3.0/sites-available/default を編集します。
    この編集により FreeRadius クライアント接続が変更されます。デフォルトのクライアントを使用していない場合は、構成した関連クライアント(インナートンネルまたはカスタム クライアント)を必ず更新してください。
    1. authorize セクションを変更して、パスワード認証プロトコル(PAP)ステートメントの後に次のブロックを末尾に追加します。

      if (User-Password) {
      update control {
      Auth-Type := ldap
      }
      }

    2. [authorize] セクションで、LDAP の前の「-」記号を削除して LDAP を有効にします。

      #
      # ldap モジュールは LDAP データベースからパスワードを読み取ります。
      ldap
    3. Auth-Type LDAP ブロックを次のように編集して、authenticate セクションを変更します。

      # Auth-Type LDAP {
      ldap
      # }

    4. Auth-Type PAP ブロックを次のように編集して、authenticate セクションを変更します。

      Auth-Type PAP {
      # pap
      ldap
      }

GitLab

GitLab をセキュア LDAP サービスに接続する手順については、Configure Google Secure LDAP for GitLab をご覧ください。

Itopia、Ubuntu

Itopia または Ubuntu をセキュア LDAP サービスに接続する手順については、Configuring Google Cloud Identity LDAP on Ubuntu 16.04 for user logins をご覧ください。

Ivanti、LanDesk

手順は次のとおりです。

  1. Ivanti Web サーバーで、次の両方のフォルダにあるテキスト エディタで OpenLDAPAuthenticationConfiguration.xml または OpenLDAPSSLAuthenticationConfiguration.xml を開きます。

    C:\ProgramData\LANDesk\ServiceDesk\servicedesk.Framework と C:\ProgramData\LANDesk\ServiceDesk\servicedesk.WebAccess(servicedesk はインスタンス名)
  2. <Server> の値を ldap.google.com に更新します。
  3. <Port> の値を、StartTLS が有効になっているクリアテキストの場合はポート 3268 に、SSL/TLS ポートの場合は 3269 に更新します(デフォルトは、クリアテキスト ポートの場合は 389、SSL/TLS ポートの場合は 636 です)。
  4. <TestDN> の値を DN 形式のドメイン名に設定します。(例: example.com の場合は dc=example,dc=com)。
  5. ..ProgramData\LANDesk\ServiceDesk\ServiceDesk.Framework\tps.config と ..ProgramData\LANDesk\ServiceDesk\WebAccess\tps.config の両方に、次の行を追加します。

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPLogon.OpenLDAPAuthenticationProvider" />

    または次の行を追加します。

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPSSLLogon.OpenLDAPSSLAuthenticationProvider" />
  6. Ivanti の Configuration Center で、必要なインスタンスを開きます。
  7. Service Desk Framework アプリケーションの横にある [Edit] をクリックします。
    Service Desk Framework の [Edit Application] ダイアログが表示されます。
  8. [Configuration parameters] グループの [Logon policy] リストで [Explicit only] を選択し、[OK] をクリックします。
  9. [Web Access] アプリケーションの横にある [編集] をクリックします。
    Web Access の [Edit Application] ダイアログが表示されます。
  10. [構成パラメータ] グループで、[ログオン ポリシー] リストから [明示のみ] を選択し、[OK] をクリックします。

ログイン時には、対応するドメイン ユーザーのネットワーク パスワードを使用します。

LDAP サーバー認証の例外ロギング

LDAP サーバー認証の構成で問題が発生した場合は、例外ロギングを有効にすると、問題の特定に役立ちます。例外ログはデフォルトで無効になっており、調査が終了したら再び無効にすることをおすすめします。

LDAP サーバー認証の例外ロギングを有効にするには:

  1. 該当する認証設定 XML ファイルをテキスト エディタで開きます。

    DirectoryServiceAuthenticationConfiguration.xml、OpenLDAPAuthenticationConfiguration.xml、または OpenLDAPSSLAuthenticationConfiguration.xml
  2. 次の行を変更します。

    <ShowExceptions>false</ShowExceptions>
    を
    <ShowExceptions>true</ShowExceptions>
  3. 変更を保存します。

Ldp.exe(Windows)

手順は次のとおりです。

  1. 証明書ファイルとキーファイルを 1 つの PKCS12 形式のファイルに変換します。コマンド プロンプトで、次のコマンドを入力します。

    macOS または Linux を使用している場合は、次のコマンドを使用します。

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    出力ファイルを暗号化するためのパスワードを入力します。

    Windows の場合は、次のコマンドを使用します。

    $ certutil -mergepfx ldap-client.crt ldap-client.p12

    重要: 2 つのファイル(<CERT_FILE>.crt と <CERT_FILE>.key)は同じディレクトリに配置する必要があります。また、key と crt の名前が同じ(拡張子は異なる)であることを確認します。この例では、ldap-client.crt と ldap-client.key という名前を使用します。

  2. [コントロール パネル] に移動します。
  3. 検索ボックスで「証明書」を検索し、[ユーザー証明書を管理] をクリックします。
  4. [操作] > [すべてのタスク] > [インポート] に移動します。
  5. [現在のユーザー] を選択し、[次へ] をクリックします。
  6. [参照] をクリックします。
  7. ダイアログ ボックスの右下にあるファイル形式のプルダウン メニューから、[Personal Information Exchange (*.pfx;*.p12)] を選択します。
  8. ステップ 2 で作成した ldap-client.p12 ファイルを選択し、[開く] をクリックして、[次へ] をクリックします。
  9. 手順 2 で入力したパスワードを入力し、[次へ] をクリックします。
  10. [個人] 証明書ストアを選択し、[次へ]、[完了] の順にクリックします。
  11. Ldp.exe を実行します。
  12. [Connection] > [Connect...] に移動します。
  13. 次の接続の詳細を入力します。

    サーバー: ldap.google.com
    ポート: 636
    接続なし: オフ
    SSL: オン
  14. [OK] をクリックします。
  15. [表示]> [ツリー] を選択します。
  16. ベース DN を入力します。これは DN 形式のドメイン名です(例: example.com の場合は dc=example,dc=com)。
  17. [OK] をクリックします。
  18. 接続に成功すると、LDP.exe の右パネルに Active Directory の内容(ベース DN に存在するすべての属性など)が表示されます。

Netgate、pfSense

Netgate/pfSense をセキュア LDAP サービスに接続する手順については、Configuring Google Cloud Identity as an Authentication Source をご覧ください。

OpenLDAP / ldapsearch(Linux)

コマンドラインから LDAP ディレクトリにアクセスするには、OpenLDAP の ldapsearch コマンドを使用します。

クライアント証明書と鍵ファイルが ldap-client.crt と ldap-client.key、ドメインが example.com、ユーザー名が jsmith であるとします。

$ LDAPTLS_CERT=ldap-client.crt LDAPTLS_KEY=ldap-client.key ldapsearch -H ldaps://ldap.google.com -b dc=example,dc=com '(uid=jsmith)'

これにより、関連する環境変数がクライアント キーを参照するように設定されます。ldapsearch の他のオプションを、必要なフィルタや属性などで置き換えることができます。その他の詳細については、ldapsearch のマニュアル ページ(「man ldapsearch」)をご覧ください。

ldapsearch(macOS)

手順は次のとおりです。

  1. 証明書ファイルとキーファイルを 1 つの PKCS12 形式のファイルに変換します。コマンド プロンプトで、次のコマンドを入力します。

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    パスワードを入力して、出力ファイルを暗号化します。
  2. メニューバーの右上にある をクリックし、「キーチェーン アクセス」と入力します。
  3. Keychain Access アプリケーションを開き、左側のリストから [システム] をクリックします。
  4. 左上のメニューバーで [File] オプションをクリックし、[Import Items] を選択します。
  5. 生成された ldap-client.p12 がある場所に移動し、ldap-client.p12 を選択して [開く] をクリックします。
    要求された場合は、パスワードを入力します。
    [システム キーチェーン] の証明書リストに、[LDAP Client] という名前の証明書が表示されます。
  6. LDAP Client 証明書の横にある矢印をクリックします。その下に秘密鍵が表示されます。
    1. 秘密鍵をダブルクリックします。
    2. ダイアログ ボックスで [アクセス制御] タブを選択し、左下にある [+] をクリックします。
    3. 開いたウィンドウで Command+Shift+G を入力して新しいウィンドウを開き、既存のテキストを /usr/bin/ldapsearch に置き換えます。

    4. [Go] をクリックします。

      ウィンドウが開き、ldapsearch がハイライト表示されています。

    5. [追加] をクリックします。

    6. [変更を保存] をクリックします。プロンプトが表示されたら、パスワードを入力します。

      これで、コマンドラインから OpenLDAP ldapsearch コマンドを使用して LDAP ディレクトリにアクセスできるようになりました。

  7. 以前にキーチェーンにインポートした ldap-client.p12 ファイルの名前が LDAP Client、ドメインが example.com、ユーザー名が jsmith であると仮定すると、次のように入力します。

    $ LDAPTLS_IDENTITY="LDAP Client" ldapsearch -H ldaps://ldap.google.com:636 -b dc=example,dc=com '(uid=jsmith)'

このコマンドを実行すると、関連する環境変数が、読み込まれたクライアント証明書を参照するようになります。ldapsearch の他のオプションを、必要なフィルタや属性などで置き換えることができます。その他の詳細については、ldapsearch のマニュアル ページ(「man ldapsearch」)を参照してください。

OpenVPN(コミュニティ バージョン)

手順は次のとおりです。

  1. 必要に応じて、OpenVPN をインストールして設定します。インストール済みの場合は、OpenVPN の設定ページを開きます。

    VPN の一般的な設定については、このヘルプ記事には記載していません。VPN の設定が済むと、LDAP 経由でユーザー認証と承認を追加できます。特に、openvpn-auth-ldap プラグインをインストールする必要があります。

    $ sudo apt-get install openvpn openvpn-auth-ldap
  2. LDAP クライアントの鍵ファイルと証明書ファイルを /etc/openvpn/ldap-client.key と /etc/openvpn/ldap-client.crt にコピーします。
  3. 次の内容を含むファイル /etc/openvpn/auth-ldap.conf を作成します(example.com はドメイン名とします)。

    <LDAP>
    URL ldaps://ldap.google.com:636 #
    Timeout 15
    TLSEnable false
    TLSCACertDir /etc/ssl/certs
    TLSCertFile /etc/openvpn/ldap-client.crt
    TLSKeyFile /etc/openvpn/ldap-client.key
    </LDAP>
    <Authorization>
    BaseDN "dc=example,dc=com"
    SearchFilter "(uid=%u)" # (or choose your own LDAP filter for users)
    RequireGroup false
    </Authorization>

  4. OpenVPN 構成ファイルを編集します。ほとんどは /etc/openvpn/server.conf のようなファイル名です。ファイルの最後に次の行を追加します。

    plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth-ldap.conf
    verify-client-cert optional

  5. OpenVPN サーバーを再起動します。

    $ sudo systemctl restart openvpn@server
  6. ユーザーのユーザー名とパスワードを使用するように VPN クライアントを構成します。たとえば、OpenVPN クライアント構成で、OpenVPN クライアント構成ファイルの末尾に auth-user-pass を追加して、OpenVPN クライアントを起動します。

    $ openvpn --config /path/to/client.conf
  7. stunnel をプロキシとして使用するの手順に沿って操作します。

OpenVPN Access Server(商用バージョン)

OpenVPN Access Server をセキュア LDAP サービスに接続する手順については、Configuring Google Secure LDAP with OpenVPN Access Server をご覧ください。

PaperCut MF、NG

PaperCut をセキュア LDAP サービスに接続する手順については、How to sync and authenticate Google Workspace and Google Cloud Identity users in PaperCut をご覧ください。

Puppet Enterprise

Puppet Enterprise をセキュア LDAP サービスに接続する手順については、Google Cloud Directory for PE をご覧ください。

Softerra LDAP Browser

重要: 開始する前に、バージョン番号 4.5(4.5.19808.0)以降の Softerra LDAP Browser がインストールされていることを確認してください。LDAP Browser 4.5 をご覧ください。

手順は次のとおりです。

  1. 証明書ファイルとキーファイルを 1 つの PKCS12 形式のファイルに変換します。コマンド プロンプトで、次のコマンドを入力します。

    macOS または Linux を使用している場合は、次のコマンドを使用します。

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    出力ファイルを暗号化するためのパスワードを入力します。

    Windows の場合は、次のコマンドを使用します。

    $ certutil -mergepfx ldap-client.crt ldap-client.p12

    重要: 2 つのファイル(<CERT_FILE>.crt と <CERT_FILE>.key)は同じディレクトリに配置する必要があります。また、key と crt の名前が同じ(拡張子は異なる)であることを確認します。この例では、ldap-client.crt と ldap-client.key という名前を使用します。

  2. Softerra LDAP Browser で、キーペアをインストールします。
    1. [Tools] > [Certificate Manager] に移動します。
    2. [Import] をクリックします。
    3. [Next] をクリックします。
    4. [Browse] をクリックします。
    5. ダイアログ ボックスの右下にある [ファイルの種類] プルダウン リストで、[Personal Information Exchange(*.pfx;*.p12)] を選択します。
    6. 上述の手順 2 で生成した ldap-client.p12 ファイルを選択します。
    7. [Open]、[Next] の順にクリックします。
    8. 上述の手順 2 のパスワードを入力し、[Next] をクリックします。
    9. [個人] 証明書ストアを選択します。
    10. [次へ] をクリックします。
    11. [完了] をクリックします。
  3. サーバー プロファイルを追加します。
    1. [File] > [New] > [New Profile…] に移動します。
    2. プロファイルの名前を入力します(例: Google LDAP)。
    3. [次へ] をクリックします。

      次のように入力します。

      ホスト: ldap.google.com
      ポート:
      636
      ベース DN: DN 形式のドメイン名。(例: example.com の場合は dc=example,dc=com)
      Use secure connection (SSL): オン
    4. [次へ] をクリックします。
    5. [External (SSL Certificate)] を選択します。
    6. [次へ] をクリックします。
    7. [完了] をクリックします。

Sophos Mobile

Sophos Mobile をセキュア LDAP サービスに接続する手順については、Connecting Sophos Mobile to Google Cloud Identity / Google Cloud Directory using Secure LDAP をご覧ください。

Splunk

Splunk をセキュア LDAP サービスに接続する場合は、必ず Splunk バージョン 8.1.4 以降を使用してください。Splunk バージョン 8.1.3 などの古い Splunk バージョンを使用している場合、LDAP サーバーに過剰な LDAP クエリが送信され、LDAP 割り当てがすぐに使い果たされる可能性があります。Splunk バージョン 8.1.3 の問題の詳細については、Splunk の既知の問題をご覧ください。

手順は次のとおりです。

  1. LDAP クライアント キーのファイルを /home/splunk/splunkadmin/etc/openldap/certs/ldap-client.key、証明書のファイルを /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt にそれぞれコピーします。

    $ cat /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.key > /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

    $ sudo chown $(splunkuser):$(splunkuser) /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

    $ sudo chmod 644 /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

  2. ldap.conf ファイルを編集して、次の設定を追加します。

    ssl start_tls
    TLS_REQCERT never
    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem

  3. ユーザーの /home/splunkadmin/.ldaprc ファイルに次の構成を追加します。

    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

  4. Splunk ウェブ UI を使用して LDAP ストラテジーを追加します。次の詳細情報を入力して、[保存] をクリックします。

名前

Google Secure LDAP

ホスト

ldap.google.com

Port

636

SSL が有効

オン

接続の順序

1

バインド DN

Google 管理コンソールで生成したアクセス認証情報を入力します。

Bind DN password

Google 管理コンソールで生成したアクセス認証情報を入力します。

Base DN

DN 形式のドメイン名(例: ドメイン example.com の場合、dc=example,dc=com)

ユーザーベース フィルタ

ユーザーをフィルタリングする、オブジェクト クラスのユーザーベース フィルタを入力します。

ユーザー名属性

uid

実名属性

displayname

メール属性

mail

グループ マッピング属性

dn

グループ ベース DN

DN 形式のドメイン名(例: ドメイン example.com の場合、ou=Groups,dc=example,dc=com)

静的グループ検索フィルタ

静的グループをフィルタする、オブジェクト クラスの静的グループ検索フィルタを入力します。

グループ名属性

cn

静的メンバー属性

人のメンバー

SSSD(Red Hat Enterprise と CentOS)

SSSD は、より詳細なユーザー情報を取得するために、認証中にユーザーの検索を行います。この LDAP クライアントでユーザー認証が正しく機能するようにするには、[ユーザー認証情報を確認する] がオンになっているすべての組織部門で、[ユーザー情報を読み取る] と [グループ情報を読み取る] をオンにする必要があります。(手順については、アクセス権限を設定するをご覧ください)。

Red Hat 8 または CentOS 8 の SSSD クライアントをセキュア LDAP サービスに接続するには:

  1. SSSD クライアントをセキュア LDAP サービスに追加します。
    1. Google 管理コンソールから、[アプリ] > [LDAP] > [クライアントを追加] に移動します。
      個人用の Gmail アカウントではなく、企業アカウントでログインしてください。
    2. クライアントの詳細を入力し、[続行] をクリックします。
    3. アクセス権限を設定します。
      ユーザー認証情報の確認 - ドメイン全体
      ユーザー情報の読み取り - ドメイン全体
      グループ情報の読み取り - 有効
    4. [LDAP クライアントの追加] をクリックします。
    5. 生成された証明書をダウンロードします。
    6. [クライアントの詳細に進む] をクリックします。
    7. サービスのステータスを [オン] に変更します。
  2. 依存関係をインストールします。

    dnf install openldap-clients sssd-ldap
    install -d --mode=700 --owner=sssd --group=root /etc/sssd/ldap


    証明書の .zip ファイルを解凍し、.crt ファイルと .key ファイルを /etc/sssd/ldap にコピーします。
  3. (省略可)ldapsearch を使用してテストします。

    LDAPTLS_REQCERT=never \
    LDAPTLS_KEY=Google.key \
    LDAPTLS_CERT=Google.crt \
    ldapsearch -H ldaps://ldap.google.com:636/ \
    -b dc=example,dc=com \
    -D usertoverify@example.com \
    -W \
    '(mail=usertoverify@example.com)' \
    mail dn


    プロンプトが表示されたら、ユーザーの Google パスワードを入力します。

    注: ユーザーには Google Workspace Enterprise または Cloud Identity Premium のライセンスが割り当てられている必要があります。

  4. 次の内容の /etc/sssd/sssd.conf ファイルを作成します。

    [sssd]
    services = nss, pam
    domains = example.com

    [domain/example.com]
    ldap_tls_cert = /etc/sssd/ldap/Google.crt
    ldap_tls_key = /etc/sssd/ldap/Google.key
    ldap_tls_reqcert = never
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID

  5. 権限と SELinux ラベルを更新します。

    chown 0:0 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    chmod 600 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    restorecon -FRv /etc/sssd

  6. SSSD を再起動します。

    systemctl restart sssd
  7. 次をテストします。

    ssh でサーバーに接続:

    ssh -l user@example.com {HOSTNAME}

トラブルシューティング

  1. SSSD バージョンを確認します(1.15.2 以上である必要があります)。

    # sssd --version
    2.2.3

  2. RHEL / CentOS(または SELinux が適用された任意のディストリビューション)では、SSSD 構成ファイルおよび証明書ファイルとキーが ssd_conf_t ロールからアクセスできるディレクトリ内に置かれている必要があります。

    # egrep "object_r:sssd_conf_t" /etc/selinux/targeted/contexts/files/file_contexts

    /var/log/audit/audit.log に AVC 拒否メッセージがないか確認します。

  3. /etc/nsswitch.conf の passwd、shadow、group、netgroup エンティティに「sss」が指定されていることを確認します。

    passwd: files sss
    shadow: files sss
    group: files sss
    netgroup: files sss


    ここで、ローカル ファイルは LDAP ユーザーをオーバーライドします。
  4. /var/log/sssd.conf で構成エラーを確認します。

    例:
    [sssd] [sss_ini_add_snippets] (0x0020): Config merge error: File /etc/sssd/sssd.conf did not pass access check. Skipping.

    対応: .conf ファイルの chmod を 600 にする必要があります。

    例:
    [sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Attribute 'ldap_groups_use_matching_rule_in_chain' is not allowed in section 'domain/{ドメイン}'. Check for typos.

    [sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Attribute 'ldap_initgroups_use_matching_rule_in_chain' is not allowed in section 'domain/{ドメイン}'. Check for typos.

    アクション: サポートされていない LDAP グループ照合拡張機能を sssd.conf から削除します。

  5. /var/log/sssd_{ドメイン}.log に LDAP/network/auth エラーがないか確認します。

    例:

    [sssd[be[example.com]]] [sss_ldap_init_sys_connect_done] (0x0020): ldap_install_tls failed: [Connect error] [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed (self signed certificate)]

    アクション: sssd.conf に「ldap_tls_reqcert = never」の記述を追加する必要があります。

    エラーの詳細度を高めるには、ssd.conf のドメイン セクションに「debug_level = 9」の記述を追加して、sssd を再起動します。

SSSD(その他の Linux ディストリビューション)

SSSD は、より詳細なユーザー情報を取得するために、認証中にユーザーの検索を行います。この LDAP クライアントでユーザー認証が正しく機能するようにするには、[ユーザー認証情報を確認する] がオンになっているすべての組織部門で、[ユーザー情報を読み取る] と [グループ情報を読み取る] をオンにする必要があります。(手順については、アクセス権限を設定するをご覧ください)。

SSSD クライアントをセキュア LDAP サービスに接続するには:

  1. SSSD バージョン 1.15.2 以降をインストールします。

    $ sudo apt-get install sssd
  2. クライアント証明書ファイルと鍵ファイルの名前が /var/ldap-client.crt と /var/ldap-client.key で、ドメインが example.com であると仮定して、次のような構成で /etc/sssd/sssd.conf を編集します。


    [sssd]
    services = nss, pam
    domains = example.com

    [domain/example.com]
    ldap_tls_cert = /var/ldap-client.crt
    ldap_tls_key = /var/ldap-client.key
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID
    ldap_groups_use_matching_rule_in_chain = true
    ldap_initgroups_use_matching_rule_in_chain = true

  3. 構成ファイルのオーナー権限と権限を変更します。

    $ sudo chown root:root /etc/sssd/sssd.conf
    $ sudo chmod 600 /etc/sssd/sssd.conf

  4. SSSD を再起動します。

    $ sudo service sssd restart

ヒント: Google Compute Engine で外部 IP アドレスのない Linux コンピュータで SSSD モジュールを使用している場合でも、Google サービスへの内部アクセスが有効になっていれば、Secure LDAP サービスに接続できます。詳細については、プライベート Google アクセスの構成をご覧ください。

macOS

以下の手順に沿って、セキュア LDAP サービスを使用してユーザー アカウント認証用に macOS クライアントを接続します。

システム要件

  • macOS は Catalina バージョン 10.15.4 以降である必要があります。
  • 準備フェーズの手順 1 を完了するには、Google 特権管理者のユーザー ID が必要です。
  • この構成を実行するには、ローカルの管理者権限が必要です。

内容:

準備フェーズ

このセクションでは、セキュア LDAP サービスを使用して macOS 認証を手動で設定、テストする方法について説明します。

ステップ 1: Google 管理コンソールで macOS を LDAP クライアントとしてオンボーディングする

手順については、LDAP クライアントを追加するをご覧ください。または、セキュア LDAP のデモをご覧ください。このプロセスでは、自動生成された TLS クライアント証明書もダウンロードします。

ステップ 2: 証明書をシステム キーチェーンにインポートする

  1. 証明書とキーのファイル(手順 1 でダウンロードした ZIP ファイル)を macOS パソコンにコピーします。
    ヒント: ファイルを解凍して、証明書ファイルと鍵ファイルを見つけます。
  2. キーペアをシステム キーチェーンに読み込みます。
    1. キーと証明書を PKCS 12(.p12)ファイルに変換します。ターミナルで次のコマンドを実行します。

      openssl pkcs12 -export -out ldap-client.p12 -in ldap-client.crt -inkey ldap-client.key

      ヒント: .p12 ファイルの名前を書き留めておきます。

      パスワードを入力するよう求められます。.p12 ファイルを暗号化するためのパスワードを入力します。

    2. キーチェーン アクセス アプリケーションを開きます。

    3. [システム] キーチェーンをクリックします。

    4. [ファイル] > [読み込む] をクリックします。

    5. 上の手順で作成した ldap-client.p12 ファイルを選択します。

    6. システム キーチェーンの変更を許可するための管理者パスワードの入力を求められた場合は、パスワードを入力します。

    7. 上の手順で作成したパスワードを入力して、.p12 ファイルを復号化します。

      注: 新しい証明書と関連付けられた秘密鍵が鍵のリストに表示されます。「LDAP Client」という名前が付いている場合があります。次のステップで使用するため、証明書の名前をメモしておきます。
    8. この記事の ldapsearch(macOS)セクションの手順 6 に沿って、非公開鍵のアクセス制御を設定し、以下のアプリを追加します。[すべての項目] カテゴリに秘密鍵が表示されない場合は、[マイ証明書] カテゴリに切り替えて、対応する証明書を展開して正しい秘密鍵エントリを見つけてください。

      手順で指定されている ldapsearch アプリは、トラブルシューティングが必要な場合にのみ関連性があり、他の目的には使用できません。通常、ユーザーが macOS にアクセスする前に削除されます。

      次の 3 つのアプリをアクセス制御リストに追加する必要があります。

      /System/Library/CoreServices/Applications/Directory Utility
      /usr/libexec/opendirectoryd
      /usr/bin/dscl
  3. /etc/openldap/ldap.conf ファイルに 1 行を追加します。このとき、「LDAP Client」が、.p12 ファイルのインポート後に macOS のキーチェーン アクセス アプリケーションに表示される証明書名と完全に一致していることを確認します(この名前は、生成された証明書の X.509 サブジェクトの一般名に由来します)。

    sudo bash -c 'echo -e "TLS_IDENTITY\tLDAP Client" >> /etc/openldap/ldap.conf'

ステップ 3: 認証のためにデバイスを Google ディレクトリに向ける

ディレクトリ ユーティリティ アプリケーションを開いて、新しい LDAP ディレクトリ ノードを作成します。

  1. カギをクリックして変更を行い、パスワードを入力します。
  2. [LDAPv3] を選択し、鉛筆アイコンをクリックして設定を編集します。
  3. [新規] をクリックします。
  4. サーバー名として「ldap.google.com」と入力し、[SSL を使用して暗号化] を選択して、[手動] をクリックします。
  5. 新しいサーバー名を選択し、[編集] をクリックします。
  6. 構成名には、「Google Secure LDAP」などのわかりやすい名前を入力します。
  7. [SSL を使用して暗号化する] を選択し、ポートが 636 に設定されていることを確認します。
  8. [検索とマッピング] タブに移動します。
    1. [Access this LDAPv3 server using] プルダウン リストから [RFC2307] を選択します。
    2. プロンプトが表示されたら、ドメイン関連の情報を [Search Base Suffix] に入力します。たとえば、ドメイン名が zomato.com の場合は、「dc=zomato,dc=com」と入力します。
    3. [OK] をクリックします。
    4. [Users] レコードタイプで属性を構成します。
      1. [Record Types and Attributes] セクションで [Users] を選択し、[+] ボタンをクリックします。
      2. ポップアップ ウィンドウで [Attribute Types] を選択し、[GeneratedUID] を選択して、[OK] をクリックしてポップアップ ウィンドウを閉じます。

        展開すると、[ユーザー] に GeneratedUID が表示されます。
      3. GeneratedUID をクリックし、右側のボックスにある「+」アイコンをクリックします。
      4. テキスト ボックスに「apple-generateduid」と入力し、[Enter] をクリックします。
      5. [Users] ノードで、[NFSHomeDirectory] 属性をクリックします。
      6. 右側の画面で、この属性の値を #/Users/$uid$ に更新します。
      7. [OK] をクリックしてパスワードを入力し、変更を保存します。
  9. [Directory Utility] ウィンドウで、新しい LDAP 構成を構成します。
    1. [検索ポリシー] タブに移動します。
    2. 鍵アイコンをクリックして変更を行い、メッセージが表示されたら、現在のユーザーのパスワードを入力します。
    3. プルダウン オプションを [Search Path] から [Custom path] に変更します。
    4. [認証] タブを開き、[+] アイコンをクリックします。
    5. [ディレクトリ ドメイン] リストから /LDAPv3/ldap.google.com を選択し、[追加] をクリックします。
    6. [適用] ボタンをクリックし、プロンプトが表示されたら管理者パスワードを入力します。
  10. 以下の 4 つのコマンドを実行して、DIGEST-MD5、CRAM-MD5、NTLM、GSSAPI SASL の各認証メカニズムを無効にします。macOS は Simple Bind を使用して、Google Secure LDAP サービスで認証を行います。

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string DIGEST-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string CRAM-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string NTLM" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string GSSAPI" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

  11. 再起動して OpenDirectory 設定を再読み込みします。

ステップ 4: モバイル アカウントを作成する(オフライン ログインが可能になります)

すべての Google Workspace ユーザーまたは Cloud Identity ユーザーは、自分のユーザー名とパスワードを使用したネットワーク アカウント(Google アカウント)でログインできます。このログイン プロセスにはネットワーク接続が必要です。ネットワーク接続のあるなしにかかわらずユーザーがログインする必要がある場合は、モバイル アカウントを作成できます。モバイル アカウントを使用すると、ネットワークに接続しているかどうかにかかわらず、ネットワーク アカウント(Google アカウント)のユーザー名とパスワードを使用してログインできます。詳しくは、Mac でモバイル アカウントを作成して設定するをご覧ください。

セキュア LDAP ユーザーのモバイル アカウントを作成するには:

  1. 次のコマンドを実行して、セキュア LDAP サーバーに接続し、ホームパスとモバイル アカウントを設定します。

    sudo /System/Library/CoreServices/ManagedClient.app/Contents/Resources/createmobileaccount -n $uid -v

    ヒント: $uid は、ユーザーの Google アカウントに関連付けられているメールアドレスのユーザー名部分に置き換えます。たとえば、jsmith@solarmora.com のユーザー名部分は jsmith です。

  2. SecureToken 管理ユーザー名の入力を求められたら、管理ユーザー名を入力し、次のプロンプトでパスワードを入力します。これにより、FileVault に $uid が追加されます。macOS ディスクが暗号化されている場合は、これが必要です。

ステップ 5:(省略可)ログイン画面の設定を行う

  1. 左下の [システム環境設定] > [ユーザとグループ] > [ログインオプション] に移動します。
  2. 管理者の認証情報を入力してカギを解除します。
  3. [ログイン ウィンドウの表示形式] を [名前とパスワード] に変更します。

ステップ 6: デバイスを再起動してログインする

  1. デバイスがインターネットに接続されていることを確認します。インターネットに接続していない場合、Secure LDAP ユーザーのログインは機能しません。
    注: インターネット接続は初回ログイン時のみ必要です。以降のログインはインターネットにアクセスしなくても行うことができます。
  2. 認証にセキュア LDAP を使用するように構成されているユーザー アカウントでデバイスにログインします。

デプロイ フェーズ

このセクションの手順では、ユーザー向けにデバイス設定を自動化する方法について説明します。準備フェーズで手動構成を完了したのと同じ macOS デバイスで、以下の手順 1 と 2 を実行します。

ステップ 1: Apple Configurator 2 を使用して証明書を含む Mac プロファイルを作成する

  1. セキュア LDAP による macOS 認証を手動で設定したパソコンに、Apple Configurator 2 をインストールします。
  2. Apple Configurator 2 を開き、新しいプロファイルを作成します。次に、[証明書] セクションの [構成] をクリックして、以前に生成した .p12 ファイルを読み込みます。

    注: この .p12 にパスワードが設定されていることを確認してください。このパスワードを証明書の [パスワード] セクションに入力します。

  3. このプロファイルを保存します。
  4. (M1プロセッサ または M2 プロセッサを使用しているデバイスの場合は、この手順をスキップしてステップ 5 に進みます。)任意のテキスト エディタでこのプロファイルを開き、最初の <dict> タグ内に次の行を追加します。

    <key>PayloadScope</key>
    <string>System</string>


    これは Apple Configurator が macOS のプロファイルにまだ対応していないため、必要となります。
  5. 2 番目の <dict> タグ内で、証明書のデータと並行して次の行を追加します。

    <key>AllowAllAppsAccess</key>
    <true/>


    これにより、この証明書にすべてのアプリケーションからアクセスできるようになります。

ステップ 2: ディレクトリ構成ファイル(plist)を xml に変換する

このステップでは、準備フェーズのステップ 3 で完了した手動構成をすべて XML ファイルに抽出します。このファイルと上記の手順 1 で作成した Mac プロファイルを使用して、他の macOS デバイスを自動的に構成できます。

  1. /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist をデスクトップなどにコピーします。
  2. このファイルを XML に変換して、任意のテキスト エディタで確認できるようにします。ターミナルで次のコマンドを実行します。

    sudo plutil -convert xml1 <path>/ldap.google.com.plist

    <path>/ldap.google.com.plist としてファイルにアクセスできます。
  3. XML ファイルを開けるように、上述のファイルの権限を変更します。空のファイルでないことを確認してください。

ステップ 3: エンドユーザーのデバイスで設定を自動化する Python スクリプトを作成する

以下の Python スクリプトをコピーして、Python ファイル(.py ファイル)として保存します。

注: このサンプル スクリプトは、Python バージョン 3.10.x と互換性を持つように設計されています。このスクリプトは現状のまま提供されます。Google サポートでは、サンプル スクリプトのサポートは提供していません。

Ldap_python_config.py

#!/usr/bin/python
from OpenDirectory import ODNode, ODSession, kODNodeTypeConfigure
from Foundation import NSMutableData, NSData

import os
import sys

# Reading plist
GOOGLELDAPCONFIGFILE = open(sys.argv[1], "r")
CONFIG = GOOGLELDAPCONFIGFILE.read()
GOOGLELDAPCONFIGFILE.close()

# Write the plist
od_session = ODSession.defaultSession()
od_conf_node, err = ODNode.nodeWithSession_type_error_(od_session, kODNodeTypeConfigure, None)
request = NSMutableData.dataWithBytes_length_(b' '*32, 32)
request.appendData_(NSData.dataWithBytes_length_(str.encode(CONFIG), len(CONFIG)))
response, err = od_conf_node.customCall_sendData_error_(99991, request, None)

# Edit the default search path and append the new node to allow for login
os.system("dscl -q localhost -append /Search CSPSearchPath /LDAPv3/ldap.google.com")
os.system("bash -c 'echo -e \"TLS_IDENTITY\tLDAP Client\" >> /etc/openldap/ldap.conf' ")

ステップ 4: エンドユーザー デバイスを自動構成する

構成する他の macOS デバイスに移動し、次の手順を行います。

  1. 手順 1 で作成した Mac プロファイル ファイル、手順 2 で作成した XML 構成ファイル、および手順 3 の Python スクリプトをコピーします。
  2. スクリプトに必要な依存関係をインストールするには、次のコマンドを実行します。
    python3 -m pip install pyobjc-framework-opendirectory
  3. 次のコマンドを実行します。
    sudo python </path/to/saved_python_script> </path/to/ldap.google.com.plist generated in step 2>
  4. 証明書を macOS のシステム キーチェーンに読み込むには、手順 1 で作成した Mac プロファイル ファイルをダブルクリックし、画面が表示されたら macOS のローカルの管理者認証情報を入力します。準備フェーズで設定した .p12 パスワードの入力を求めるプロンプトが表示されます。
  5. macOS パソコンを再起動します。
  6. 準備フェーズのステップ 4 の手順に沿ってモバイル アカウントを作成し、必要に応じて準備フェーズのステップ 5 で説明した追加の設定を行います。

制限事項とガイドライン

  • Google の認証情報を使用して macOS にログインするユーザーの場合、Workspace アカウントのユーザー名は macOS ユーザー プロフィールのユーザー ID と異なる必要があります。同じ場合、ログインはブロックされます。
  • ユーザーが Google 認証情報を使用して macOS へのログインを開始したら、Google のウェブサイト(myaccount.google.com や Google 管理コンソールなど)でユーザー パスワードの管理(再設定または復元)を行う必要があります。サードパーティ製ソリューションを使用してパスワードを管理する場合は、最新のパスワードが Google と同期されていることを確認してください。
  • 管理者が新しいユーザーを作成するか、[次回ログイン時にパスワードの変更を要求する] 設定をオンにして既存のユーザーのパスワードをリセットした場合、ユーザーは管理者が設定した仮パスワードを使用して Mac にログインできません。
    回避策: 別のデバイス(モバイル デバイスや別のデスクトップ デバイスなど)を使用して Google にログインし、永続的なパスワードを設定してから、新しいパスワードを使用して macOS にログインします。
  • 上記の構成後の初回ログイン時に ldap.google.com にアクセスできるように、Mac がインターネットに接続されている必要があります。モバイル アカウントを設定したのであれば、以降のログインでインターネット アクセスは必要ありません。
  • Google セキュア LDAP と macOS の統合は、macOS Catalina、Big Sur、Monterey でテストされています。

トラブルシューティング

セキュア LDAP サービスへの接続に問題がある場合は、以下の手順を実施してください。

ステップ 1: 接続を確認します。

odutil を使用して接続を確認する
ターミナルで odutil show nodenames コマンドを実行します。
/LDAPv3/ldap.google.com のステータスが online であることを確認します。オンラインでない場合は、telnet オプションを試してみてください。

nc を使用して接続を確認する
ターミナルで次のコマンドを実行します。nc -zv ldap.google.com 636
この方法で Google に接続できない場合は、IPv4 を使用して接続してみてください。

IPv4 を使用して接続を確認する
デバイスで IPv4 を使用するように設定を変更する手順は次のとおりです。

  1. [システム環境設定] > [ネットワーク] > [Wi-Fi] > [詳細] に移動します。
  2. [詳細] メニューの [TCP/IP] タブに移動します。
  3. プルダウン選択を [IPv6 を構成する] から [リンクローカルのみ] に変更します。
  4. [OK] をクリックし、[適用] をクリックして変更を保存します。
  5. ldapsearch 接続と有効な検索を介してサービス認証を確認します。

ステップ 2: ディレクトリ オブジェクトを表示できるかどうかを確認します。

  1. ディレクトリ ユーティリティを開き、[ディレクトリ エディタ] タブを開きます。
  2. プルダウン リストで /LDAPv3/ldap.google.com ノードを選択します。
  3. Google ドメインのユーザーとグループを表示できるかどうかを確認します。

Java アプリケーションの構成手順

LDAP 機能を提供するほとんどの Java ベースのアプリケーションは、アプリケーションのキーストアにクライアント証明書をインストールすることで、クライアント証明書で認証するように構成できます。構成ファイルはアプリケーションによって異なりますが、プロセスは一般的に似ています。セットアップには、OpenSSL と Java Runtime Environment がインストールされている必要があります。

  1. 証明書とキーを Java キーストア形式に変換します。このプロセス全体でパスワードの入力を求められます。安全なパスワードを選択し、すべてのプロンプトで同じパスワードを使用します。クライアント鍵ファイルの名前が ldap-client.key であるとします。

    macOS または Linux を使用している場合は、次のコマンドを使用します。

    $  openssl pkcs12 -export -out java-application-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key
    

    Windows の場合は、次のコマンドを使用します。

    $  certutil -mergepfx ldap-client.crt java-application-ldap.pkcs12
    

    重要: 2 つのファイル(<CERT_FILE>.crt と <CERT_FILE>.key)は同じディレクトリに配置する必要があります。また、key と crt の両方に同じ名前(拡張子は異なる)が付いていることを確認します。この例では、ldap-client.crt と ldap-client.key という名前を使用します。

  2. 証明書をキーストアにインポートします。

    $  keytool -v -importkeystore -srckeystore java-application-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore java-application-ldap.jks -deststoretype JKS
    
  3. Java プロパティは、アプリケーションに応じてさまざまな方法で構成できます。多くの場合、起動に使用される「java」コマンドラインの -D オプションで設定できます。ご利用のアプリケーションの Java プロパティを次のように設定します

    javax.net.ssl.keyStore = /<path-to>/java-application-ldap.jks
    javax.net.ssl.keyStorePassword = <password selected above>
    
  4. 基本的な構成手順の情報を使用して、アプリケーションの LDAP 接続設定を構成します。

省略可: stunnel をプロキシとして使用する

クライアント証明書を使用して LDAP に対して認証する方法を提供していないクライアントの場合は、stunnel をプロキシとして使用します。

LDAP サーバーにクライアント証明書を提供するように stunnel を構成し、stunnel に接続するようにクライアントを構成します。理想的には、アプリケーションと同じサーバーで stunnel を実行し、ローカルでのみリッスンして、LDAP ディレクトリがそのサーバー以外に公開されないようにします。

手順は次のとおりです。

  1. stunnel をインストールします。たとえば、Ubuntu では次のように入力します。

    $  sudo apt-get install stunnel4
    
  2. 次の内容で構成ファイル /etc/stunnel/google-ldap.conf を作成します(ldap-client.crt が証明書、ldap-client.key が鍵であると仮定します)。

    [ldap]
    client = yes
    accept = 127.0.0.1:1636
    connect = ldap.google.com:636
    cert = ldap-client.crt
    key =
    ldap-client.key

  3. stunnel を有効にするには、/etc/default/stunnel4 を編集して ENABLED=1 に設定します。

  4. stunnel を再起動します。

    $  sudo /etc/init.d/stunnel4 restart
    
  5. ldap://127.0.0.1:1636 を参照するようにアプリケーションを設定します。

    上記の構成ファイルの accept 行も変更する場合は、「1636」を未使用のポートに置き換えることができます。クライアントと stunnel はローカルで通信するため、STARTTLS/SSL/TLS を有効にせずに、平文 LDAP を使用する必要があります。

注: stunnel を別のサーバーで実行する場合は、必要なアプリケーションのみが stunnel サーバーにアクセスできるようにファイアウォールを構成する必要があります。また、アプリケーションと stunnel サーバー間のデータが暗号化されるように、TLS でリッスンするように stunnel を構成することもできます。これらの構成の詳細は環境によって異なります。

次のステップ

LDAP クライアントをセキュア LDAP サービスに接続したら、その LDAP クライアントのサービス ステータスを [オン] に切り替える必要があります。

次の手順については、5. LDAP クライアントを [オン] に切り替えます。

注: LDAP クライアントをサービスに接続しようとしてエラーが発生した場合は、必要に応じて ldapsearch、ADSI、ldp.exe などのシンプルなツールを使用してトラブルシューティングを行うことができます。手順については、接続テストとトラブルシューティングをご覧ください。