現在表示中:

LDAP(Lightweight Directory Access Protocol)は、統合されたディレクトリサービスへのアクセスに使用します。これにより、複数のアプリケーションからユーザーアカウントにアクセスできるようになるので、ユーザーアカウントの管理に必要な作業を削減できます。このような LDAP サーバーの一例として Active Directory があります。多くの場合、LDAP はシングルサインオン(ユーザーが 1 回ログインすると複数のアプリケーションにアクセスできる機能)を実現するために使用されます。

リポジトリに保存されている LDAP アカウントの詳細を使用して、LDAP サーバーとリポジトリの間でユーザーアカウントを同期できます。これにより、アカウントをリポジトリグループに割り当てて、必要な権限や特別な権限を付与することができます。

リポジトリでは LDAP 認証を使用してこれらのユーザーを認証します。認証の際は、検証用に LDAP サーバーに渡される資格情報が使用されます。この認証は、リポジトリへのアクセスを許可する前におこなう必要があります。パフォーマンスを向上させるために、検証が成功した資格情報をリポジトリでキャッシュできます。有効期限のタイムアウトを使用すると、適切な期間が経過した後に再検証がおこなわれます。

LDAP サーバーからアカウントが削除されると、検証はおこなわれないので、リポジトリへのアクセスは拒否されます。リポジトリに保存された LDAP アカウントの詳細をパージすることもできます。

このようなアカウントはユーザーに対して透過的に使用され、LDAP から作成されたユーザーアカウントやグループアカウントとリポジトリで作成されたユーザーアカウントやグループアカウントの違いはユーザーにはわかりません。

 

AEM 6 の LDAP のサポートには、以前のバージョンとは異なるタイプの設定が必要な新しい実装が付属します。

すべての LDAP 設定を OSGi 設定として使用できるようになりました。これらは Web 管理コンソールを使用して設定できます。
http://serveraddress:4502/system/console/configMgr

LDAP と AEM を連携させるには、次の 3 つの OSGi 設定を作成する必要があります。

  1. LDAP Identity Provider(IDP)
  2. Sync Handler
  3. External Login Module

注意:

External Login Module について詳しくは、Oak の External Login Module - LDAP との認証および詳細(英語)をご覧ください。

LDAP Identity Provider の設定

LDAP Identity Provider は、LDAP サーバーからのユーザーの取得方法を定義するために使用します。 

このプロバイダーは、管理コンソールの Apache Jackrabbit Oak LDAP Identity Provider という名前の下にあります。

LDAP Identity Provider では次の設定オプションを使用できます。

LDAP Provider Name この LDAP プロバイダー設定の名前
LDAP Server Hostname
LDAP サーバーのホスト名
LDAP Server Port LDAP サーバーのポート
Use SSL SSL(LDAP)接続を使用するかどうかを示します。
Use TLS 接続時に TLS を開始するかどうかを示します。
Disable certificate checking サーバー証明書検証を無効にするかどうかを示します。
Bind DN 認証用のユーザーの DN。このオプションを空のままにすると、匿名バインドが実行されます。
Bind Password 認証用のユーザーのパスワード
Search timeout 検索がタイムアウトするまでの時間
Admin pool max active 管理接続プールの最大アクティブサイズ
User pool max active ユーザー接続プールの最大アクティブサイズ
User base DN ユーザー検索用の DN
User object classes ユーザーエントリに含まれている必要があるオブジェクトクラスのリスト
User id attribute ユーザー ID が含まれている属性の名前
User extra filter ユーザーを検索するときに使用する追加 LDAP フィルター。最終的なフィルターは、'(&(<idAttr>=<userId>)(objectclass=<objectclass>)<extraFilter>)' (user.extraFilter) のような形式になります。
User DN paths 中間パスの一部の計算に DN が使用されるかどうかを制御します。
Group base DN グループ検索用のベース DN
Group object classes グループエントリに含まれている必要があるオブジェクトクラスのリスト
Group name attribute グループ名が含まれている属性の名前
Group extra filter グループを検索するときに使用する追加 LDAP フィルター。最終的なフィルターは、'(&(<nameAttr>=<groupName>)(objectclass=<objectclass>)<extraFilter>)'のような形式になります。
Group DN paths 中間パスの一部の計算に DN が使用されるかどうかを制御します。
Group member attribute グループのメンバーが含まれているグループ属性

Sync Handler の設定

Sync Handler は、Indentity Provider のユーザーとグループをリポジトリと同期する方法を定義します。

このハンドラーは、管理コンソールの Apache Jackrabbit Oak Default Sync Handler という名前の下にあります。

Sync Handler では次の設定オプションを使用できます。

Sync Handler Name 同期設定の名前
User Expiration Time 同期されたユーザーが期限切れになるまでの期間
User auto membership 同期されたユーザーが自動的に追加されるグループのリスト
User property mapping 外部プロパティからのローカルプロパティのマッピング定義をリストします。
User Path Prefix 新規ユーザーの作成時に使用されるパスプレフィックス
User Membership Expiration メンバーシップが期限切れになるまでの時間
User membership nesting depth メンバーシップ関係が同期されるときのグループのネストの最大の深さを返します。値 0 を指定すると、グループのメンバーシップのルックアップが事実上無効になります。値 1 を指定すると、ユーザーの直接のグループのみが追加されます。ユーザーのメンバーシップの先祖を同期する際にのみ個々のグループを同期する場合、この値は有効ではありません。
Group Expiration Time 同期されたグループが期限切れになるまでの期間
Group auto membership 同期されたグループが自動的に追加されるグループのリスト
Group property mapping 外部プロパティからのローカルプロパティのマッピング定義をリストします。
Group path prefix 新規グループの作成時に使用されるパスプレフィックス

