コミュニティのユーザーの同期 communities-user-synchronization
はじめに introduction
AEM Communitiesのパブリッシュ環境から(設定されている権限に応じて)、 サイト訪問者 ~になるかもしれない メンバー、作成 ユーザーグループ を編集し、 メンバープロファイル.
ユーザーデータ は、 ユーザー, ユーザープロファイル および ユーザーグループ.
メンバー は、 ユーザー オーサー環境に登録されたユーザーとは対照的に、パブリッシュ環境に登録されている。
ユーザーデータの詳細については、 ユーザーとユーザーグループの管理.
パブリッシュファーム間でのユーザーの同期 synchronizing-users-across-a-publish-farm
設計上、パブリッシュ環境で作成されたユーザーデータは、オーサー環境には表示されません。
オーサー環境で作成されたほとんどのユーザーデータは、オーサー環境に残ることを目的としており、パブリッシュインスタンスに同期もレプリケートもされません。
次の場合に トポロジ は パブリッシュファーム、1 つのパブリッシュインスタンスでおこなわれた登録と変更を、他のパブリッシュインスタンスと同期する必要があります。 メンバーは、任意のパブリッシュノードにログインしてデータを確認できる必要があります。
ユーザーの同期が有効になっている場合、ユーザーデータはファーム内のパブリッシュインスタンス間で自動的に同期されます。
ユーザー同期の設定手順 user-sync-setup-instructions
パブリッシュファーム間で同期を有効にする手順について詳しくは、
バックグラウンドでのユーザー同期 user-sync-in-the-background
-
VLT パッケージ:は、パブリッシャーに対しておこなわれたすべての変更の zip ファイルです。パブリッシャーは、パブリッシャー間で配布する必要があります。 パブリッシャー上で変更を行うと、変更イベントリスナーによって選択されたイベントが生成されます。 これにより、すべての変更を含む vlt パッケージが作成されます。
-
配布パッケージ:には、Sling の配布情報が含まれています。 コンテンツの配信先と最後に配信された日時に関する情報です。
次の場合に発生する処理 what-happens-when
コミュニティサイトコンソールからサイトを発行 publish-site-from-communities-sites-console
オーサー環境で、コミュニティサイトが コミュニティサイトコンソールに設定した場合、 複製 関連するページと Sling が、動的に作成されたコミュニティユーザーグループを、そのメンバーシップも含めて配布します。
ユーザーがパブリッシュ環境で作成または編集されたプロファイル user-is-created-or-edits-profile-on-publish
デザインにより、パブリッシュ環境で作成されたユーザーとプロファイル(自己登録、ソーシャルログイン、LDAP 認証など)は、オーサー環境には表示されません。
トポロジーがパブリッシュファームであり、ユーザー同期が正しく設定されると、Sling 配布を使用して ユーザー と ユーザープロファイル がパブリッシュファーム間で同期されます。
新しいコミュニティグループがパブリッシュで作成されました new-community-group-is-created-on-publish
パブリッシュインスタンスから開始したコミュニティグループの作成では、新しいサイトページと新しいユーザーグループが作成されますが、実際にはオーサーインスタンス上で作成されます。
プロセスの一環として、新しいサイトページがすべてのパブリッシュインスタンスにレプリケートされます。 動的に作成されるコミュニティユーザーグループとそのメンバーシップは、 Sling をすべてのパブリッシュインスタンスに配布します。
ユーザーまたはユーザーグループは、セキュリティコンソールを使用して作成されます users-or-user-groups-are-created-using-security-console
設計上、パブリッシュ環境で作成されたユーザーデータはオーサー環境には表示されず、オーサー環境にもその逆も表示されます。
ユーザー管理およびセキュリティコンソールを使用してパブリッシュ環境で新しいユーザーを追加すると、ユーザーの同期機能により、新しいユーザーとそのグループメンバーシップがその他のパブリッシュインスタンスに同期されます(必要な場合)。ユーザー同期により、セキュリティコンソールによって作成されたユーザーグループも同期されます。
ユーザーが投稿時にコンテンツを投稿 user-posts-content-on-publish
ユーザー生成コンテンツ (UGC) の場合、パブリッシュインスタンスに入力されたデータには、 設定済み SRP.
ベストプラクティス bestpractices
デフォルトでは、ユーザー同期は 無効. ユーザー同期を有効にするには、OSGi の既存の設定を変更する必要があります 。 ユーザーの同期を有効にした結果、新しい設定を追加しないでください。
ユーザー同期では、作成者環境ではユーザーデータが作成されていない場合でも、作成者環境に基づいてユーザーデータの配布を管理します。
前提条件
-
)1 つのパブリッシャーでユーザーおよびユーザーグループが既に作成されている場合は、ユーザー同期を設定して有効にする前に、ユーザーデータをすべてのパブリッシャーと手動で同期することをお勧めします。
ユーザー同期を有効にすると、新規に作成されたユーザーおよびグループのみが同期されるようになります。
-
最新のコードがインストールされていることを確認します。
AEM Communitiesでユーザーの同期を有効にするには、次の設定が必要です。 Sling コンテンツの配布が失敗するのを防ぐために、これらの設定が正しいことを確認します。
Apache Sling Distribution Agent - Sync Agents Factory apache-sling-distribution-agent-sync-agents-factory
この設定は、パブリッシャー全体で同期されるコンテンツを取得します。 設定はオーサーインスタンス上にあります。 作成者は、そこに存在するすべての公開者と、すべての情報を同期する場所を追跡する必要があります。
この設定のデフォルト値は、1 つのパブリッシュインスタンス用です。 ユーザー同期は、パブリッシュファームなど、複数のパブリッシュインスタンスを同期する場合に便利なので、追加のパブリッシュインスタンスを設定に追加する必要があります。
コンテンツはどのように同期されますか?
オーサーインスタンスが、パブリッシャーのエクスポーターエンドポイントに ping を発行します。 特定の発行者 (n) でユーザーが作成または更新されるたびに、作成者は、書き出しエンドポイントおよび コンテンツをプッシュ を他のパブリッシャー(n-1、つまりコンテンツの取得元とは別のパブリッシャー)に送信する場合。
Apache Sling 同期エージェントを設定するには
AEMオーサーインスタンス上:
-
管理者権限でログインします。
-
次にアクセス: Web コンソール.
-
場所 Apache Sling Distribution Agent - Sync Agents Factory.
-
編集用に開く既存の設定を選択します(鉛筆アイコン)。
-
名前を確認:
socialpubsync
. -
「有効」チェックボックスを選択します。
-
選択 複数のキューを使用.
-
指定 エクスポーターエンドポイント および インポーターエンドポイント (エクスポーターおよびインポーターエンドポイントをさらに追加できます)。
これらのエンドポイントは、コンテンツの取得元と、コンテンツのプッシュ先を定義します。 作成者は、指定されたエクスポーターエンドポイントからコンテンツを取得し、そのコンテンツを(コンテンツの取得元の発行者以外の)発行者にプッシュします。
-
AdobeGranite 配布 — 暗号化パスワードトランスポート秘密鍵プロバイダー adobe-granite-distribution-encrypted-password-transport-secret-provider
作成者は、作成者から発行へのユーザーデータの同期権限を持つ、認証済みユーザーを識別できます。
この 認証済みユーザーが作成されました すべてのパブリッシュインスタンスでは、パブリッシャーはオーサーとの接続とオーサーでの Sling 配布の設定をおこなうことができます。 この承認済みユーザーは、すべての要件を満たしています ACL.
パブリッシャーにデータをインストールする場合、またはパブリッシャーからデータを取得する場合は常に、この設定で設定された資格情報(ユーザー名とパスワード)を使用してパブリッシャーに接続します。
認証済みユーザーを使用してオーサーとパブリッシャーを接続するには
AEMオーサーインスタンス上:
Apache Sling Distribution Agent - Queue Agents Factory apache-sling-distribution-agent-queue-agents-factory
この設定は、パブリッシャー間で同期するデータを設定するために使用します。 データが 許可されたルート を指定した場合、「var/community/distribution/diff」がアクティブ化され、作成されたレプリケーターがパブリッシャーからデータを取得して、他のパブリッシャーにインストールします。
同期するデータ(ノードパス)を設定するには
AEMパブリッシュインスタンス上:
-
管理者権限でログインします。
-
次にアクセス: Web コンソール.
-
場所 Apache Sling Distribution Agent - Queue Agents Factory.
-
編集用に開く既存の設定を選択します(鉛筆アイコン)。
名前を検証:
socialpubsync
-reverse. -
を選択します。 有効 チェックボックスをオンにして保存します。
-
レプリケート先のノードパスを指定します。 許可されたルート.
-
各
publish
インスタンス。
AdobeGranite 配布 — 差分監視者ファクトリー adobe-granite-distribution-diff-observer-factory
この設定は、パブリッシャー間でグループメンバーシップを同期します。
あるパブリッシャーでグループのメンバーシップを変更しても、他のパブリッシャーのメンバーシップが更新されない場合は、 ref:members が プロパティ名を参照.
メンバーの同期を確実に行うには
各AEMパブリッシュインスタンスで、次の手順を実行します。
-
管理者権限でログインします。
-
次にアクセス: Web コンソール.
-
場所 AdobeGranite 配布 — 差分監視者ファクトリー.
-
編集用に開く既存の設定を選択します(鉛筆アイコン)。
検証 エージェント名:
socialpubsync
-reverse**. -
「有効」チェックボックスを選択します。
-
指定 rep
:members
asdescription
のプロパティ名 プロパティ名を参照、および保存します。
Apache Sling 配布トリガー — 予定トリガーファクトリ apache-sling-distribution-trigger-scheduled-triggers-factory
この設定を使用すると、(作成者が変更を取り込んで発行者によって送信される)ポーリング間隔を設定して、発行者間で変更を同期できます。
作成者は、30 秒ごと(デフォルト)に発行者をポーリングします。 フォルダーにパッケージが存在する場合 /var/sling/distribution/packages/ socialpubsync - vlt /shared その後、これらのパッケージを取得し、他のパブリッシャーにインストールします。
ポーリング間隔を変更するには
AEMオーサーインスタンス上:
-
管理者権限でログインします。
-
次にアクセス: Web コンソール例: http://localhost:4502/system/console/configMgr
-
場所 Apache Sling 配布トリガー — 予定トリガーファクトリ
- 編集用に開く既存の設定を選択します(鉛筆アイコン)
- 検証
Name:
socialpubsync
-scheduled-トリガー - 間隔(秒)を目的の間隔に設定し、保存します。
AEM Communities User Sync Listener aem-communities-user-sync-listener
Sling 配布で、サブスクリプションとフォローに不一致がある問題については、 AEM Communities User Sync Listener 設定は次のように設定されます。
- NodeTypes
- IgnorableProperties
- IgnorableNodes
- DistributedFolders
購読、フォロー、および通知を同期するには
各AEMパブリッシュインスタンスで、次の手順を実行します。
-
管理者権限でログインします。
-
次にアクセス: Web コンソール. 例: http://localhost:4503/system/console/configMgr.
-
場所 AEM Communities User Sync Listener.
-
編集用に開く既存の設定を選択します(鉛筆アイコン)。
名前を検証:
socialpubsync
-scheduled-トリガー -
以下を設定します。
NodeTypes
:rep:User
nt
:unstructurednt
:resourcerep:ACL
sling:Folder
sling:OrderedFolder
このプロパティで指定されたノードタイプが同期され、通知情報(ブログと設定が続く)が異なる発行者間で同期されます。
-
同期するすべてのフォルダを追加 DistributedFolders. 例:
セグメント/スコアリング
ソーシャル/関係
activities
-
を
ignorablenodes
移動先:.tokens
system
rep
:cache
(スティッキーセッションを使用するので、このノードを別のパブリッシャーに同期する必要はありません)。
一意の Sling ID unique-sling-id
AEMオーサーインスタンスは、Sling ID を使用して、データの送信先と、パッケージを送り返す(または送り返す)必要のあるパブリッシャーを特定します。
パブリッシュファーム内のすべてのパブリッシャーが一意の Sling ID を持っていることを確認します。 Sling ID がパブリッシュファーム内の複数のパブリッシュインスタンスに対して同じ場合、ユーザーの同期は失敗します。 作成者は、パッケージの取得元とインストール先を知りません。
パブリッシュファームで発行者の一意の Sling ID を確保するには
各パブリッシュインスタンスで以下をおこないます。
-
の値を確認します。 Sling ID.
あるパブリッシュインスタンスの Sling ID が他のパブリッシュインスタンスの Sling ID と一致する場合は、次のようにします。
-
一致する Sling ID を持つパブリッシュインスタンスの 1 つを停止します。
-
内
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_
-
パブリッシュインスタンスを起動します。 起動時に、新しい Sling ID が割り当てられます。
-
を検証します。 Sling ID が一意になりました。
すべてのパブリッシュインスタンスに一意の Sling ID が割り当てられるまで、これらの手順を繰り返します。
Vault Package Builder Factory vault-package-builder-factory
更新を正しく同期するには、ユーザ同期用に Vault パッケージビルダーを変更する必要があります。
In /home/users
, a /rep:cache
ノードが作成されます。 ノードのプリンシパル名に対してクエリを実行すると、このキャッシュが直接使用できることを確認するために使用されるキャッシュです。
次の場合にユーザーの同期が停止する可能性がある: rep:cache
ノードはパブリッシャー間で同期されます。
パブリッシャー全体で更新が正しく同期されるようにするには
各AEMパブリッシュインスタンスで、次の手順を実行します。
-
次にアクセス: Web コンソール例: http://localhost:4503/system/console/configMgr.
-
を Apache Sling 配布パッケージ — Vault Package Builder Factory Builder name:socialpubsync-vlt
-
編集アイコンを選択します。
-
次の 2 つのパッケージフィルターを追加します。
/home/users|-.\*/.tokens
/home/users|**+**.\*/rep:cache
-
ポリシーの処理
-
既存のレプリケーションを上書きするには
:policy
新しいノードを含むノードに、3 つ目のパッケージフィルターを追加します。/home/users|**+**.\*/rep:policy
-
ポリシーの配布を防ぐには、
Acl 処理:無視
-
AEM Communitiesでの Sling 配布のトラブルシューティング troubleshoot-sling-distribution-in-aem-communities
Sling 配布が失敗した場合は、次のデバッグ手順を試してください。
-
確認 誤って追加された設定. 複数の設定を追加または編集しないようにします。代わりに、既存のデフォルト設定を編集する必要があります。
-
認証済みユーザー権限の確認. パッケージが正しくインストールされていない場合は、 認証済みユーザー 最初のパブリッシュインスタンスで作成されたが、正しい ACL を持っている。
これを検証するには、 認証済みユーザーが作成されました 変更 AdobeGranite 配布 — 暗号化パスワードトランスポート秘密鍵プロバイダー オーサーインスタンスの設定で、管理者ユーザーの資格情報を使用します。 次に、パッケージを再度インストールしてみてください。 ユーザー同期が管理者の資格情報で正常に機能する場合は、作成された公開ユーザーに適切な ACL がなかったことを意味します。
-
差分監視者ファクトリ設定を確認. 特定のノードのみがパブリッシュファーム全体で同期されない(例えば、グループメンバーが同期されない)場合は、 AdobeGranite 配布 — 差分監視者ファクトリー 設定が有効になっており、 rep:members が プロパティ名を参照.
-
AEM Communities User Sync Listener 設定を確認します。 作成したユーザーが同期されているものの、サブスクリプションとフォローが機能しない場合は、AEM Communities User Sync Listener の設定に次の事項が含まれていることを確認します。
- ノードタイプ — に設定 rep:User, nt:unstructured, nt:resource, rep:ACL, sling:Folder、および sling:OrderedFolder
- 無視可能なノード — に設定 .tokens, システム、および rep:cache
- [ 配布フォルダ ]:配布するフォルダに設定します
-
パブリッシュインスタンスでのユーザー作成時に生成されたログを確認する. 上記の設定が適切に設定されているにもかかわらず、ユーザー同期が機能していない場合は、ユーザーの作成時に生成されるログを確認します。
次のように、ログの順序が同じかどうかを確認します。
code language-shell 15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7422] com.adobe.cq.social.sync.impl.PublisherSyncServiceImpl Handing these paths to the distribution subsystem: [/home/users/C, /home/users/C/Cw-5avWqilmqsNn5hCvK] 15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7422] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync-reverse] REQUEST-START DSTRQ2: ADD paths=[/home/users/C, /home/users/C/Cw-5avWqilmqsNn5hCvK], user=communities-user-admin 15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7431] com.adobe.cq.social.sync.impl.PublisherSyncServiceImpl Handing these paths to the distribution subsystem: [/home/users/C/Cw-5avWqilmqsNn5hCvK, /home/users/C/Cw-5avWqilmqsNn5hCvK/profile, /home/users/C/Cw-5avWqilmqsNn5hCvK/rep:policy] 15.05.2016 18:33:01.523 *INFO* [sling-oak-observation-7431] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync-reverse] REQUEST-START DSTRQ3: ADD paths=[/home/users/C/Cw-5avWqilmqsNn5hCvK, /home/users/C/Cw-5avWqilmqsNn5hCvK/profile, /home/users/C/Cw-5avWqilmqsNn5hCvK/rep:policy], user=communities-user-admin 15.05.2016 18:33:01.757 *INFO* [sling-oak-observation-7431] org.apache.jackrabbit.vault.packaging.impl.JcrPackageDefinitionImpl unwrapping package sling/distribution:socialpubsync-vlt_1463337181554_ebb27ad9-a861-4405-9342-d64c916654e2:0.0.1 15.05.2016 18:33:01.820 *INFO* [sling-oak-observation-7422] org.apache.jackrabbit.vault.packaging.impl.JcrPackageDefinitionImpl unwrapping package sling/distribution:socialpubsync-vlt_1463337181554_58811273-5861-48fe-95d2-4aff367b99c3:0.0.1 15.05.2016 18:33:02.023 *INFO* [sling-oak-observation-7430] com.adobe.cq.social.sync.impl.PublisherSyncServiceImpl Handing these paths to the distribution subsystem: [/home/users/C/Cw-5avWqilmqsNn5hCvK/profile] 15.05.2016 18:33:02.023 *INFO* [sling-oak-observation-7430] org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync-reverse] REQUEST-START DSTRQ4: ADD paths=[/home/users/C/Cw-5avWqilmqsNn5hCvK/profile], user=communities-user-admin 15.05.2016 18:33:02.273 *INFO* [sling-oak-observation-7430] org.apache.jackrabbit.vault.packaging.impl.JcrPackageDefinitionImpl unwrapping package sling/distribution:socialpubsync-vlt_1463337182039_f34f4fa6-10b9-42eb-8740-4da9d4d38f99:0.0.1
デバッグするには:
-
ユーザーの同期を無効にします。
-
AEMオーサーインスタンスで、管理者権限でログインします。
-
次にアクセス: Web コンソール. 例: http://localhost:4502/system/console/configMgr.
-
設定の場所 Apache Sling Distribution Agent - Sync Agents Factory.
-
選択を解除する 有効 チェックボックス。
オーサーインスタンスでのユーザー同期を無効にすると、(エクスポーターおよびインポーター)エンドポイントが無効になり、オーサーインスタンスが静的になります。 この vlt 作成者はパッケージに対して ping を送信したり取得したりしません。
パブリッシュインスタンスでユーザーが作成された場合、 vlt パッケージは次の場所に作成されます。 /var/sling/distribution/packages/ socialpubsync - vlt /data ノード。 作成者がこれらのパッケージを別のサービスにプッシュした場合も同様です。 このデータをダウンロードして抽出し、他のサービスにプッシュされるすべてのプロパティを確認できます。
-
-
投稿者に移動し、投稿者でユーザーを作成します。 その結果、イベントが作成されます。
-
次を確認します。 ログの順序(ユーザーの作成時に作成)
-
の vlt パッケージの作成日:
/var/sling/distribution/packages/socialpubsync-vlt/data
. -
次に、AEMオーサーインスタンスでユーザー同期を有効にします。
-
パブリッシャーで、のエクスポーターまたはインポーターエンドポイントを変更します。 Apache Sling Distribution Agent - Sync Agents Factory.
パッケージデータをダウンロードおよび抽出して、他のパブリッシャーにプッシュされるすべてのプロパティと、失われるデータを確認できます。
-