コミュニティのユーザーの同期

はじめに

AEM Communitiesでは、パブリッシュ環境から(設定されている権限に応じて)サイト訪問者​が​メンバー​になり、ユーザーグループ​を作成し、メンバープロファイル​を編集します。

ユーザ ーデータとは、ユーザー 、ユーザープロファイ​ル、ユーザーグ ループ **​を指します。

メンバーという用語は、オーサー環境で登録されたユーザーではなく、パブリッシュ環境で登録されたユーザーを指します。

ユーザーデータについて詳しくは、ユーザーとユーザーグループの管理を参照してください。

パブリッシュファーム間のユーザーの同期

仕様上、パブリッシュ環境で作成されたデータは、オーサー環境では表示されません。

オーサー環境で作成されたほとんどのユーザーデータは、オーサー環境に残されたままとなり、パブリッシュインスタンスには同期もレプリケートもされません。

トポロジパブリッシュファームの場合、1つのパブリッシュインスタンスに対する登録と変更を他のパブリッシュインスタンスと同期する必要があります。 メンバーは、ログインして、任意のパブリッシュノードでデータを確認できる必要があります。

ユーザーの同期を有効にすると、ファーム内のパブリッシュインスタンス間でユーザーデータが自動的に同期されます。

ユーザーの同期のセットアップ手順

詳細なステップバイステップの手順については、以下を参照してください。

バックグラウンドでのユーザー同期

sling-dist-workflow

  • VLTパッケージ:は、パブリッシャーでおこなわれたすべての変更のzipファイルです。パブリッシャー間で配布する必要があります。パブリッシャーでの変更は、変更イベントリスナーによって選択されるイベントを生成します。 これにより、すべての変更を含むvltパッケージが作成されます。

  • 配布パッケージ:には、Slingの配布情報が含まれます。これは、コンテンツの配信先と最後に配信された日時に関する情報です。

各種操作の結果

コミュニティのサイトコンソールでのサイトの公開

オーサー環境で、コミュニティサイトをコミュニティサイトコンソールから公開すると、関連するページがレプリケートされます。また、Sling によって、動的に作成されたコミュニティユーザーグループ(メンバーシップを含む)が配信されます。

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

仕様上、パブリッシュ環境で(自己登録、ソーシャルログイン、LDAP 認証などで)作成されたユーザーやプロファイルはオーサー環境では表示されません。

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

パブリッシュ環境での新しいコミュニティグループの作成

パブリッシュインスタンスから開始されたコミュニティグループの作成は、新しいサイトページと新しいユーザーグループに結び付きますが、実際にはオーサーインスタンス上でおこなわれます。

このプロセスの一環として、新しいサイトページがすべてのパブリッシュインスタンスにレプリケートされます。動的に作成されるコミュニティユーザーグループとそのメンバーシップは、Slingですべてのパブリッシュインスタンスに配布されます。

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

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

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

ユーザーによるパブリッシュ環境でのコンテンツの投稿

ユーザー生成コンテンツ(UGC)に関しては、パブリッシュインスタンスで入力されたデータへのアクセスは、設定済みの SRP を通じておこなわれます。

ベストプラクティス

デフォルトでは、ユーザー同期は​無効​になっています。ユーザー同期を有効にするには、OSGi の既存の​**​設定を変更する必要があります。ユーザー同期を有効にした結果、新しい設定が追加されることはありません。

ユーザー同期では、オーサー環境で作成されていないユーザーデータでもその配布の管理はオーサー環境に依存します。

前提条件

  1. ユーザーとユーザーグループが既に1つのパブリッシャー上に作成されている場合は、ユーザー同期を設定して有効にする前に、すべてのパブリッシャーにユーザーデータを手動で同期することをお勧めします。

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

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

AEM Communitiesでユーザー同期を有効にするには、次の設定が必要です。 Slingコンテンツの配布が失敗するのを防ぐために、これらの設定が正しいことを確認します。

Apache Sling Distribution Agent - Sync Agents Factory

この設定は、パブリッシャー間で同期されるコンテンツを取得します。 設定はオーサーインスタンス上にあります。 作成者は、そこに存在するすべての発行者と、すべての情報を同期する場所を追跡する必要があります。

設定のデフォルト値は、単一のパブリッシュインスタンス用です。 ユーザー同期は、パブリッシュファームなど複数のパブリッシュインスタンスを同期する場合に役立つので、追加のパブリッシュインスタンスを設定に追加する必要があります。