External Login Module

External Login Module は、管理コンソールの Apache Jackrabbit Oak External Login Module の下にあります。

注意:

Apache Jackrabbit Oak External Login Module は、Java 認証・承認サービス(JAAS)の仕様を実装します。詳しくは、Oracle 公式の Java セキュリティリファレンスガイドを参照してください。

このモジュールは、使用する Identity Provider と Sync Handler を定義して、2 つのモジュールを効率的にバインドします。

以下の設定オプションを使用できます。

JAAS Ranking このログインモジュールエントリのランキング(並べ替え順序)の指定。エントリは降順に並べ替えられます(ランクの高い設定が最初にきます)。
JAAS Control Flag LoginModule が REQUIRED、REQUISITE、SUFFICIENT または OPTIONAL であるかどうかを指定するプロパティ。これらのフラグの意味について詳しくは、JAAS 設定のドキュメントを参照してください。
JAAS Realm LoginModule の登録対象の領域名(またはアプリケーション名)。領域名を指定しない場合は、Felix JAAS 設定に指定されているように、LoginModule はデフォルトの領域に登録されます。
Identity Provider Name Identity Provider の名前
Sync Handler Name Sync Handler の名前

注意:

AEM インスタンスで複数の LDAP 設定を使用する場合は、設定ごとに Identity Provider と Sync Handler を個別に作成する必要があります。

LDAP over SSL の設定

次の手順に従って、LDAP over SSL を使用して認証をおこなうように AEM 6 を設定できます。

  1. LDAP Identity Provider を設定する場合は、「Use SSL」チェックボックスまたは「Use TLS」チェックボックスをオンにします。

  2. 設定に応じて Sync Handler と External Login Module を設定します。

  3. 必要に応じて、Java VM に SSL 証明書をインストールします。そのためには、keytool を使用します。

    keytool -import -alias localCA -file <certificate location> -keystore <keystore location>

  4. LDAP サーバーへの接続をテストします。

SSL 証明書の作成

SSL 経由で LDAP を使用して認証をおこなうように AEM を設定する場合は、自己署名証明書を使用できます。AEM で使用する証明書の生成手順の例を次に示します。

  1. SSL ライブラリがインストールされ、機能していることを確認します。この手順では、例として OpenSSL を使用します。

  2. カスタマイズした OpenSSL 設定(cnf)ファイルを作成します。そのためには、デフォルトの openssl.cnf 設定ファイルをコピーしてカスタマイズします。UNIX システムでは、通常このファイルは / /usr/lib/ssl/openssl.cnf です。

  3. ターミナルで次のコマンドを実行して CA ルートキーを作成します。

    openssl genpkey -algorithm [public key algorithm] -out certificatefile.key -pkeyopt [public key algorithm option]

     

  4. 次に、新しい自己署名証明書を作成します。

    openssl req -new -x509 -days [number of days for certification] -key certificatefile.key -out root-ca.crt -config CA/openssl.cnf

  5. 新しく生成した証明書に問題がないことを確認します。

    openssl x509 -noout -text -in root-ca.crt

  6. 証明書設定(.cnf)ファイルで指定したすべてのフォルダーが存在することを確認します。存在しない場合は、作成してください。

  7. コマンドを実行してランダムシードを作成します。次に例を示します。

    openssl rand -out private/.rand 8192

  8. 作成した .pem ファイルを .cnf ファイルで設定した場所に移動します。

  9. 最後に、Java キーストアに証明書を追加します。

デバッグログの有効化

LDAP Identity Provider と External Login Module の両方に対してデバッグログを有効にして、接続の問題のトラブルシューティングをおこなうことができます。

デバッグログを有効にするには、次の手順をおこなう必要があります。

  1. Web 管理コンソールに移動します。
  2. 「Apache Sling Logging Logger Configuration」を探し、次のオプションを使用して 2 つのロガーを作成します。
  • Log level:Debug
  • Log File:logs/ldap.log
  • Message Pattern:{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}
  • Logger:org.apache.jackrabbit.oak.security.authentication.ldap
  • Log level:Debug
  • Log File:logs/external.log
  • Message Pattern:{0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* [{2}] {3} {5}
  • Logger:org.apache.jackrabbit.oak.spi.security.authentication.external

グループへの関連付けに関する注意事項

LDAP で同期されたユーザーは、AEM の別のグループに含めることが可能です。同期プロセスの一部として AEM に追加される外部 LDAP グループにも含めることができますが、別に追加される、元の LDAP グループに関連するスキームに含まれないグループに含めることもできます。

ほとんどの場合は、ローカルの AEM 管理者またはその他の ID プロバイダーによって追加されるグループになります。

ユーザーが LDAP サーバー上のグループから削除されると、その変更は同期時に AEM 側にも反映されます。ただし、LDAP によって追加されなかったユーザーのその他のグループへの関連付けはそのまま維持されます。

AEM は rep:externalId プロパティを使用して、外部グループからのユーザーのパージを検出および処理します。このプロパティは Sync Handler によって同期されたすべてのユーザーとグループに自動的に追加されます。このプロパティには元の ID プロバイダーの情報が含まれます。

詳しくは、Apache Oak ドキュメントの ユーザーとグループの同期(英語)を参照してください。

既知の問題

LDAP over SSL を使用する場合は、Netscape のコメントオプションを指定せずに、使用する証明書が作成されていることを確認してください。このオプションが有効な場合は、SSL ハンドシェイクエラーが発生して認証が失敗します。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー