現在表示中:

はじめに

デプロイメントがパブリッシュファームであるとき、メンバーはすべてのパブリッシュノードにログインしてその中のデータを閲覧できる必要があります。

パブリッシュ環境で作成されたユーザーとユーザーグループ(ユーザーデータ)は、オーサー環境では必要ありません。  

オーサー環境で作成されたほとんどのユーザーデータはオーサー環境に残るものと想定されており、パブリッシュインスタンスにはコピーされません。

他のパブリッシュインスタンスが同じユーザーデータにアクセスするには、1 つのパブリッシュインスタンスに加えられた登録と変更をそれらのパブリッシュインスタンスに同期する必要があります。

 AEM 6.1 では、ユーザー同期を有効にすると、ユーザーデータがファーム内のパブリッシュインスタンス全体に自動的に同期され、オーサー環境には作成されません。

Sling 配布

ユーザーデータは ACL と共に Oak JCR の下のレイヤーの Oak Core に格納され、Oak API を使用してアクセスできます。 アップデートの頻度が少ない場合は、Sling コンテンツ配布(Sling 配布)を使用してユーザーデータを他のパブリッシュインスタンスに同期するのが適切です。

従来のレプリケーションと比較して、Sling 配布を使用してユーザーを同期する利点は次のとおりです。

  • パブリッシュインスタンスで作成されたユーザー、ユーザープロファイルおよびユーザーグループがオーサー環境に作成されません
  • Sling 配布により JCR イベントにプロパティが設定されることで、レプリケーションが無限に繰り返されることなく、パブリッシュ側のイベントリスナーで実行できます
  • Sling 配布は派生元でないパブリッシュインスタンスにのみユーザーデータを送信するので、不要なトラフィックが発生しません
  • ユーザーノードで設定された ACL が同期に含まれます

注意:

セッションが必要な場合は、SSO ソリューションか定着セッションを使用して、別のパブリッシャーに切り替わった際にはお客様にログインしてもらうことをお勧めします。

警告:

ユーザー同期が有効化されている場合でも、administrators グループの同期はサポートされません。 代わりに、「差分の読み込み」が失敗した旨を示すログがエラーログに記録されます。

このため、デプロイメントがパブリッシュファームであるとき、administrators グループに対してユーザーが追加または削除された場合、変更は各パブリッシュインスタンスに対して手動で実行する必要があります。

ユーザー同期の有効化

注意:

デフォルトでは、ユーザー同期は無効になっています。

ユーザー同期を有効にするには、OSGi の既存の設定を変更する必要があります。

ユーザー同期を有効にした結果、新しい設定が追加されることはありません。

ユーザー同期では、オーサー環境で作成されていないユーザーデータでもその配布の管理はオーサー環境に依存します。 すべてではありませんが、設定の大多数はオーサー環境にあり、それをオーサー環境またはパブリッシュ環境で実行するかどうかは各手順で明確に識別します。

次にユーザー同期の有効化に必要な手順と、トラブルシューティングの節を示します。

1. Apache Sling Distribution Agent - Sync Agents Factory

ユーザー同期の有効化

  • オーサー環境で
    • 管理者権限でサインインします
    • Web コンソールにアクセスします
      • 例:http://localhost:4502/system/console/configMgr
    • Apache Sling Distribution Agent - Sync Agents Factory を探します
      • 編集する既存の設定を選択します(鉛筆アイコン)
           「Name」:socialpubsync
      • Enabled」チェックボックスをオンにします
      • Save」を選択します

 

2. 承認済みユーザーの作成

権限の設定

  • パブリッシュ環境で
    • 管理者権限でサインインします
    • セキュリティコンソールにアクセスします
    • 新しいユーザーを作成します
      • 例:usersync-admin
    • このユーザーを administrators ユーザーグループに追加します
    • 各パブリッシュインスタンスで繰り返します

この承認済みユーザーが手順 3 のオーサー環境での Sling 配布の設定に使用されます。

トラブルシューティングの節の応答処理中の操作の例外の変更も参照してください。

警告:

割り当てられるデフォルトのユーザーは admin であり、セキュリティ上の理由から実稼働環境のすべての公開者のパスワードを変更する必要があります。

3. Adobe Granite Distribution - Encrypted Password Transport Secret Provider

権限の設定

administrators ユーザーグループのメンバーである承認済みユーザーがすべてのパブリッシュインスタンスで作成されたら、ユーザーデータをオーサー環境からパブリッシュ環境に同期する権限があるその承認済みユーザーをオーサー環境で識別する必要があります。

  • オーサー環境で
    • 管理者権限でサインインします
    • Web コンソールにアクセスします
      • 例:http://localhost:4502/system/console/configMgr
    • Adobe Granite Distribution - Encrypted Password Transport Secret Provider を探します
    • 編集する既存の設定を選択します(鉛筆アイコン)
         「Property name」を確認します:socialpubsync-publishUser
    • 手順 2 でパブリッシュ環境で作成した承認済みユーザーのユーザー名とパスワードを設定します
      • 例:usersync-admin

