通知

Duet AI は Gemini for Google Workspace になりました。詳細

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

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

重要:

  • ベンダーのドキュメントを確認する
    この記事で紹介する LDAP クライアントのセキュア LDAP サービスへの接続手順は変更される可能性があるため、あくまで参考としてご利用ください。クライアントをセキュア LDAP サービスに接続する最新の手順については、このヘルプセンター記事のほか、ご利用のベンダーのドキュメントをご確認ください。
  • 始める前に
    手順を開始する前に、セキュア LDAP サービスへのクライアントの追加アクセス権限の設定クライアント証明書とキーのダウンロードアクセス認証情報の生成(省略可)が完了していることを確認してください。
  • 接続テスト
    これらの手順を開始する前に、必要に応じて ldapsearchADSIldp.exe といった平易なツールを使用して簡易的な接続テストを実施することをおすすめします。これらのツールは、LDAP クライアントをサービスに接続しようとしてエラーが発生した場合のトラブルシューティングにも利用できます。テスト手順については、セキュア LDAP の接続テストをご覧ください。
  • 設定手順を完了する方法
    この記事の手順に沿って LDAP クライアントを接続したら、Google 管理コンソールで LDAP クライアント サービスのステータスを [オン] に切り替えて 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 クライアントに証明書をアップロードします。


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

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

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

ホスト名

ldap.google.com

ポート

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

