ユーザーの同期

概要

When the deployment is a publish farm, members need to be able to log in and see their data on any publish node.

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

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

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

AEM 6.1以降、ユーザー同期が有効になっている場合、ユーザーデータはファーム内の発行インスタンス間で自動的に同期され、作成者には作成されません。

Sling 配布

The user data, along with their ACLs, are stored in the Oak Core, the layer below Oak JCR, and are accessed using the Oak API. With infrequent updates, it is reasonable for user data to be synchronized with other publish instances using Sling Content Distribution (Sling distribution).

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

  • パブリッシュインスタンスで作成されたユーザー​、ユーザープロファイル​​およびユーザーグループ​**​がオーサー環境に作成されません

  • Sling 配布により JCR イベントにプロパティが設定されることで、レプリケーションが無限に繰り返されることなく、パブリッシュ側のイベントリスナーで実行できます

  • Sling 配布は派生元でないパブリッシュインスタンスにのみユーザーデータを送信するので、不要なトラフィックが発生しません

  • ユーザーノードに設定されたACL 、同期に含まれる

NOTE

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

CAUTION

Synchronization of the *administrators *group is not supported, even when user sync is enabled. 代わりに、「diffをインポート」できない場合は、エラーログに記録されます。

Therefore, when the deployment is a publish farm, if a user is added to or removed from the *administrators *group, the modification must be manually made on each publish instance.

ユーザー同期の有効化

NOTE

By default, user sync is disabled.

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

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

ユーザー同期では、オーサー環境で作成されていないユーザーデータでもその配布の管理はオーサー環境に依存します。すべての設定は作成者環境で行われるわけではありませんが、各手順では、作成者と公開のどちらで行うかが明確に示されます。

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

前提条件

  1. If users and user groups have already been created on one publisher, it is recommended to manually sync the user data to all publishers prior to configuring and enabling user sync.

    ユーザー同期を有効にすると、新規に作成されたユーザーおよびグループのみが同期されるようになります。

  2. 最新のコードがインストールされていることを確認します。

1. Apache Sling Distribution Agent - Sync Agents Factory

ユーザー同期の有効化

  • オーサー環境で

    • 管理者権限でログインします

    • Web コンソールにアクセスします

    • locate Apache Sling Distribution Agent - Sync Agents Factory

      • 編集する既存の設定を選択します(鉛筆アイコン)

        検証 name: socialpubsync

      • select the Enabled checkbox

      • select Save

chlimage_1-387

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

権限の設定​この許可されたユーザーは、手順3で作成者のSling配布を設定するために使用されます。

CAUTION

新しいユーザーを作成する必要があります。

  • デフォルトで割り当てられるユーザーは admin です。
  • コンテンツに *communities-user-admin *user*.*

