AEM 6 での LDAP の設定 configuring-ldap-with-aem
LDAP(L ightweight D irectory A ccess P rotocol)は、一元化されたディレクトリサービスにアクセスするために使用されます。複数のアプリケーションからアクセスできるため、ユーザーアカウントの管理に要する負担を軽減します。このような LDAP サーバーの一例が、Active Directory です。多くの場合、LDAP はシングルサインオン(ユーザーが 1 回ログインすると複数のアプリケーションにアクセスできる機能)を実現するために使用されます。
リポジトリに保存されている LDAP アカウントの詳細を使用して、LDAP サーバーとリポジトリの間でユーザーアカウントを同期できます。この機能を利用すると、アカウントをリポジトリグループに割り当てて、必要な権限や特権を割り当てることができます。
リポジトリでは、LDAP 認証を使用してこれらのユーザーを認証します。認証の際は、検証用に LDAP サーバーに渡される資格情報が使用されます。この認証は、リポジトリへのアクセスを許可する前に行う必要があります。パフォーマンスを向上させるために、検証が成功した資格情報をリポジトリでキャッシュできます。有効期限のタイムアウトを使用すると、適切な期間が経過した後に再検証が実行されます。
LDAP サーバーからアカウントが削除されると、検証が許可されず、リポジトリへのアクセスが拒否されます。リポジトリ保存されている LDAP アカウントの詳細をパージすることもできます。
このようなアカウントは、ユーザーに対して透過的に使用されます。つまり、LDAP で作成されたユーザーアカウントやグループアカウントと、リポジトリ内でのみ作成されたアカウントの間に、ユーザーが気付くような違いはありません。
AEM 6 における LDAP のサポートには新しい実装が含まれており、以前のバージョンとは異なるタイプの設定が必要です。
すべての LDAP 設定を OSGi 設定として使用できるようになりました。これらは、以下の web 管理コンソールを使用して設定できます。https://serveraddress:4502/system/console/configMgr
LDAP と AEM を連携するには、次の 3 つの OSGi 設定を作成する必要があります。
- LDAP Identity Provider(IDP)
- 同期ハンドラー。
- 外部ログインモジュール。
LDAP Identity Provider の設定 configuring-the-ldap-identity-provider
LDAP Identity Provider は、LDAP サーバーからのユーザーの取得方法を定義するために使用します。
このプロバイダーは、管理コンソールの Apache Jackrabbit Oak LDAP Identity Provider という名前の下にあります。
LDAP Identity Provider では、以下の設定オプションを使用できます。
同期ハンドラーの設定 configuring-the-synchronization-handler
同期ハンドラーでは、ID プロバイダーのユーザーやグループをリポジトリと同期する方法を定義します。
同期ハンドラーは、管理コンソールにある Apache Jackrabbit Oak Default Sync Handler という名前の下にあります。
Sync Handler では、以下の設定オプションを使用できます。
外部ログインモジュール the-external-login-module
外部ログインモジュールは、管理コンソールの Apache Jackrabbit Oak External Login Module の下にあります。
このモジュールは、使用する ID プロバイダーと同期ハンドラーを定義して、2 つのモジュールを効率的にバインドします。
以下の設定オプションを使用できます。
LDAP over SSL の設定 configure-ldap-over-ssl
次の手順に従って、LDAP over SSL を使用して認証を行うように AEM 6 を設定できます。
-
LDAP ID プロバイダーを設定する場合は、「SSL を使用」チェックボックスまたは「TLS を使用」チェックボックスをオンにします。
-
設定に応じて同期ハンドラーと外部ログインモジュールを設定します。
-
必要に応じて、Java™ VM に SSL 証明書をインストールします。 インストールには、keytool を使用します。
keytool -import -alias localCA -file <certificate location> -keystore <keystore location>
-
LDAP サーバーへの接続をテストします。
SSL 証明書の作成 creating-ssl-certificates
SSL 経由で LDAP を使用して認証を行うように AEM を設定する場合は、自己署名証明書を使用できます。AEM で使用する証明書の生成手順の例を次に示します。
-
SSL ライブラリがインストールされ、機能していることを確認します。この手順では、例として OpenSSL を使用します。
-
カスタマイズした OpenSSL 設定(cnf)ファイルを作成します。この設定は、デフォルトの **openssl.cnf ** 設定ファイルをコピーし、カスタマイズすることで実行できます。UNIX® システムでは、このファイルは
/usr/lib/ssl/openssl.cnf
にあります。 -
ターミナルで以下のコマンドを実行して CA ルートキーを作成します。
code language-none openssl genpkey -algorithm [public key algorithm] -out certificatefile.key -pkeyopt [public key algorithm option]
-
次に、自己署名証明書を作成します。
openssl req -new -x509 -days [number of days for certification] -key certificatefile.key -out root-ca.crt -config CA/openssl.cnf
-
新しく生成した証明書に問題がないことを確認します。
openssl x509 -noout -text -in root-ca.crt
-
証明書設定(.cnf)ファイルで指定したすべてのフォルダーが存在することを確認します。存在しない場合は、作成してください。
-
コマンドを実行してランダムシードを作成します。次に例を示します。
openssl rand -out private/.rand 8192
-
作成した .pem ファイルを .cnf ファイルで設定した場所に移動します。
-
最後に、Java™ キーストアに証明書を追加します。
デバッグログの有効化 enabling-debug-logging
LDAP ID プロバイダーと外部ログインモジュールの両方に対してデバッグログを有効にして、接続の問題のトラブルシューティングを行うことができます。
デバッグログを有効にするには、次の操作を行う必要があります。
- Web 管理コンソールに移動します。
- 「Apache Sling Logging Logger Configuration」を探し、次のオプションを使用して 2 つのロガーを作成します。
-
ログレベル:デバッグ
-
ログファイル:logs/ldap.log
-
メッセージパターン: {0,date,
dd.MM.yyyy
HH:mm:ss.SSS
} *{4}* {2} -
ロガー:org.apache.jackrabbit.oak.security.authentication.ldap
-
ログレベル:デバッグ
-
ログファイル:logs/external.log
-
メッセージパターン: {0,date,
dd.MM.yyyy
HH:mm:ss.SSS
} *{4}* {2} -
Logger:org.apache.jackrabbit.oak.spi.security.authentication.external
グループへの関連付けに関する注意事項 a-word-on-group-affiliation
LDAP で同期されたユーザーは、AEM の別のグループに含めることが可能です。同期プロセスの一部として AEM に追加される外部 LDAP グループにも含めることができます。ただし、別に追加される、元の LDAP グループに関連するスキームに含まれないグループに含めることもできます。
通常、ローカルの AEM 管理者またはその他の ID プロバイダーによって追加されるグループになります。
ユーザーが LDAP サーバー上のグループから削除されると、その変更は同期時に AEM 側にも反映されます。ただし、LDAP によって追加されなかったユーザーのその他のグループへの関連付けはそのまま維持されます。
AEM は rep:externalId
プロパティを使用して、外部グループからのユーザーのパージを検出および処理します。このプロパティは同期ハンドラーよって同期されたすべてのユーザーとグループに自動的に追加されます。このプロパティには元の ID プロバイダーの情報が含まれます。
Apache Oak ドキュメントの ユーザーとグループの同期を参照してください。
既知の問題 known-issues
LDAP over SSL を使用する場合は、Netscape のコメントオプションを指定せずに、使用する証明書が作成されていることを確認してください。このオプションが有効になっている場合は、SSL ハンドシェイクエラーが発生して認証が失敗します。