AEM 6 での LDAP の設定 configuring-ldap-with-aem
LDAP ( L 明るさ D ディレクトリ A アクセス P rotocol) は、一元化されたディレクトリサービスへのアクセスに使用されます。 これにより、複数のアプリケーションからアクセスできるので、ユーザーアカウントの管理に必要な作業を軽減できます。 そのような LDAP サーバの 1 つが 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 デフォルト同期ハンドラー 管理コンソールでの名前。
Sync Handler では、以下の設定オプションを使用できます。
外部ログインモジュール the-external-login-module
外部ログインモジュールは、 Apache Jackrabbit Oak 外部ログインモジュール をクリックします。
使用する ID プロバイダーと同期ハンドラーを定義し、2 つのモジュールを効果的にバインドします。
以下の設定オプションを使用できます。
LDAP over SSL の設定 configure-ldap-over-ssl
AEM 6 は、次の手順に従って、SSL 経由で LDAP で認証するように設定できます。
-
次を確認します。 SSL を使用 または TLS を使用 設定時のチェックボックス LDAP ID プロバイダー.
-
設定に従って、同期ハンドラーと外部ログインモジュールを設定します。
-
必要に応じて、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 HHss.SSS} *{4}* {2}
-
ロガー:org.apache.jackrabbit.oak.security.authentication.ldap
-
ログレベル:デバッグ
-
ログファイル:logs/external.log
-
メッセージパターン: {0,date,dd.MM.yyyy HHss.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
プロパティを使用して、外部グループからのユーザーのパージを検出および処理します。このプロパティは Sync Handler によって同期されたすべてのユーザーとグループに自動的に追加されます。このプロパティには元の ID プロバイダーの情報が含まれます。
詳しくは、 ユーザーとグループの同期.
既知の問題 known-issues
LDAP over SSL を使用する場合は、Netscape のコメントオプションを指定せずに、使用する証明書が作成されていることを確認してください。このオプションが有効な場合は、SSL ハンドシェイクエラーが発生して認証が失敗します。