コンテンツはどのように同期されますか?

オーサーインスタンスが、パブリッシャーのエクスポーターエンドポイントにpingを発行します。 特定のパブリッシャー(n)でユーザーが作成または更新されるたびに、オーサーはエクスポーターエンドポイントからコンテンツを取得し、コンテンツを他のパブリッシャー(n-1)にプッシュします。

Apache Sling Sync Agents設定を設定するには

AEMオーサーインスタンス上:

  1. 管理者権限でサインインします。

  2. Webコンソールにアクセスします。

    例えば、http://localhost:4502/system/console/configMgrのようにします。

  3. Apache Sling Distribution Agent - Sync Agents Factory​を探します。

    • 編集用に開く既存の設定を選択します(鉛筆アイコン)。

    • 名前の確認:socialpubsync.

    • 有効」チェックボックスを選択します。

    • 複数のキューを使用」を選択します。

    • エクスポーターエンドポイント​と​インポーターエンドポイント​を指定します(エクスポーターとインポーターエンドポイントを追加できます)。

      これらのエンドポイントは、コンテンツの取得元と、コンテンツのプッシュ先を定義します。 オーサーは、指定されたエクスポーターエンドポイントからコンテンツを取得し、(コンテンツを取得したパブリッシャー以外の)パブリッシャーにコンテンツをプッシュします。
      sync-agent-fact

Adobe Granite Distribution - Encrypted Password Transport Secret Provider

作成者は、作成者から発行へのユーザーデータの同期権限を持つ、承認されたユーザーを識別できます。

許可されたユーザーがすべてのパブリッシュインスタンスでを作成すると、発行者はオーサーと接続し、オーサー上でSling配布を設定できます。 この権限を持つユーザーは、必要なACLをすべて持っています。

パブリッシャーにデータをインストールする場合、またはパブリッシャーからデータを取得する場合は常に、作成者は、この設定で設定された資格情報(ユーザー名とパスワード)を使用してパブリッシャーに接続します。

許可されたユーザーを使用してオーサーとパブリッシャーを接続するには

AEMオーサーインスタンス上:

  1. 管理者権限でサインインします。

  2. Webコンソールにアクセスします。

    例えば、http://localhost:4502/system/console/configMgrのようにします。

  3. Password Granite Distribution - Encrypted Password Transport Secret Provider​を探します。

  4. 編集用に開く既存の設定を選択します(鉛筆アイコン)。

    プロパティname: socialpubsync- publishUser .​を確認します。

  5. ユーザー名とパスワードを許可されたユーザーに設定します。

    例: usersync-admin

    granite-passwrd-trans

Apache Sling Distribution Agent - Queue Agents Factory

この設定は、パブリッシャー間で同期するデータを設定するために使用します。 許可されたルート​で指定されたパスでデータが作成/更新されると、「var/community/distribution/diff」がアクティブ化され、作成されたレプリケーターがパブリッシャーからデータを取得して他のパブリッシャーにインストールします。

同期するデータ(ノードパス)を設定するには

AEMパブリッシュインスタンス上:

  1. 管理者権限でサインインします。

  2. Webコンソールにアクセスします。

    例えば、http://localhost:4503/system/console/configMgrのようにします。

  3. Apache Sling Distribution Agent - Queue Agents Factory​を探します。

  4. 編集用に開く既存の設定を選択します(鉛筆アイコン)。

    名前の検証:socialpubsync -reverse

  5. 有効」チェックボックスを選択して保存します。

  6. 許可されたルート​に複製するノードパスを指定します。

  7. publishインスタンスに対して繰り返します。

    queue-agents-fact

Adobe Granite Distribution - Diff Observer Factory

この設定は、パブリッシャー間でグループメンバーシップを同期します。
あるパブリッシャーでグループのメンバーシップを変更しても他のパブリッシャーのメンバーシップが更新されない場合は、ref:members​が​lookプロパティ名​に追加されていることを確認します。

メンバーの同期を確実に行うには