ACL の追加方法

  • CRXDE Lite にアクセスします

  • ノードを選択 /home

  • 右側のウィンドウで、 Access Control タブを選択します

  • select the + button to add an ACL entry

    • プリンシパル:ユーザー同期用に作成されたユーザーを検索​**
    • Allow
    • 権限: jcr:all
    • 制限 :rep:glob: */activities/*
    • OK」を選択します。
  • すべて保存」を選択します。

chlimage_1-388

関連トピック

3. Adobe Granite Distribution - Encrypted Password Transport Secret Provider

権限の設定

Once an authorized user, a member of the administrators​user group, has been created on all publish instances, that authorized user must be identified on author as having permission to sync user data from author to publish.

  • オーサー環境で

    • 管理者権限でログインします

    • Web コンソールにアクセスします

    • locate Adobe Granite Distribution - Encrypted Password Transport Secret Provider

    • 編集する既存の設定を選択します(鉛筆アイコン)

      検証 property name : socialpubsync-publishUser

    • 手順 2 でパブリッシュ環境で作成した承認済みユーザーのユーザー名とパスワードを設定します

      • for example, usersync-admin

chlimage_1-389

4. Apache Sling Distribution Agent - Queue Agents Factory

ユーザー同期の有効化

  • パブリッシュ環境で

    • 管理者権限でログインします

    • Web コンソールにアクセスします

    • locate Apache Sling Distribution Agent - Queue Agents Factory

      • 編集する既存の設定を選択します(鉛筆アイコン)

        検証 Name : socialpubsync-reverse

      • select the Enabled checkbox

      • select Save

    • 各パブリッシュインスタンスで​繰り返し​ます

chlimage_1-390

5. Adobe Granite Distribution - Diff Observer Factory

グループ同期の有効化

  • 各パブリッシュインスタンスで

    • 管理者権限でログインします

    • Web コンソールにアクセスします

    • locate Adobe Granite Distribution - Diff Observer Factory

      • 編集する既存の設定を選択します(鉛筆アイコン)

        検証 agent name : socialpubsync-reverse

      • select the Enabled checkbox

      • select Save

chlimage_1-391

6. Apache Sling Distribution Trigger - Scheduled Triggers Factory

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

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

  • オーサー環境で

    • 管理者権限でログインします

    • Web コンソールにアクセスします

    • locate Apache Sling Distribution Trigger - Scheduled Triggers Factory

      • 編集する既存の設定を選択します(鉛筆アイコン)

        • 検証 Name : socialpubsync-scheduled-trigger
      • set the Interval in Seconds to the desired interval

      • select Save

chlimage_1-392

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

デフォルトの設定は、単一のパブリッシュインスタンス用の設定です。ユーザーの同期を有効にする理由は、発行ファームなど、複数の発行インスタンスを同期することです。そのため、追加の発行インスタンスを同期エージェントファクトリに追加する必要があります。

7. Apache Sling Distribution Agent - Sync Agents Factory

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

chlimage_1-393

  • 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
  • インポーターエンドポイント​各発行者にはインポーターエンドポイントが必要です。 例えば、パブリッシャーが localhost:4503 と 4504 の 2 つの場合、次の 2 つのエントリが必要です。

    • http://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
    • http://localhost:4504/libs/sling/distribution/services/importers/socialpubsync
  • select Save

8. AEM Communities User Sync Listener

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

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

  • 各パブリッシュインスタンスで:

chlimage_1-394

  • ノードタイプ

    これは、同期するノードタイプのリストです。 sling:Folder 以外のすべてのノードタイプがここにリストされます(sling:folder は別個に処理されます)。

    同期されるノードタイプのデフォルトのリストは次のとおりです。

    • rep:User
    • nt:unstructured
    • nt:resource
  • 無視可能なプロパティ

    何らかの変更が検出された場合に無視されるプロパティのリストです。これらのプロパティに対する変更は、他の変更の副作用として同期される場合がありますが(同期は常にノードレベルでおこなわれるので)、これらのプロパティに対する変更そのものが同期をトリガーすることはありません。

    無視されるデフォルトのプロパティは次のとおりです。

    • cq:lastModified
  • 無視可能なノード

    同期中は完全に無視されるサブパス。 このサブパスの下にあるものはどのタイミングでも同期されません。

    無視されるデフォルトのノードは次のとおりです。

    • .tokens
    • system
  • 分散フォルダ

    同期は不要なので、ほとんどのsling:Foldersは無視されます。 数少ない例外を次に示します。

    同期されるデフォルトのフォルダーは次のとおりです。

    • segments/scoring
    • social/relationships
    • activities

9. 一意の Sling ID

CAUTION

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

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

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

  1. 参照 http://<host>:<port>/system/console/status-slingsettings
  2. Sling ID の値を確認する

chlimage_1-395

あるパブリッシュインスタンスの 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システムでは、次の操作を行います。

        use windows explorer and search for *sling.id.file*

  3. 発行インスタンスの開始

    • スタートアップ時に新しい Sling ID が割り当てられる
  4. Sling ID が一意であることを確認する

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

Vault Package Builder Factory

更新が適切に同期されるようにするには、ユーザー同期用に Vault Package Builder を変更する必要があります。

  • 各 AEM パブリッシュインスタンスで

  • Web コンソールにアクセスします

  • を探す Apache Sling Distribution Packaging - Vault Package Builder Factor

    • Builder name: socialpubsync-vlt
  • 編集アイコンを選択します。

  • 2つ追加 Package Filters :

    • /home/users|-.*/.tokens
    • /home/users|-.*/rep:cache
  • ポリシーの処理:

    • 既存の rep:policy ノードを新しいノードで上書きするには、3 つ目のパッケージフィルターを追加します

      • /home/users|+.*/rep:policy
    • ポリシーが配布されないようにするには、次のように設定します

      • Acl Handling : IGNORE