ベース 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. 次の接続設定を入力します。

    Name: 接続の名前を入力します(例: Google LDAP)。
    Connection Point: [Select or type a Distinguished Name or Naming Context]
    ドメイン名を DN 形式で入力します(例: example.com の場合は dc=example,dc=com)。

    Computer: [Select or type a domain or server]
    ldap.google.com

    Use SSL-based Encryption: オン
     
  4. [Advanced...] をクリックし、次の情報を入力します。

    Specify credentials: オン
    Username: 管理コンソールで生成したアクセス認証情報のユーザー名
    Password: 管理コンソールで生成したアクセス認証情報のパスワード
    Port Number: 636
    Protocol: LDAP
    Simple bind authentication: オン
     
  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. [Next] をクリックします。
  4. 接続パラメータを次のように入力します。

    Connection name: 名前を選択します(例: Google LDAP
    Hostname: localhost
    Port: 1389(または stunnel の待ち受けポート)
    Encryption method: No encryption(注: stunnel がリモートで実行されている場合は、stunnel とクライアントとの間で暗号化を実施することをおすすめします)
     
  5. [Next] をクリックします。
  6. 認証パラメータを次のように入力します。

    Authentication Method: Simple Authentication
    Bind DN or user: 管理コンソールで生成したアクセス認証情報のユーザー名
    Bind password: 管理コンソールで生成したアクセス認証情報のパスワード
     
  7. [Next] をクリックします。
  8. ベース DN を入力します。
    これは DN 形式のドメイン名です(example.com の場合は dc=example,dc=com)。
  9. [Finish] をクリックします。
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=<パスワード>" を追加します。<パスワード> の部分は上記で選んだパスワードに置き換えます。
  4. Jira を再起動します。

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

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

    Name

    Google Secure LDAP

    Directory type

    OpenLDAP

    Hostname

    ldap.google.com

    Port

    636

    Use SSL

    オン

    Username

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

    Password

    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. [Settings] > [Applications] > [Application access] に移動します。
    2. [Select group] テキスト ボックスに、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 クライアント接続が変更されます。デフォルトのクライアントを使用していない場合は、設定したクライアント(inner-tunnel またはカスタム クライアント)を必ず更新してください。
     
    1. authorize セクションで、パスワード認証プロトコル(PAP)ステートメントの後に次のブロックを追加します。

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

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

          #
          #  The ldap module reads passwords from the LDAP database.
          ldap
       
    3. authenticate セクションで、Auth-Type LDAP ブロックを次のように編集します。

      # Auth-Type LDAP {
          ldap
      # }

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

      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 ウェブサーバーで、テキスト エディタを使用して OpenLDAPAuthenticationConfiguration.xml または OpenLDAPSSLAuthenticationConfiguration.xml を開きます。次の両方のフォルダでこれを行います。

    C:\ProgramData\LANDesk\ServiceDesk\servicedesk.Framework and C:\ProgramData\LANDesk\ServiceDesk\servicedesk.WebAccess(servicedesk はインスタンス名です)
  2. <Server> の値を ldap.google.com に更新します。
  3. <Port> の値をポート 3268StartTLS を有効にしたクリアテキスト)と 3269(SSL / TLS ポート)に更新します(デフォルトでは、クリアテキスト ポートが 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 アプリケーションの横にある [Edit] をクリックします。
    Web Access の [Edit Application] ダイアログが表示されます。
  10. [Configuration parameters] グループの [Logon policy] リストで [Explicit only] を選択し、[OK] をクリックします。

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

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

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

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

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

    DirectoryServiceAuthenticationConfiguration.xmlOpenLDAPAuthenticationConfiguration.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 つのファイル(<証明書ファイル>.crt と <証明書ファイル>.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. [接続] > [接続] をクリックします。
  13. 次の接続情報を入力します。

    Server: ldap.google.com
    Port: 636
    Connectionless: オフ
    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. メニューバーの右上にある をクリックし、「Keychain Access」と入力します。
  3. Keychain Access アプリケーションを開き、左側の一覧で [System] をクリックします。
  4. 左上のメニューバーで [File] オプションをクリックし、[Import Items] を選択します。
  5. 生成された ldap-client.p12 がある場所を参照し、ldap-client.p12 を選択して [Open] をクリックします。
    要求された場合は、パスワードを入力します。
    「LDAP Client」という名前の証明書が System Keychain 証明書一覧に表示されます。
  6. LDAP Client 証明書の横にある矢印をクリックします。その下に秘密鍵が表示されます。 
    1. 秘密鍵をダブルクリックします。
    2. ダイアログ ボックスで [Access Control] タブを選択し、左下の + をクリックします。
    3. 開いたウィンドウで Command+Shift+G キーを押して新しいウィンドウを開き、既存のテキストを /usr/bin/ldapsearch に置き換えます。

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

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

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

    6. [Save Changes] をクリックし、パスワードを求められたら入力します。

      これで、コマンドラインから 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)" #(またはユーザー向けの独自の LDAP フィルタを選択)
      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

重要: 開始する前に、Softerra LDAP Browser バージョン 4.5(4.5.19808.0)以降がインストールされていることを確認してください。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 つのファイル(<証明書ファイル>.crt と <証明書ファイル>.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. 証明書ストアとして [Personal] を選択します。
    10. [Next] をクリックします。
    11. [Finish] をクリックします。
  3. サーバー プロファイルを追加します。
    1. [File] > [New] > [New Profile] に移動します。
    2. プロファイルの名前を入力します(例: Google LDAP)。
    3. [Next] をクリックします。

      次のように入力します。

      Host: ldap.google.com
      Port:
      636
      Base DN: DN 形式のドメイン名(例: example.com の場合は dc=example,dc=com
      Use secure connection (SSL): オン
       
    4. [Next] をクリックします。
    5. [External (SSL Certificate)] を選択します。
    6. [Next] をクリックします。
    7. [Finish] をクリックします。
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 以降を使用してください。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

ポート

636

SSL 有効

オン

接続順序

1

バインド DN

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

バインド DN パスワード

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

ベース DN

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

ユーザーベース フィルタ

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

ユーザー名属性

uid

実名属性

displayname

メール属性

mail

グループ マッピング属性

dn

グループベース DN

ドメイン名を DN 形式で入力します(例: ou=Groups,dc=example,dc=com、ドメイン名を example.com とした場合

静的グループサーチ フィルタ

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

グループ名属性

cn

静的メンバー名属性

member

 

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 {ホスト名}

トラブルシューティング

  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

ヒント: 外部 IP アドレスのない Linux パソコンから Google Compute Engine で SSSD モジュールを使用している場合、Google サービスへの内部アクセスを有効にしている限り、セキュア 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 パソコンにコピーします。
    ヒント: ZIP ファイルを解凍して、証明書とキーのファイルを探します。
  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 ファイルに行を追加します。このとき、「LDAP Client」が .p12 ファイルをインポートした後の macOS Keychain Access に表示される証明書名と完全に一致する必要があります。この名前は生成された証明書の X.509 Subject Common Name から付けられます。

    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. [この LDAPv3 サーバーにアクセスするときに使用] プルダウン リストから [RFC2307] を選択します。
    2. 表示されたウィンドウの [検索ベースのサフィックス] に、ドメイン関連の情報を入力します(ドメイン名が zomato.com の場合は「dc=zomato,dc=com」など)。
    3. [OK] をクリックします。
    4. [Users] レコードタイプで属性を設定します。
      1. [レコードのタイプと属性] セクションで [Users] を選択し、「+」ボタンをクリックします。
      2. ポップアップ ウィンドウで [属性のタイプ] を選択し、[GeneratedUID] を選択します。次に、[OK] をクリックしてポップアップ ウィンドウを閉じます。

        [Users] を展開すると、[GeneratedUID] が表示されます。
         
      3. [GeneratedUID] をクリックし、右側のボックスで「+」アイコンをクリックします。
      4. テキスト ボックスに「apple-generateduid」と入力し、Enter キーを押します。
      5. [Users] ノードの下にある [NFSSDirectory] 属性をクリックします。
      6. 右側の画面で、この属性の値を #/Users/$uid$ に更新します。
      7. [OK] をクリックし、パスワードを入力して、変更を保存します。
  9. [ディレクトリ ユーティリティ] ウィンドウで、新しい LDAP 設定を構成します。
    1. [検索ポリシー] タブに移動します。
    2. カギをクリックして変更を行い、画面が表示されたら現在のユーザーのパスワードを入力します。
    3. [検索] プルダウン リストのオプションを [カスタムパス] に変更します。
    4. [認証] タブを開き、+ アイコンをクリックします。
    5. [ディレクトリ ドメイン] リストから [/LDAPv3/ldap.google.com] を選択し、[追加] をクリックします。
    6. [適用] ボタンをクリックし、画面が表示されたら管理者パスワードを入力します。
  10. 以下の 4 つのコマンドを実行して、DIGEST-MD5、CRAM-MD5、NTLM、GSSAPI SASL の各認証メカニズムを無効にします。macOS では、Google セキュア 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 管理ユーザー名の入力を求められたら管理ユーザー名を入力し、次のプロンプトでパスワードを入力します。これにより、$uid が FileVault に追加されます。この処理は、macOS ディスクが暗号化されている場合に必要です。

手順 5: (省略可)ログイン画面を設定する

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

手順 6: デバイスを再起動してログインする

  1. デバイスがインターネットに接続されていることを確認します。インターネットに接続していないと、セキュア 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. 任意のテキスト エディタでこのプロファイルを開き、最初の <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

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

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

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

注: このサンプル スクリプトは現状有姿で提供されています。Google サポートでは、サンプル スクリプトのサポートは提供していません。

Ldap_pythong_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'\x00'*32, 32)
request.appendData_(NSData.dataWithBytes_length_(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. 次のコマンドを実行します。

    sudo python <保存した Python スクリプトのパス> <手順 2 で作成した ldap.google.com.plist のパス>
     
  3. 証明書を macOS のシステム キーチェーンに読み込むには、手順 1 で作成した Mac プロファイル ファイルをダブルクリックし、画面が表示されたら macOS のローカルの管理者認証情報を入力します。準備フェーズで設定した .p12 パスワードの入力を求められます。
  4. macOS パソコンを再起動します。
  5. 準備フェーズの手順 4 に沿ってモバイル アカウントを作成し、必要に応じて準備フェーズの手順 5 に示されている追加設定を行います。

制限事項とガイドライン

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

トラブルシューティング

セキュア 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 つのファイル(<証明書ファイル>.crt と <証明書ファイル>.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 = /<パス>/java-application-ldap.jks
    javax.net.ssl.keyStorePassword = <上の手順で選択したパスワード>

     
  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 を参照するようにアプリケーションを設定します。

    「1636」の代わりに別の未使用ポートを指定することもできます。その場合は、上の構成ファイルの accept 行も変更してください。クライアントと stunnel はローカルで通信するため、両者の間では StartTLS / SSL / TLS を有効にせずに平文の LDAP を使用する必要があります。

注: 別のサーバーで stunnel を実行する場合は、必要なアプリケーションのみが stunnel サーバーにアクセスできるようにファイアウォールを設定する必要があります。TLS でリッスンするように stunnel を設定し、アプリケーションと stunnel サーバーの間でデータを暗号化することもできます。その場合の設定方法は、使用環境によって異なります。

次の手順

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

次の手順については、5. LDAP クライアントをオンに切り替えるをご覧ください。

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

関連記事

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
検索
検索をクリア
検索を終了
メインメニュー
18438381625596854650
true
ヘルプセンターを検索
true
true
true
true
true
73010
false
false