この記事の手順に沿って、LDAP クライアントをセキュア LDAP サービスに接続します。
重要:
- ベンダーのドキュメントを確認する
この記事で紹介する LDAP クライアントのセキュア LDAP サービスへの接続手順は変更される可能性があるため、あくまで参考としてご利用ください。クライアントをセキュア LDAP サービスに接続する最新の手順については、このヘルプセンター記事のほか、ご利用のベンダーのドキュメントをご確認ください。 - 始める前に
手順を開始する前に、セキュア LDAP サービスへのクライアントの追加、アクセス権限の設定、クライアント証明書とキーのダウンロード、アクセス認証情報の生成(省略可)が完了していることを確認してください。 - 接続テスト
これらの手順を開始する前に、必要に応じて ldapsearch、ADSI、ldp.exe といった平易なツールを使用して簡易的な接続テストを実施できます。これらのツールは、LDAP クライアントをサービスに接続しようとしてエラーが発生した場合のトラブルシューティングにも利用できます。テスト手順については、セキュア LDAP の接続テストをご覧ください。 - 設定手順を完了する方法
この記事の手順に沿って LDAP クライアントを接続したら、Google 管理コンソールでサービスのステータスを [オン] に切り替えて LDAP クライアントの設定を完了する必要があります。手順については、5. LDAP クライアントをオンにするをご覧ください。
この記事の内容
この記事は、以下の項目で構成されています。
- 基本的な設定手順 - この記事で個別に説明していない LDAP クライアント向けの一般的な接続手順です。
- 特定の LDAP クライアントの設定手順 - 特定の LDAP クライアント(Atlassian Jira、OpenVPN など)をセキュア LDAP サービスに接続するための手順です。手順はクライアントの種類によって異なります。
- Java アプリケーションの設定手順 - LDAP 機能を備えた Java ベースのアプリケーションに関する一般的な手順です。
- (省略可)stunnel をプロキシとして使用する - ここで扱う手順には、デジタル証明書をサポートしていない LDAP クライアントを接続する際の考慮事項も含まれています。
以下の手順では、ダウンロードしたクライアント キーのファイルを ldap-client.key、証明書のファイルを ldap-client.crt と仮定します。
基本的な設定手順
ここでは、LDAP クライアントをセキュア LDAP サービスに接続するための一般的な手順について説明します。ご利用の LDAP クライアントが以下の手順に記載されていない場合は、該当するアプリケーションのドキュメントを参照してください。
注: Atlassian Jira や SSSD など、一部の LDAP クライアントの中にはユーザー認証中にそのユーザーに関する詳細情報を得るためにユーザー検索を実施するものがあります。このような LDAP クライアントでユーザー認証が正しく機能するようにするには、[ユーザー認証情報の確認] が有効になっているすべての組織部門で [ユーザー情報の読み取り] をオンにする必要があります(手順については、アクセス権限を設定するをご覧ください)。
LDAP クライアントをセキュア LDAP サービスに接続するには:
- Cloud Directory を使用して、LDAP クライアントを LDAP サーバーとして設定します。
- LDAP クライアントに証明書をアップロードします。
セキュア LDAP サービスは、TLS クライアント証明書を主要な認証メカニズムとして使用します。証明書を LDAP クライアントにアップロードする手順を開始するには、LDAP クライアントの認証設定またはディレクトリ設定を開いて、下の表に記載された詳細情報を入力します。注: TLS 証明書をアップロードする方法とアップロード先の詳細については、ベンダーのドキュメントを参照してください。
基本的な接続情報については、次の表をご確認ください。
ホスト名 |
ldap.google.com |
ポート |
StartTLS を有効にした LDAP の場合は 389 |
ベース DN |
DN 形式のドメイン。以下に例を示します。 example.com の場合は dc=example,dc=com |
ユーザー名とパスワード |
証明書による認証に加えて、一部の LDAP クライアントではユーザー名とパスワードを入力する必要があります。ユーザー名とパスワードの欄が必須でない場合は、この手順をスキップできます。 Google 管理コンソールでユーザー名とパスワードを生成します。手順については、アクセス認証情報を生成するをご覧ください。 |
クライアント証明書とキーファイル |
Google 管理コンソールからダウンロードした証明書とキーファイルを使用します。LDAP クライアントがクライアント証明書で認証する方法をサポートしていない場合は、stunnel をプロキシとして使用するをご覧ください。 重要: Apache Directory Studio など一部の LDAP クライアントでは、デジタル証明書のアップロードをサポートしていません。この場合の対応方法については、stunnel をプロキシとして使用するをご覧ください。 |
特定の LDAP クライアントの設定手順
ADSI エディター(Windows)手順は次のとおりです。
- ldp.exe(Windows)の手順 1~11 を行ってクライアント証明書をインストールします。
- [操作] > [接続先] に移動します。
- 次の接続設定を入力します。
名前: 接続の名前を入力します(例: Google LDAP)。
接続ポイント: [識別名または名前付けコンテキストを選択または入力する] を選択します。
ドメイン名を DN 形式で入力します(例: example.com の場合は dc=example,dc=com)。
コンピュータ: [ドメインまたはサーバーを選択または入力する] を選択し、次のように入力します。
ldap.google.com
SSL ベースの暗号化を使用する: オン
- [詳細設定] をクリックし、次の情報を入力します。
資格情報を指定する: オン
ユーザー名: 管理コンソールで生成したアクセス認証情報のユーザー名
パスワード: 管理コンソールで生成したアクセス認証情報のパスワード
ポート番号: 636
プロトコル: LDAP
簡易結合認証: オン
- [OK] をクリックし、再度 [OK] をクリックします。
- 接続に成功すると、ベース DN の Active Directory の内容が右側のパネルに表示されます。
Apache Directory Studio を使用するには、stunnel 経由で接続し、Google 管理コンソールで生成したアクセス認証情報(ユーザー名とパスワード)を使用します。認証情報が生成済みで、stunnel が localhost のポート 1389 でリッスンしていることを前提に、次の手順を実施してください。
- [File] > [New…] をクリックします。
- [LDAP Browser] > [LDAP Connection] を選択します。
- [Next] をクリックします。
- 接続パラメータを次のように入力します。
Connection name: 名前を選択します(例: Google LDAP)
Hostname: localhost
Port: 1389(または stunnel の待ち受けポート)
Encryption method: No encryption(注: stunnel がリモートで実行されている場合は、stunnel とクライアントとの間で暗号化を実施することをおすすめします)
- [Next] をクリックします。
- 認証パラメータを次のように入力します。
Authentication Method: Simple Authentication
Bind DN or user: 管理コンソールで生成したアクセス認証情報のユーザー名
Bind password: 管理コンソールで生成したアクセス認証情報のパスワード
- [Next] をクリックします。
- ベース DN を入力します。
これは DN 形式のドメイン名です(example.com の場合は dc=example,dc=com)。 - [Finish] をクリックします。
Atlassian Jira は、より詳細なユーザー情報を取得するために、認証中にユーザーの検索を行います。この LDAP クライアントでユーザー認証が正しく機能するようにするには、[ユーザー認証情報の確認] が有効になっているすべての組織部門で [ユーザー情報の読み取り] と [グループ情報の読み取り] をオンにする必要があります(手順については、アクセス権限を設定するをご覧ください)。
重要: 以下の手順を使用すると、keystorePassword がユーザーとログファイルに公開される可能性があります。ローカルシェル、ログファイル、Google 管理コンソールへの不正アクセスを防止するための措置を講じてください。以下の手順の代わりとして、stunnel4 を使用する方法があります(省略可: stunnel をプロキシとして使用するをご覧ください)。
注: 以下の説明では、Jira が /opt/atlassian/jira にインストールされていることを前提とします。
Atlassian Jira クライアントをセキュア LDAP サービスに接続するには:
- 証明書とキーを Jira サーバーにコピーします(LDAP クライアントをセキュア LDAP サービスに追加した際に Google 管理コンソールで生成される証明書です)。
例:
$ scp ldap-client.key user@jira-server:
- 証明書とキーを 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
- 新たに作成したキーストアを使用するように Jira を設定します。こちらの手順に沿ってオプションを追加します。
“-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password”
Linux の場合:- /opt/atlassian/jira/bin/setenv.sh を編集します。
- JVM_SUPPORT_RECOMMENDED_ARGS 設定を探します。
- "-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=<パスワード>" を追加します。<パスワード> の部分は上記で選んだパスワードに置き換えます。
- Jira を再起動します。
$ /opt/atlassian/jira/bin/stop-jira.sh
$ /opt/atlassian/jira/bin/start-jira.sh
- Jira ウェブ インターフェースに管理者としてログインします。
- [Settings] > [User management] に移動します(設定には、右上の歯車アイコンからアクセスします)。
- [User Directories] をクリックします。
- [Add Directory] をクリックします。
- タイプは [LDAP] を選択します。
- [Next] をクリックします。
- 次のように入力します。
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 AttributegoogleUid
User Schema Settings >
User Name RDN Attributeuid
Group Schema Settings >
Group Object ClassgroupOfNames
Group Schema Settings >
Group Object Filter(objectClass=groupOfNames)
Membership Schema Settings >
Group Members Attributemember
Membership Schema Settings >
Use the User Membership Attributeオン - グループに役割を割り当てます。
ユーザーが Atlassian Jira にログインするには、Jira へのアクセスを許可されたグループのメンバーである必要があります。
グループに役割を付与するには:- [Settings] > [Applications] > [Application access] に移動します。
- [Select group] テキスト ボックスに、Jira へのアクセスを許可する Google グループの名前を入力します。
CloudBees Core をセキュア LDAP サービスに接続する手順については、Configure CloudBees Core with Google's Cloud Identity Secure LDAP をご覧ください。
手順は次のとおりです。
- /etc/freeradius/3.0/ に FreeRADIUS をインストールして設定します。
FreeRADIUS をインストールしたら、freeradius-ldap プラグインをインストールして LDAP 設定を追加できます。
$ sudo apt-get install freeradius freeradius-ldap
- 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.*
- LDAP モジュールを有効にします。
$ cd /etc/freeradius/3.0/mods-enabled/
$ ln -s ../mods-available/ldap ldap
- /etc/freeradius/3.0/mods-available/ldap を編集します。
- ldap->server = 'ldaps://ldap.google.com:636'
- identity = アプリケーション認証情報のユーザー名
- password = アプリケーション認証情報のパスワード
- base_dn = ‘dc=domain,dc=com’
- tls->start_tls = no
- tls->certificate_file = /etc/freeradius/3.0/certs/ldap-client.cer
- tls->private_key_file = /etc/freeradius/3.0/certs/ldap-client.key
- tls->require_cert = ‘allow’
- セクション 'ldap -> post-auth -> update' を表すパンくずリスト内のすべてのフィールドをコメントアウトする
- /etc/freeradius/3.0/sites-available/default を編集します。
この編集により FreeRadius クライアント接続が変更されます。デフォルトのクライアントを使用していない場合は、設定したクライアント(inner-tunnel またはカスタム クライアント)を必ず更新してください。
- authorize セクションで、パスワード認証プロトコル(PAP)ステートメントの後に次のブロックを追加します。
if (User-Password) {
update control {
Auth-Type := ldap
}
}
- authorize セクションで、LDAP の前にある「-」記号を削除して LDAP を有効にします。
#
# The ldap module reads passwords from the LDAP database.
ldap
- authenticate セクションで、Auth-Type LDAP ブロックを次のように編集します。
# Auth-Type LDAP {
ldap
# }
- authenticate セクションで、Auth-Type PAP ブロックを次のように編集します。
Auth-Type PAP {
# pap
ldap
}
- authorize セクションで、パスワード認証プロトコル(PAP)ステートメントの後に次のブロックを追加します。
GitLab をセキュア LDAP サービスに接続する手順については、Configure Google Secure LDAP for GitLab をご覧ください。
Itopia または Ubuntu をセキュア LDAP サービスに接続する手順については、Configuring Google Cloud Identity LDAP on Ubuntu 16.04 for user logins をご覧ください。
手順は次のとおりです。
- Ivanti ウェブサーバーで、テキスト エディタを使用して OpenLDAPAuthenticationConfiguration.xml または OpenLDAPSSLAuthenticationConfiguration.xml を開きます。次の両方のフォルダでこれを行います。
C:\ProgramData\LANDesk\ServiceDesk\servicedesk.Framework、C:\ProgramData\LANDesk\ServiceDesk\servicedesk.WebAccess(servicedesk はインスタンス名です) - <Server> の値を ldap.google.com に更新します。
- <Port> の値をポート 3268(StartTLS を有効にしたクリアテキスト)と 3269(SSL / TLS ポート)に更新します(デフォルトでは、クリアテキスト ポートが 389、SSL / TLS ポートが 636 です)。
- <TestDN> の値を DN 形式のドメイン名に設定します(例: example.com の場合は dc=example,dc=com)。
- ..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" />
- Ivanti の Configuration Center で、必要なインスタンスを開きます。
- Service Desk Framework アプリケーションの横にある [Edit] をクリックします。
Service Desk Framework の [Edit Application] ダイアログが表示されます。 - [Configuration parameters] グループの [Logon policy] リストで [Explicit only] を選択し、[OK] をクリックします。
- Web Access アプリケーションの横にある [Edit] をクリックします。
Web Access の [Edit Application] ダイアログが表示されます。 - [Configuration parameters] グループの [Logon policy] リストで [Explicit only] を選択し、[OK] をクリックします。
ログイン時には、対応するドメイン ユーザーのネットワーク パスワードを使用します。
LDAP サーバー認証の例外ログ
LDAP サーバー認証の設定で問題が発生した場合は、例外ログを有効にして問題の特定に利用できます。例外ログはデフォルトで無効になっており、調査が終了したら再び無効にすることをおすすめします。
LDAP サーバー認証の例外ログを有効にするには:
- 該当する認証設定 XML ファイルをテキスト エディタで開きます。
DirectoryServiceAuthenticationConfiguration.xml、OpenLDAPAuthenticationConfiguration.xml、または OpenLDAPSSLAuthenticationConfiguration.xml - 以下の行を探します。
<ShowExceptions>false</ShowExceptions>
次のように変更します。
<ShowExceptions>true</ShowExceptions>
- 変更を保存します。
手順は次のとおりです。
- 証明書ファイルとキーファイルを 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 という名前を使用します。 - [コントロール パネル] に移動します。
- 検索ボックスで「証明書」を検索して [ユーザー証明書の管理] をクリックします。
- [操作] > [すべてのタスク] > [インポート] に移動します。
- [現在のユーザー] を選択し、[次へ] をクリックします。
- [参照] をクリックします。
- ダイアログ ボックスの右下にあるファイル形式のプルダウン メニューから、[Personal Information Exchange (*.pfx;*.p12)] を選択します。
- 手順 2 の ldap-client.p12 ファイルを選択して [開く] をクリックし、[次へ] をクリックします。
- 手順 2 で入力したパスワードを入力し、[次へ] をクリックします。
- [個人] 証明書ストアを選択し、[次へ] をクリックしてから [完了] をクリックします。
- Ldp.exe を実行します。
- [接続] > [接続] をクリックします。
- 次の接続情報を入力します。
サーバー: ldap.google.com
ポート: 636
コネクションレス: オフ
SSL: オン
- [OK] をクリックします。
- [表示]> [ツリー] を選択します。
- ベース DN を入力します。これは DN 形式のドメイン名です(例: example.com の場合は dc=example,dc=com)。
- [OK] をクリックします。
- 接続に成功すると、LDP.exe の右パネルに Active Directory の内容(ベース DN に存在するすべての属性など)が表示されます。
Netgate または pfSense をセキュア LDAP サービスに接続する手順については、Configuring Google Cloud Identity as an Authentication Source をご覧ください。
コマンドラインから 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」)を参照してください。
手順は次のとおりです。
- 証明書ファイルとキーファイルを 1 つの PKCS12 形式のファイルに変換します。コマンド プロンプトで次のように入力します。
openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12
出力ファイルを暗号化するためのパスワードを入力します。
- メニューバーの右上にある をクリックし、「Keychain Access」と入力します。
- Keychain Access アプリケーションを開き、左側の一覧で [System] をクリックします。
- 左上のメニューバーで [File] オプションをクリックし、[Import Items] を選択します。
- 生成された ldap-client.p12 がある場所を参照し、ldap-client.p12 を選択して [Open] をクリックします。
要求された場合は、パスワードを入力します。
「LDAP Client」という名前の証明書が System Keychain 証明書一覧に表示されます。 - LDAP Client 証明書の横にある矢印をクリックします。その下に秘密鍵が表示されます。
- 秘密鍵をダブルクリックします。
- ダイアログ ボックスで [Access Control] タブを選択し、左下の + をクリックします。
-
開いたウィンドウで Command+Shift+G キーを押して新しいウィンドウを開き、既存のテキストを /usr/bin/ldapsearch に置き換えます。
-
[Go] をクリックします。
ウィンドウが開き、ldapsearch がハイライト表示されています。 -
[Add] をクリックします。
-
[Save Changes] をクリックし、パスワードを求められたら入力します。
これで、コマンドラインから OpenLDAP ldapsearch コマンドを使用して LDAP ディレクトリにアクセスできるようになりました。
-
仮に、以前キーチェーンに読み込んだ 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 をインストールして設定します。インストール済みの場合は、OpenVPN の設定ページを開きます。
VPN の一般的な設定については、このヘルプ記事には記載していません。VPN の設定が済むと、LDAP 経由でユーザー認証と承認を追加できます。具体的には、openvpn-auth-ldap プラグインをインストールします。
$ sudo apt-get install openvpn openvpn-auth-ldap
- LDAP クライアント キーのファイルを /etc/openvpn/ldap-client.key、証明書のファイルを /etc/openvpn/ldap-client.crt にそれぞれコピーします。
- ファイル /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>
- OpenVPN 構成ファイルを編集します。ほとんどは /etc/openvpn/server.conf のようなファイル名です。ファイルの一番下に、次の記述を追加します。
plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth-ldap.conf
verify-client-cert optional
- OpenVPN サーバーを再起動します。
$ sudo systemctl restart openvpn@server
- ユーザーのユーザー名とパスワードを使用するように VPN クライアントを設定します。たとえば、OpenVPN クライアントの設定で、OpenVPN クライアント構成ファイルの末尾に auth-user-pass を追加し、OpenVPN クライアントを起動します。
$ openvpn --config /path/to/client.conf
- stunnel をプロキシとして使用する手順を実施します。
OpenVPN Access Server をセキュア LDAP サービスに接続する手順については、Configuring Google Secure LDAP with OpenVPN Access Server をご覧ください。
PaperCut をセキュア LDAP サービスに接続する手順については、How to sync and authenticate Google Workspace and Google Cloud Identity users in PaperCutをご覧ください。
Puppet Enterprise をセキュア LDAP サービスに接続する手順については、Google Cloud Directory for PE をご覧ください。
重要: 開始する前に、Softerra LDAP Browser バージョン 4.5(4.5.19808.0)以降がインストールされていることを確認してください。LDAP Browser 4.5 をご覧ください。
手順は次のとおりです。
- 証明書ファイルとキーファイルを 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 という名前を使用します。 - Softerra LDAP Browser で、キーペアをインストールします。
- [Tools] > [Certificate Manager] に移動します。
- [Import] をクリックします。
- [Next] をクリックします。
- [Browse] をクリックします。
- ダイアログ ボックスの右下にあるファイル形式のプルダウン リストから、[Personal Information Exchange (*.pfx;*.p12)] を選択します。
- 上述の手順 2 で生成した ldap-client.p12 ファイルを選択します。
- [Open]、[Next] の順にクリックします。
- 上述の手順 2 のパスワードを入力し、[Next] をクリックします。
- 証明書ストアとして [Personal] を選択します。
- [Next] をクリックします。
- [Finish] をクリックします。
- サーバー プロファイルを追加します。
- [File] > [New] > [New Profile] に移動します。
- プロファイルの名前を入力します(例: Google LDAP)。
- [Next] をクリックします。
次のように入力します。
Host: ldap.google.com
Port: 636
Base DN: DN 形式のドメイン名(例: example.com の場合は dc=example,dc=com)
Use secure connection (SSL): オン
- [Next] をクリックします。
- [External (SSL Certificate)] を選択します。
- [Next] をクリックします。
- [Finish] をクリックします。
Sophos Mobile をセキュア LDAP サービスに接続する手順については、Connecting Sophos Mobile to Google Cloud Identity / Google Cloud Directory using Secure LDAP をご覧ください。
Splunk をセキュア LDAP サービスに接続する際は、Splunk のバージョン 8.1.4 以降を使用してください。8.1.3 などの古いバージョンの Splunk を使用している場合、LDAP サーバーに大量の LDAP クエリが発行され、LDAP の割り当てがすぐに消費されてしまう可能性があります。Splunk バージョン 8.1.3 に関する事象について詳しくは、Splunk の既知の問題に関するページをご確認ください。
手順は次のとおりです。
- 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.*
- 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 - ユーザーの /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
- 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 |
メール属性 |
|
グループ マッピング属性 |
dn |
グループベース DN |
ドメイン名を DN 形式で入力します(例: ou=Groups,dc=example,dc=com、ドメイン名を example.com とした場合) |
静的グループサーチ フィルタ |
静的グループをフィルタする、オブジェクト クラスの静的グループ検索フィルタを入力します。 |
グループ名属性 |
cn |
静的メンバー名属性 |
member |
SSSD は、より詳細なユーザー情報を取得するために、認証中にユーザーの検索を行います。この LDAP クライアントでユーザー認証が正しく機能するようにするには、[ユーザー認証情報の確認] が有効になっているすべての組織部門で [ユーザー情報の読み取り] と [グループ情報の読み取り] をオンにする必要があります(手順については、アクセス権限を設定するをご覧ください)。
Red Hat 8 または CentOS 8 の SSSD クライアントをセキュア LDAP サービスに接続するには:
- SSSD クライアントをセキュア LDAP サービスに追加します。
- Google 管理コンソールから、[アプリ] > [LDAP] > [クライアントを追加] に移動します。
個人用の Gmail アカウントではなく、企業アカウントでログインしてください。 - クライアントの詳細を入力し、[続行] をクリックします。
- アクセス権限を設定します。
ユーザー認証情報の確認 - ドメイン全体
ユーザー情報の読み取り - ドメイン全体
グループ情報の読み取り - 有効 - [LDAP クライアントの追加] をクリックします。
- 生成された証明書をダウンロードします。
- [クライアントの詳細に進む] をクリックします。
- サービスのステータスを [オン] に変更します。
- Google 管理コンソールから、[アプリ] > [LDAP] > [クライアントを追加] に移動します。
- 依存関係をインストールします。
dnf install openldap-clients sssd-ldap
install -d --mode=700 --owner=sssd --group=root /etc/sssd/ldap
証明書の .zip ファイルを解凍し、.crt ファイルと .key ファイルを /etc/sssd/ldap にコピーします。
- (省略可)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 [email protected] \
-W \
'([email protected])' \
mail dn
プロンプトが表示されたら、ユーザーの Google パスワードを入力します。
注: ユーザーには、Google Workspace Enterprise または Cloud Identity Premium のライセンスが割り当てられている必要があります。 /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- 権限と SELinux のラベルを更新します。
chown 0:0 /etc/sssd/sssd.conf /etc/sssd/ldap/*
chmod 600 /etc/sssd/sssd.conf /etc/sssd/ldap/*
restorecon -FRv /etc/sssd
- SSSD を再起動します。
systemctl restart sssd
- 次をテストします。
ssh でサーバーに接続:ssh -l [email protected] {ホスト名}
トラブルシューティング
- SSSD のバージョンを確認します(1.15.2 以降である必要があります)。
# sssd --version
2.2.3
-
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 拒否メッセージがないか確認します。
- /etc/nsswitch.conf で passwd、shadow、group、netgroup の各エンティティに「sss」が追加されていることを確認します。
passwd: files sss
shadow: files sss
group: files sss
netgroup: files sss
ここで、LDAP ユーザーはローカル ファイルによってオーバーライドされます。
- /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 から削除します。
-
/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 は、より詳細なユーザー情報を取得するために、認証中にユーザーの検索を行います。この LDAP クライアントでユーザー認証が正しく機能するようにするには、[ユーザー認証情報の確認] が有効になっているすべての組織部門で [ユーザー情報の読み取り] と [グループ情報の読み取り] をオンにする必要があります(手順については、アクセス権限を設定するをご覧ください)。
SSSD クライアントをセキュア LDAP サーバーに接続するには:
- SSSD バージョン 1.15.2 以降をインストールします。
$ sudo apt-get install sssd
- クライアント証明書ファイルの名前は /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
-
構成ファイルのオーナーと権限を変更します。
$ sudo chown root:root /etc/sssd/sssd.conf
$ sudo chmod 600 /etc/sssd/sssd.conf -
SSSD を再起動します。
$ sudo service sssd restart
ヒント: 外部 IP アドレスのない Linux パソコンから Google Compute Engine で SSSD モジュールを使用している場合、Google サービスへの内部アクセスを有効にしている限り、セキュア LDAP サービスに接続できます。詳しくは、限定公開の Google アクセスの構成をご覧ください。
以下の手順に沿って、セキュア LDAP サービスを使用してユーザー アカウント認証用に macOS クライアントを接続します。
システム要件
- macOS は Catalina バージョン 10.15.4 以降である必要があります。
- 準備フェーズの手順 1 を完了するには、Google 特権管理者のユーザー ID が必要です。
- この構成を実行するには、ローカルの管理者権限が必要です。
目次:
準備フェーズ
このセクションでは、セキュア LDAP サービスを使用して macOS 認証を手動で設定、テストする方法について説明します。
手順 1: Google 管理コンソールで macOS を LDAP クライアントとして追加する
手順については、LDAP クライアントを追加するまたはセキュア LDAP のデモをご覧ください。この手順で自動生成される TLS クライアント証明書もダウンロードします。
手順 2: 証明書をシステム キーチェーンに読み込む
- 証明書とキーのファイル(手順 1 でダウンロードした ZIP ファイル)を macOS パソコンにコピーします。
ヒント: ZIP ファイルを解凍して、証明書とキーのファイルを探します。 - キーペアをシステム キーチェーンに読み込みます。
-
キーと証明書を PKCS 12(.p12)ファイルに変換します。ターミナルで次のコマンドを実行します。
openssl pkcs12 -export -out ldap-client.p12 -in ldap-client.crt -inkey ldap-client.key
ヒント: .p12 ファイルの名前を書き留めます。
パスワードを入力するよう求められます。.p12 ファイルを暗号化するためのパスワードを入力します。 -
キーチェーン アクセス アプリケーションを開きます。
-
[システム] キーチェーンをクリックします。
-
[ファイル] > [読み込む] をクリックします。
-
上の手順で作成した ldap-client.p12 ファイルを選択します。
-
システム キーチェーンの変更を許可するための管理者パスワードの入力を求められた場合は、パスワードを入力します。
-
上の手順で作成したパスワードを入力して、.p12 ファイルを復号化します。
注: 新しい証明書と、それに関連付けのある秘密鍵が、キーのリストに表示されます。「LDAP Client」という名前が付いている場合があります。次の手順で使用するので、証明書の名前をメモします。
- この記事の「ldapsearch(macOS)」の項の手順 6 に沿って、以下で指定するアプリを追加するための秘密鍵のアクセス制御を設定します。秘密鍵が [すべての項目] カテゴリに表示されない場合は、[自分の証明書] カテゴリに切り替え、対応する証明書を展開して、正しい秘密鍵エントリを探します。
手順で指定されている ldapsearch アプリは、トラブルシューティングが必要な場合にのみ使用するもので、その他の目的で使用することはありません。通常は、macOS へのアクセス権をユーザーに与える前に削除します。
次の 3 つのアプリをアクセス制御リストに追加する必要があります。
/System/Library/CoreServices/Applications/Directory Utility
/usr/libexec/opendirectoryd
/usr/bin/dscl
-
-
/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 ディレクトリ ノードを作成します。
- カギをクリックして変更を行い、パスワードを入力します。
- [LDAPv3] を選択し、鉛筆アイコンをクリックして設定を編集します。
- [新規] をクリックします。
- サーバー名に「ldap.google.com」と入力し、[SSL を使って暗号化] をオンにして、[手動] をクリックします。
- 新しいサーバー名を選択し、[編集] をクリックします。
- 設定名として、「Google Secure LDAP」などのわかりやすい名前を入力します。
- [SSL を使って暗号化] をオンにし、ポートが 636 に設定されていることを確認します。
- [検索とマッピング] タブに移動します。
- [この LDAPv3 サーバーにアクセスするときに使用] プルダウン リストから [RFC2307] を選択します。
- 表示されたウィンドウの [検索ベースのサフィックス] に、ドメイン関連の情報を入力します(ドメイン名が zomato.com の場合は「
dc=zomato,dc=com
」など)。 - [OK] をクリックします。
- [Users] レコードタイプで属性を設定します。
- [レコードのタイプと属性] セクションで [Users] を選択し、「+」ボタンをクリックします。
- ポップアップ ウィンドウで [属性のタイプ] を選択し、[GeneratedUID] を選択します。次に、[OK] をクリックしてポップアップ ウィンドウを閉じます。
[Users] を展開すると、[GeneratedUID] が表示されます。
- [GeneratedUID] をクリックし、右側のボックスで「+」アイコンをクリックします。
- テキスト ボックスに「apple-generateduid」と入力し、Enter キーを押します。
- [Users] ノードの下にある [NFSSDirectory] 属性をクリックします。
- 右側の画面で、この属性の値を
#/Users/$uid$
に更新します。 - [OK] をクリックし、パスワードを入力して、変更を保存します。
- [ディレクトリ ユーティリティ] ウィンドウで、新しい LDAP 設定を構成します。
- [検索ポリシー] タブに移動します。
- カギをクリックして変更を行い、画面が表示されたら現在のユーザーのパスワードを入力します。
- [検索] プルダウン リストのオプションを [カスタムパス] に変更します。
- [認証] タブを開き、「+」アイコンをクリックします。
- [ディレクトリ ドメイン] リストから [
/LDAPv3/ldap.google.com
] を選択し、[追加] をクリックします。 - [適用] ボタンをクリックし、画面が表示されたら管理者パスワードを入力します。
- 以下の 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
- 再起動して OpenDirectory 設定を再読み込みします。
手順 4: モバイル アカウントを作成する(オフライン ログインを許可する)
すべての Google Workspace ユーザーまたは Cloud Identity ユーザーは、自分のユーザー名とパスワードを使用したネットワーク アカウント(Google アカウント)でログインできます。このログイン プロセスにはネットワーク接続が必要です。ネットワーク接続のあるなしにかかわらずユーザーがログインする必要がある場合は、モバイル アカウントを作成できます。モバイル アカウントを使用すると、ネットワークに接続しているかどうかに関係なく、ネットワーク アカウント(Google アカウント)のユーザー名とパスワードでログインできます。詳しくは、Mac でモバイルアカウントを作成する / 設定するをご覧ください。
セキュア LDAP ユーザーのモバイル アカウントを作成するには:
-
次のコマンドを実行して、セキュア LDAP サーバーに接続し、ホームパスとモバイル アカウントを設定します。
sudo /System/Library/CoreServices/ManagedClient.app/Contents/Resources/createmobileaccount -n $uid -v
ヒント: $uid の部分を、ユーザーの Google アカウントに関連付けられているメールアドレスのユーザー名部分に置き換えます。たとえば、[email protected] のユーザー名部分は jsmith です。 -
SecureToken 管理ユーザー名の入力を求められたら管理ユーザー名を入力し、次のプロンプトでパスワードを入力します。これにより、$uid が FileVault に追加されます。この処理は、macOS ディスクが暗号化されている場合に必要です。
手順 5: (省略可)ログイン画面を設定する
- [システム環境設定] > [ユーザーとグループ] > [ログイン オプション](画面左下)に移動します。
- 管理者の認証情報を入力してカギを解除します。
- [ログイン時の表示] を [名前とパスワード] に変更します。
手順 6: デバイスを再起動してログインする
- デバイスがインターネットに接続されていることを確認します。インターネットに接続していないと、セキュア LDAP ユーザーのログインは機能しません。
注: インターネット接続は初回ログイン時にのみ必要です。それ以降のログインはインターネット アクセスがなくても可能です。 - 認証にセキュア LDAP を使用するよう設定されているユーザー アカウントを使用してデバイスにログインします。
導入フェーズ
このセクションの手順では、ユーザー向けにデバイス設定を自動化する方法について説明します。準備フェーズで手動設定を行った同じ macOS デバイスで、以下の手順 1 と手順 2 を実施します。
手順 1: Apple Configurator 2 を使用して、証明書を含む Mac プロファイルを作成する
- セキュア LDAP による macOS 認証を手動で設定したパソコンに、Apple Configurator 2 をインストールします。
- Apple Configurator 2 を開き、新しいプロファイルを作成します。次に、[証明書] セクションの [構成] をクリックして、以前に生成した .p12 ファイルを読み込みます。
注: この .p12 にパスワードが設定されていることを確認してください。このパスワードを証明書の [パスワード] セクションに入力します。
- このプロファイルを保存します。
- (M1プロセッサ または M2 プロセッサを使用しているデバイスの場合は、この手順をスキップしてステップ 5 に進みます。)任意のテキスト エディタでこのプロファイルを開き、最初の <dict> タグ内に次の行を追加します。
<key>PayloadScope</key>
<string>System</string>
これは Apple Configurator が macOS のプロファイルにまだ対応していないため、必要となります。
- 2 番目の <dict> タグ内で、証明書のデータと並行して次の行を追加します。
<key>AllowAllAppsAccess</key>
<true/>
これにより、この証明書にすべてのアプリケーションからアクセスできるようになります。
手順 2: ディレクトリ構成ファイル(plist)を xml に変換する
この手順では、準備フェーズの手順 3 で行ったすべての手動設定を XML ファイルに抽出します。このファイルと、上述の手順 1 で作成した Mac プロファイルを使用することで、他の macOS デバイスを自動的に設定できるようになります。
- /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist をデスクトップなどにコピーします。
- このファイルを XML に変換して、任意のテキスト エディタで確認できるようにします。ターミナルで次のコマンドを実行します。
sudo plutil -convert xml1 <パス>/ldap.google.com.plist
ファイルへのアクセスは<パス>/ldap.google.com.plist
のように記述します。
- 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'\x00'*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 で作成した Mac プロファイル ファイル、手順 2 で作成した XML 構成ファイル、および手順 3 の Python スクリプトをコピーします。
- 次のコマンドを実行します。:
sudo
python <保存した Python スクリプトのパス> <手順 2 で作成した ldap.google.com.plist のパス>
- 証明書を macOS のシステム キーチェーンに読み込むには、手順 1 で作成した Mac プロファイル ファイルをダブルクリックし、画面が表示されたら macOS のローカルの管理者認証情報を入力します。準備フェーズで設定した .p12 パスワードの入力を求められます。
- macOS パソコンを再起動します。
- 準備フェーズの手順 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 を使用するように設定を変更する手順は次のとおりです。
- [システム環境設定] > [ネットワーク] > [Wi-Fi] > [詳細] に移動します。
- [詳細] メニューの [TCP/IP] タブに移動します。
- [IPv6 の設定] プルダウン リストでの選択を [リンクローカルのみ] に変更します。
- [OK] をクリックし、[適用] をクリックして、変更を保存します。
- ldapsearch 接続と有効な検索を介してサービス認証を確認します。
手順 2: ディレクトリ オブジェクトを表示できるかどうかを確認する
- ディレクトリ ユーティリティを開き、[ディレクトリ エディタ] タブを開きます。
- プルダウン リストから [/LDAPv3/ldap.google.com] ノードを選択します。
- Google ドメインのユーザーとグループを表示できるかどうかを確認します。
Java アプリケーションの設定手順
LDAP 機能を提供する Java ベースのアプリケーションは、多くの場合、アプリケーションのキーストアにクライアント証明書をインストールすることによって、クライアント証明書で認証するように設定できます。構成ファイルの内容はアプリケーションによって若干異なりますが、手順はほぼ同じです。セットアップを行うには、OpenSSL と Java Runtime Environment がインストールされている必要があります。
-
証明書とキーを 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 という名前を使用します。
- 証明書をキーストアに読み込みます。
$ keytool -v -importkeystore -srckeystore java-application-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore java-application-ldap.jks -deststoretype JKS
- Java プロパティの設定方法は、アプリケーションによって異なります。多くの場合、起動に使用する「java」コマンドラインの -D オプションで設定できます。利用するアプリケーションの Java プロパティを次のように設定します。
javax.net.ssl.keyStore = /<パス>/java-application-ldap.jks
javax.net.ssl.keyStorePassword = <上の手順で選択したパスワード>
- 基本的な設定手順の情報を使用して、アプリケーションの LDAP 接続を設定します。
(省略可)stunnel をプロキシとして使用する
クライアントで LDAP の認証方法としてクライアント証明書を使えない場合は、stunnel をプロキシとして使用します。
LDAP サーバーにクライアント証明書を提供するように stunnel を設定し、stunnel に接続するようにクライアントを設定します。アプリケーションと同じサーバー上で stunnel を実行し、LDAP ディレクトリがそのサーバー外に公開されないようにローカルでのみリッスンすることをおすすめします。
手順は次のとおりです。
- stunnel をインストールします。たとえば、Ubuntu では次のように入力します。
$ sudo apt-get install stunnel4
- 構成ファイル /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
- stunnel を有効にするには、/etc/default/stunnel4 を編集して ENABLED=1 に設定します。
- stunnel を再起動します。
$ sudo /etc/init.d/stunnel4 restart
- ldap://127.0.0.1:1636 を参照するようにアプリケーションを設定します。
「1636」の代わりに別の未使用ポートを指定することもできます。その場合は、上述の構成ファイルの accept 行も変更してください。クライアントと stunnel はローカルで通信するため、両者の間では StartTLS / SSL / TLS を有効にせずに平文の LDAP を使用する必要があります。
注: 別のサーバーで stunnel を実行する場合は、必要なアプリケーションのみが stunnel サーバーにアクセスできるようにファイアウォールを設定する必要があります。TLS でリッスンするように stunnel を設定し、アプリケーションと stunnel サーバーの間でデータを暗号化することもできます。その場合の設定方法は、使用環境によって異なります。
次の手順
LDAP クライアントをセキュア LDAP サービスに接続したら、LDAP クライアントのサービスのステータスを [オン] に切り替える必要があります。
次の手順については、5. LDAP クライアントをオンに切り替えるをご覧ください。
注: LDAP クライアントをサービスに接続する際にエラーが発生した場合は、必要に応じて ldapsearch、ADSI、ldp.exe などのシンプルなツールを使用して問題の解決に当たることができます。手順については、接続テストとトラブルシューティングをご覧ください。