chlimage_1-396

What Happens When …

パブリッシュ環境でのユーザーの自己登録またはプロファイルの編集

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

When the topology is a publish farm and user sync has been correctly configured, the *user *and user profile is synchronized across the publish farm using Sling distribution.

セキュリティコンソールでのユーザーまたはユーザーグループの作成

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

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

トラブルシューティング

ユーザー同期をオフラインにする方法

パブリッシャーを削除したり、データを手動で同期したりするためにユーザー同期をオフラインにするには、配布キューが空であり、静止している必要があります。

配布キューの状態をチェックするには:

  • オーサー環境で:

    • using CRXDE Lite

      • look for entries in /var/sling/distribution/packages

        • distrpackage_* _* という名前パターンを持つフォルダー名
    • パッケージマネージャーを使用する場合

      • (まだインストールされていない)保留中のパッケージを探します

        • named with the pattern socialpubsync-vlt*
        • created by communities-user-admin

配布キューが空である場合は、ユーザー同期を無効にします。

タスク完了後にユーザー同期を再び有効にするには:

ユーザー同期診断

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

On author, simply navigate from the main console through Tools, Operations, Diagnosis, User Sync Diagnostics.

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

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

chlimage_1-397

パブリッシャーに対する診断の実行方法

When the diagnoistic is run from the author environment, the pass/fail results will include an [INFO] section displaying the list of configured publish instances for confirmation.

このリストには、診断が実行される各パブリッシュインスタンスの URL が記載されています。The url param syncUser is appended to the diagnostics URL with its value set to the authorized sync user created in Step 2.

注意:URL を起動するには、承認済み同期ユーザー​**​がそのパブリッシュインスタンスに既にログインしている必要があります。

chlimage_1-398

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

ユーザー同期が正しく機能しないのは、主に余分な設定が追加されていることが原因です。** Instead, the *existing *default configuration should have been edited.

Web コンソールに表示される、編集されたデフォルトの設定は次のとおりです。複数のインスタンスが表示される場合は、追加した設定を削除する必要があります。

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

chlimage_1-399

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

chlimage_1-400

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

chlimage_1-401

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

chlimage_1-402

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

chlimage_1-403

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

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

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

java.lang.IllegalStateException: This tree does not exist

Then verify that the section 2. Create Authorized User was properly followed.

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

承認済みユーザーは administrators ユーザーグループのメンバーにして、そのグループの権限は変更しないでください。

承認済みユーザーは、すべてのパブリッシュインスタンスに対する次の権限および制限を明示的に保持している必要があります。

パス jcr:all rep:glob
/home X &ast;/アクティビティ/&ast;
/home/users X &ast;/アクティビティ/&ast;
/home/groups X &ast;/アクティビティ/&ast;

As a member of the administrators group, the authorized user should have the following privileges on all publish instances :

パス jcr:all jcr:read rep:write
/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 の節を参照してください

ユーザーおよびユーザーグループの手動同期

To configure or enable user sync, go to step 1: Apache Sling Distribution Agent - Sync Agents Factory

パブリッシャーが使用不能になった場合

パブリッシュインスタンスが使用不能になっても、今後オンラインに戻る場合は削除しないでください。変更はパブリッシャにキューアップされ、オンラインに戻ると変更が処理されます。

発行インスタンスがオンラインに戻らない場合は、完全にオフラインの場合は、キューの構築によって作成者環境でディスク領域の使用量が著しく増加するので、インスタンスを削除する必要があります。

パブリッシャーが停止した場合、オーサー環境のログに次のような例外が記録されます。

28.01.2016 15:57:48.475 ERROR
 [pool-12-thread-34-org_apache_sling_distribution_queue_socialpubsync_endpoint1
 (org/apache/sling/distribution/queue/socialpubsync/endpoint1)]
 org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync] could not deliver package distrpackage_1454014575838_a2b45ec8-0400-42f3-bed8-ae09b66381cb
 org.apache.sling.distribution.packaging.DistributionPackageImportException: failed in importing package ...

パブリッシャーの削除方法

Apache Sling Distribution Agent - Sync Agents Factory からパブリッシャーを削除するには、配布キューが空であり、静止している必要があります。

このページ