4. Apache Sling Distribution Agent - Queue Agents Factory

ユーザー同期の有効化

  • パブリッシュ環境で
    • 管理者権限でサインインします
    • Web コンソールにアクセスします
    • Apache Sling Distribution Agent - Queue Agents Factory を探します
      • 編集する既存の設定を選択します(鉛筆アイコン)
           「Name」:socialpubsync-reverse
      • Enabled」チェックボックスをオンにします
      • Save」を選択します
    • 各パブリッシュインスタンスで繰り返します

5. Adobe Granite Distribution - Diff Observer Factory

グループ同期の有効化

  • 各パブリッシュインスタンスで
    • 管理者権限でサインインします
    • Web コンソールにアクセスします
    • Adobe Granite Distribution - Diff Observer Factory を探します
      • 編集する既存の設定を選択します(鉛筆アイコン)
           「agent name」を確認します:socialpubsync-reverse
      • Enabled」チェックボックスをオンにします
      • Save」を選択します

6. Apache Sling Distribution Trigger - Scheduled Triggers Factory

(オプション)ポーリング間隔の変更

デフォルトでは、オーサー環境では 30 秒ごとに変更をポーリングします。 この間隔を変更するには、次の手順を実行します。

  • オーサー環境で
    • 管理者権限でサインインします
    • Web コンソールにアクセスします
      • 例:http://localhost:4502/system/console/configMgr
    • Apache Sling Distribution Trigger - Scheduled Triggers Factory を探します
      • 編集する既存の設定を選択します(鉛筆アイコン)
        • Name」:socialpubsync-scheduled-trigger
      • Interval in Seconds」に任意の間隔を指定します。
      • Save」を選択します

複数のパブリッシュインスタンスの設定

デフォルトの設定は、単一のパブリッシュインスタンス用の設定です。 ユーザー同期を有効にする理由は、複数のパブリッシュインスタンス(パブリッシュファーム用になど)を同期することであるので、追加のパブリッシュインスタンスを Sync Agents Factory に追加する必要があります。

7. Apache Sling Distribution Agent - Sync Agents Factory

パブリッシュインスタンスを追加するには:

  • オーサー環境で
    • 管理者権限でサインインします
    • Web コンソールにアクセスします
      • 例:http://localhost:4502/system/console/configMgr
    • Apache Sling Distribution Agent - Sync Agents Factory を探します
      • 編集する既存の設定を選択します(鉛筆アイコン)
           「Name」:socialpubsync
「Enabled」がオンになっていないデフォルト設定
  • Exporter Endpoints
    各パブリッシャーにエクスポーターエンドポイントが必要です。例えば、パブリッシャーが localhost:4503 と 4504 の 2 つの場合、次の 2 つのエントリが必要です。
    • http://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reverse
    • http://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reverse
  • Importer Endpoints
    各公開者にインポーターエンドポイントが必要です。例えば、パブリッシャーが localhost:4503 と 4504 の 2 つの場合、次の 2 つのエントリが必要です。
    • http://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
    • http://localhost:4504/libs/sling/distribution/services/importers/socialpubsync 
  • Save」を選択します

8. AEM Communities User Sync Listener

(オプション)追加の JCR ノードの同期

複数のパブリッシュインスタンス間で同期するカスタムデータがある場合は、次のようにします。

  • 各パブリッシュインスタンスで
  • Node Types
    同期するノードタイプのリストです。sling:Folder 以外のすべてのノードタイプがここにリストされます(sling:folder は別個に処理されます)。
    同期されるノードタイプのデフォルトのリストは次のとおりです。
    • rep:User
    • nt:unstructured
    • nt:resource
  • Ignorable Properties
    何らかの変更が検出された場合に無視されるプロパティのリストです。これらのプロパティに対する変更は、他の変更の副作用として同期される場合がありますが(同期は常にノードレベルで行われるので)、これらのプロパティに対する変更そのものが同期をトリガーすることはありません。
    無視されるデフォルトのプロパティは次の通りです。
    • cq:lastModified
  • Ignorable Nodes
    同期中に完全に無視されるサブパスです。このサブパスの下にあるものはどのタイミングでも同期されません。
    無視されるデフォルトのノードは次の通りです。
    • .tokens
    • system
  • Distributed Folders
    同期が不要であるのでほとんどの sling:Folders は無視されます。数少ない例外を次に示します。
    同期されるデフォルトのフォルダーは次の通りです。
    • setments/scoring
    • social/relationships
    • activities

