Show Menu
トピック×

ユーザーの同期

概要

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は同期に含まれる
セッションが必要な場合は、SSOソリューションを使用するか、スティッキーセッションを使用し、別のパブリッシャーに切り替えられた場合はログインすることをお勧めします。
ユーザー同期が有効化されている場合でも、 administrators グループの同期はサポートされません。代わりに、「相違をインポート」に失敗した場合は、エラーログに記録されます。
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.

ユーザー同期の有効化

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.
ユーザー同期を有効にすると、新規に作成されたユーザーおよびグループのみが同期されるようになります。
  1. 最新のコードがインストールされていることを確認します。

1. Apache Sling Distribution Agent - Sync Agents Factory

ユーザー同期の有効化
  • オーサー環境で

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

権限の設定 ​この許可されたユーザーは、手順3で作成者のSling配布を設定するために使用されます。
新しいユーザーを作成する必要があります。
  • デフォルトで割り当てられるユーザーは admin です。
  • コンテンツに communities-user-admin user.

ACL の追加方法

  • CRXDE Lite にアクセスします
  • ノードを /home 選択
  • 右側のウィンドウで、タブを選択し Access Control ます
  • select the + button to add an ACL entry
    • プリンシパル :ユーザー同期用に作成されたユーザーを検索​**
    • Type : Allow
    • 権限 : jcr:all
    • 制限 :rep:glob: */activities/*
    • OK 」を選択します。
  • すべて保存 」を選択します。
関連トピック

3. Apache Sling Distribution トランスポート認証情報 - ユーザ認証情報に基づく DistributionTransportSecretProvider

権限の設定
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 Apache Sling Distribution Transport Credentials - User Credentials based DistributionTransportSecretProvider
    • select the existing configuration to open for edit (pencil icon) Verify property name : socialpubsync-publishUser
    • 手順 2 でパブリッシュ環境で作成した 承認済みユーザー のユーザー名とパスワードを設定します
      • for example, usersync-admin

4. Apache Sling Distribution Agent - Queue Agents Factory

ユーザー同期の有効化
  • パブリッシュ環境で :
    • 管理者権限でサインインします。
    • Web コンソール にアクセスします
    • locate Apache Sling Distribution Agent - Queue Agents Factory
      • select the existing configuration to open for edit (pencil icon) Verify Name : socialpubsync-reverse
      • select the Enabled checkbox
      • select Save
    • 各パブリッシュインスタンスに対して ​繰り返し

5. Adobe Social Sync - Diff Observer Factory

グループ同期の有効化
  • 各パブリッシュインスタンスで :
    • 管理者権限でサインインします。
    • Web コンソール にアクセスします
    • locate Adobe Social Sync - Diff Observer Factory
      • 編集する既存の設定を選択します(鉛筆アイコン)
        検証 agent name : socialpubsync-reverse
      • select the Enabled checkbox
      • select Save

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

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

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

7. Apache Sling Distribution Agent - Sync Agents Factory

パブリッシュインスタンスを追加するには:
  • Exporter Endpoints 各パブリッシャーにエクスポーターエンドポイントが必要です。例えば、パブリッシャーが localhost:4503 と 4504 の 2 つの場合、次の 2 つのエントリが必要です。
    • https://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reverse
    • https://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reverse
  • インポーターエン ​ドポイント各発行者のインポーターエンドポイントが必要です。 例えば、パブリッシャーが localhost:4503 と 4504 の 2 つの場合、次の 2 つのエントリが必要です。
    • https://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
    • https://localhost:4504/libs/sling/distribution/services/importers/socialpubsync
  • select Save

8. AEM Communities User Sync Listener

(オプション)追加の JCR ノードの同期
複数のパブリッシュインスタンス間で同期するカスタムデータがある場合は、次のようにします。
  • 各パブリッシュインスタンスで :
    • 管理者権限でサインインします。
    • Web コンソール にアクセスします
      • for example, https://localhost:4503/system/console/configMgr
    • locate AEM Communities User Sync Listener
    • select the existing configuration to open for edit (pencil icon) Verify Name : socialpubsync-scheduled-trigger
  • Node Types 同期するノードタイプのリストです。sling:Folder 以外のすべてのノードタイプがここにリストされます(sling:folder は別個に処理されます)。 同期されるノードタイプのデフォルトのリストは次のとおりです。
    • rep:User
    • nt:unstructured
    • nt:resource
  • Ignorable Properties 何らかの変更が検出された場合に無視されるプロパティのリストです。これらのプロパティに対する変更は、他の変更の副作用として同期される場合がありますが(同期は常にノードレベルでおこなわれるので)、これらのプロパティに対する変更そのものが同期をトリガーすることはありません。 無視されるデフォルトのプロパティは次のとおりです。
    • cq:lastModified
  • Ignorable Nodes 同期中に完全に無視されるサブパスです。このサブパスの下にあるものはどのタイミングでも同期されません。 無視されるデフォルトのノードは次のとおりです。
    • .tokens
    • system
  • Distributed Folders 同期が不要であるのでほとんどの sling:Folders は無視されます。数少ない例外を次に示します。 同期されるデフォルトのフォルダーは次のとおりです。
    • segments/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システムの場合:
        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 Factory
    • Builder name: socialpubsync-vlt
  • 編集アイコンを選択します。
  • 2つ追加しま Package Node Filters す。
    • /home/users|-.*/.tokens
    • /home/users|-.*/rep:cache
  • ポリシーの処理:
    • 既存の rep:policy ノードを新しいノードで上書きするには、3 つ目のパッケージフィルターを追加します
      • /home/users|+.*/rep:policy
    • ポリシーが配布されないようにするには、次のように設定します
      • Acl Handling: IGNORE

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.

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

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

トラブルシューティング

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

パブリッシャーを削除 したり、 データを手動で同期 したりするためにユーザー同期をオフラインにするには、配布キューが空であり、静止している必要があります。
配布キューの状態をチェックするには:
  • オーサー環境で:
      • 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.
結果はユーザー同期診断コンソールに表示されます。
ユーザー同期が有効になっていない場合は、次のように表示されます。

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

When the diagnostic is run from the author environment, the pass/fail results will include an # 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 を起動するには、承認済み同期ユーザー​**​がそのパブリッシュインスタンスに既にログインしている必要があります。

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

ユーザー同期が正しく機能しないのは、主に余分な設定が追加されていることが原因です。** Instead, the *existing *default configuration should have been edited .
Web コンソールに表示される、編集されたデフォルトの設定は次のとおりです。複数のインスタンスが表示される場合は、追加した設定を削除する必要があります。

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

(オーサー)Apache Sling Distribution トランスポート認証情報 - ユーザ認証情報に基づく DistributionTransportSecretProvider 1 つ

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

(パブリッシュ)Adobe Social Sync - 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
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
/activities/
/home/users
X
/activities/
/home/groups
X
/activities/
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 からパブリッシャーを削除するには、配布キューが空であり、静止している必要があります。