各AEMパブリッシュインスタンスで、次の操作を実行します。

  1. 管理者権限でサインインします。

  2. Webコンソールにアクセスします。

    例えば、http://localhost:4503/system/console/configMgrのようにします。

  3. AdobeGranite Distribution - Diff Observer Factory​を見つけます。

  4. 編集用に開く既存の設定を選択します(鉛筆アイコン)。

    エージェント名​を確認します。socialpubsync -reverse**

  5. 有効」チェックボックスを選択します。

  6. lookedプロパティ名​に​rep:members​をdescriptionと指定し、「保存」を選択します。

    diff-obs

Apache Sling Distribution Trigger - Scheduled Triggers Factory

この設定を使用すると、(パブリッシャーがpingを送信し、オーサーによって変更が取り込まれた後の)ポーリング間隔を設定して、パブリッシャー間で変更を同期できます。

作成者は、30秒ごとに発行者をポーリングします(デフォルト)。 パッケージが​/var/sling/distribution/packages/ socialpubsync - vlt /shared​フォルダーに存在する場合は、それらのパッケージが取得され、他のパブリッシャーにインストールされます。

ポーリング間隔を変更するには

AEMオーサーインスタンス上:

  1. 管理者権限でサインインします。

  2. Webコンソールにアクセスします(例:http://localhost:4502/system/console/configMgr)。

  3. Apache Sling Distributionトリガー- ScheduledトリガーFactory​を探します。

    • 編集用に開く既存の設定を選択します(鉛筆アイコン)。
    • Name: socialpubsync-scheduled-トリガー​を確認します。
    • 間隔(秒)を目的の間隔に設定し、保存します。

    scheduled-trigger

AEM Communities User Sync Listener

Sling配布で、サブスクリプションとフォローに矛盾がある問題については、AEM Communities User Sync Listener​設定の次のプロパティが設定されているかどうかを確認します。

  • NodeTypes
  • IgnorableProperties
  • IgnorableNodes
  • DistributedFolders

購読、フォロー、通知を同期するには

各AEMパブリッシュインスタンスで、次の操作を実行します。

  1. 管理者権限でサインインします。

  2. Webコンソールにアクセスします。 例えば、http://localhost:4503/system/console/configMgrのようにします。

  3. AEM Communities User Sync Listener​を探します。

  4. 編集用に開く既存の設定を選択します(鉛筆アイコン)。

    名前の検証:socialpubsync-scheduled-トリガー

  5. 次の​NodeTypes​を設定します。

    rep:User

    nt :unstructured

    nt :resource

    rep:ACL

    sling:Folder

    sling:OrderedFolder

    このプロパティで指定されたノードタイプが同期され、通知情報(続くブログと設定)が異なるパブリッシャー間で同期されます。

  6. DistributedFolders​に同期するすべてのフォルダーを追加します。 例:

    segments/scoring

    social/relationships

    activities

  7. ignorablenodes​を次のように設定します。

    .tokens

    system

    rep :cache (スティッキーセッションを使用するので、このノードを別のパブリッシャーに同期する必要はありません)

    user-sync-listner

一意の Sling ID

AEMオーサーインスタンスは、Sling IDを使用して、データの送信元と、パッケージの送り先(または送り先の不要な発行者)を特定します。

パブリッシュファーム内のすべてのパブリッシャーが一意のSling IDを持っていることを確認します。 Sling IDがパブリッシュファーム内の複数のパブリッシュインスタンスに対して同じである場合、ユーザーの同期は失敗します。 作成者は、パッケージの取得元とインストール先を知りません。

パブリッシュファーム内で発行者の一意のSling IDを確保するには

各パブリッシュインスタンスで以下をおこないます。

  1. https://host:port/system/console/status-slingsettingsを参照します。

  2. Sling ID​の値を確認します。

    slingid

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

  3. Sling IDが一致するパブリッシュインスタンスの1つを停止します。

  4. 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_

  5. 発行インスタンスを起動します。起動時に、新しいSling IDが割り当てられます。

  6. Sling ID​が一意になったことを検証します。

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

Vault Package Builder Factory

更新を正しく同期するには、ユーザ同期用にVaultパッケージビルダを変更する必要があります。
/home/users/rep:cacheノードが作成されます。 これは、ノードのプリンシパル名に対してクエリを実行すると、このキャッシュを直接使用できることを見つけるために使用されるキャッシュです。

rep:cache ノードがパブリッシャー間で同期されると、ユーザーの同期が停止する場合があります。

パブリッシャー間で更新が適切に同期されるようにする

各AEMパブリッシュインスタンスで、次の操作を実行します。

  1. Webコンソールにアクセスします(例:http://localhost:4503/system/console/configMgr)。

  2. Apache Sling Distribution Packaging - Vault Package Builder Factory Builder name​を探します。socialpubsync-vlt

  3. 編集アイコンを選択します。

  4. 次の2つのパッケージフィルターを追加します。

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

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

      /home/users|**+**.\*/rep:policy

    • ポリシーの配布を防ぐには、

      Acl処理:無視

vault-package-builder-factory

AEM CommunitiesでのSling配布のトラブルシューティング

Sling配布が失敗した場合は、次のデバッグ手順を試してください。

  1. 不適切に追加さ れた設定を確認します 複数の設定を追加または編集せずに、既存のデフォルト設定を編集する必要があります。

  2. 設定を確認しますベストプラクティスで説明されているように、AEMオーサーインスタンスで設定がすべて適切に設定されていることを確認します。

  3. 承認されたユーザー権限を確認します。パッケージが正しくインストールされていない場合は、最初のパブリッシュインスタンスで作成された許可されたユーザーに正しいACLが含まれていることを確認します。

    これを検証するには、作成した認証済みAdobeの代わりに、オーサーインスタンス上のユーザーGranite Distribution - Encrypted Password Transport Secret Providerの設定を、管理者ユーザーの資格情報を使用するように変更します。 次に、パッケージのインストールを再試行します。 ユーザー同期が管理者の資格情報で正常に機能する場合は、作成されたパブリッシュユーザーに適切なACLがないことを意味します。

  4. 差分監視者ファクトリ設定を確認します。特定のAdobeのみがパブリッシュファーム全体で同期されない場合(例えば、グループメンバーが同期されない場合)は、 ノードGranite Distribution - Diff Observer Factory設定が有効で、 rep:members​が​looked properties names​に設定されていることを確認します。

  5. AEM Communities User Sync Listenerの設定を確認します。 作成したユーザーが同期され、サブスクリプションとフォローが機能しない場合は、AEM Communities User Sync Listener設定に次の項目が含まれていることを確認します。

    • ノードタイプ — rep:User、nt:unstructurednt:resourcerep:ACLsling:Folder、および​sling:OrderedFolder​に設定
    • 無視可能なノード — .tokenssystem、および​rep:cache​に設定
    • [分散フォルダ]:配布するフォルダに設定します
  6. パブリッシュインスタンスでのユーザー作成時に生成されたログを確認します。上記の設定が適切に設定されているにもかかわらずユーザー同期が機能していない場合は、ユーザーの作成時に生成されるログを確認します。

    次のように、ログの順序が同じかどうかを確認します。

    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
    

    デバッグするには:

    1. ユーザーの同期を無効にします。

    2. AEMオーサーインスタンスで、管理者権限でログインします。

      1. Webコンソールにアクセスします。 例えば、http://localhost:4502/system/console/configMgrのようにします。

      2. 設定​Apache Sling Distribution Agent - Sync Agents Factory​を探します。

      3. 有効」チェックボックスの選択を解除します。

      オーサーインスタンスでユーザー同期を無効にすると、(エクスポーターとインポーター)エンドポイントが無効になり、オーサーインスタンスは静的になります。 vlt​パッケージは、作成者によってpingまたは取得されません。

      ユーザーがパブリッシュインスタンス上で作成された場合、 vlt​パッケージが​/var/sling/distribution/packages/ socialpubsync - vlt /data​ノードに作成されます。 作成者がこれらのパッケージを別のサービスにプッシュした場合。 このデータをダウンロードして抽出し、他のサービスにプッシュされるすべてのプロパティを確認できます。

    3. 投稿者に移動し、投稿者でユーザーを作成します。 その結果、イベントが作成されます。

    4. ユーザーの作成時に作成されたログ🔗の順序を確認します。

    5. vlt​パッケージが/var/sling/distribution/packages/socialpubsync-vlt/data上に作成されているかどうかを確認します。

    6. 次に、AEMオーサーインスタンスでユーザー同期を有効にします。

    7. パブリッシャーで、Apache Sling Distribution Agent - Sync Agents Factory​内のエクスポーターまたはインポーターエンドポイントを変更します。

      パッケージデータをダウンロードして抽出し、他のパブリッシャーにプッシュされるすべてのプロパティと、どのデータが失われるかを確認できます。

このページ