9. 一意の Sling ID

警告:

 2 つ以上のパブリッシュインスタンスで Sling ID が一致すると、ユーザーグループの同期が失敗します。

Sling ID がパブリッシュファームの複数のパブリッシュインスタンスで同じである場合、ユーザーグループは同期されません。

すべての Sling ID の値が異なることを確認するには、各パブリッシュインスタンスで次の手順を実行します。

  1. http://host:port/system/console/status-slingsettings に移動する
  2. Sling ID の値を確認する

あるパブリッシュインスタンスの Sling ID が他のパブリッシュインスタンスの Sling ID と一致する場合は、次のようにします。

  1. Sling ID が一致するパブリッシュインスタンスの一方を停止する
  2. crx-quickstart/launchpad/felix ディレクトリで
    • sling.id.file という名前のファイルを検索して削除する
      • Linux システムの場合:
          rm -i $(find . -type f -name sling.id.file)
      • Windows システムの場合:
          Windows エクスプローラーを使用して sling.id.file を検索する
  3. パブリッシュインスタンスを開始する
    • スタートアップ時に新しい Sling ID が割り当てられる
  4. Sling ID が一意であることを確認する

すべてのパブリッシュインスタンスの Sling ID が一意になるまでこの手順を繰り返します。

特定状況での動作

ユーザーがパブリッシュ環境でプロファイルを自身で登録または編集する場合

設計上、パブリッシュ環境で作成された(自動登録された)ユーザーやプロファイルはオーサー環境には表示されません。 

トポロジーがパブリッシュファームであり、ユーザー同期が正しく設定されると、Sling 配布を使用してユーザーとユーザープロファイルがパブリッシュファーム間で同期されます。

セキュリティコンソールを使用してユーザーやユーザーグループが作成される場合

設計上、パブリッシュ環境で作成されたユーザーデータはオーサー環境には表示されません。その逆も同様です。

ユーザー管理とセキュリティコンソールを使用して新しいユーザーをパブリッシュ環境に追加すると、ユーザー同期により必要に応じて新しいユーザーとそのグループメンバーシップが他のパブリッシュインスタンスに同期されます。 ユーザー同期により、セキュリティコンソールによって作成されたユーザーグループも同期されます。

トラブルシューティング

ユーザー同期診断

ユーザー同期診断は、設定をチェックして問題の特定を試みるツールです。

オーサー環境で、メインコンソールからツール/運営/診断/ユーザー同期診断の順に移動します。

結果はユーザー同期診断コンソールに表示されます。

ユーザー同期が有効になっていない場合は、次のように表示されます。

正しく追加されていない設定

ユーザー同期が正しく機能しないのは、主に余分な設定が追加されていることが原因です。 代わりに、デフォルトの既存の設定を編集する必要があります。

Web コンソールに表示される、編集されたデフォルトの設定は次の通りです。 複数のインスタンスが表示される場合は、追加の設定を削除してください。

(オーサー)Apache Sling Distribution Agent - Sync Agents Factory 1 つ

(オーサー)Adobe Granite Distribution - Encrypted Password Transport Secret Provider 1 つ

(パブリッシュ)Apache Sling Distribution Agent - Queue Agents Factory 1 つ

(パブリッシュ)Adobe Granite Distribution - Diff Observer Factory 1 つ

(オーサー)Apache Sling Distribution Trigger - Scheduled Triggers Factory 1 つ

応答処理中の操作の例外の変更

ログに次の内容が表示される場合:

org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing.

java.lang.IllegalStateException: This tree does not exist

節 2. 承認済みユーザーの作成に正しく従っていることを確認してください。

この節では、すべてのパブリッシュインスタンスに存在する承認済みユーザーを作成し、それらをオーサー環境の「秘密鍵プロバイダー」OSGi 設定で特定する方法について説明します。 デフォルトでは、ユーザーは admin です。

承認済みユーザーが administrators ユーザーグループのメンバーになると、そのグループの権限は変更されず、承認済みユーザーに適切な権限が付与されます。

承認済みユーザーには、すべてのパブリッシュインスタンスに対する次の権限が必要です。

パス jcr:all jcr:read rep:write
/home   X X
/home/users X    
/home/groups X    
/etc/packages/sling/distribution     X
/libs/sling/distribution   X  
/var     X
/var/eventing   X X
/var/sling/distribution   X X

ユーザーグループ同期の失敗

2 つ以上のパブリッシュインスタンスで Sling ID が一致すると、ユーザーグループの同期が失敗します。

9. 一意の Sling ID の節を参照してください

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

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