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

概要

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

ユーザー データとは、 ユーザーユーザー プロファイル、 ユーザーグループを指す用語​です。

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

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

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

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

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

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

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

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

発行ファーム全体で同期を有効にする方法に関する詳細な詳細な手順については、次を参照してください。

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

sling-dist-workflow

  • vltパッケージ

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

  • 配布パッケージ

    Slingの配布情報が含まれます。 これは、コンテンツの配布が必要な場所、および最後に配布された日時に関する情報です。

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

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

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

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

トポロジが発行ファームで、ユーザー同期が正しく構成されている場合、user​と​userプロファイル​は、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を設定するには:

  1. AEMオーサーインスタンスでの管理者権限でサインインします。

  2. Webコンソールにアクセスします。 例:https://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があります。

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

許可されたユーザーを使用して発行者と作成者を接続するには:

  1. AEMオーサーインスタンスでの管理者権限でサインインします。

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

    例:https://localhost:4502/system/console/configMgr

  3. AdobeGranite配布 — 暗号化パスワードトランスポートシークレットプロバイダーを探します。

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

    Verifyプロパティ​socialpubsync - publishUser.

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

    例:usersync - admin

花崗岩 — パスワード —trans

Apache Sling Distribution Agent - Queue Agents Factory

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

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

  1. 作成者インスタンスに対する管理者権限でログインします。

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

    例:https://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​が​looked properties names​に追加されていることを確認します。

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

  1. AEMオーサーインスタンスでの管理者権限でサインインします。

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

    例:https://localhost:4503/system/console/configMgr

  3. AdobeGranite Distribution - Diff Observer Factory​を探します。

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

    エージェント名を確認:socialpubsync -reverse

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

  6. looked properties names​のpropertyNameの説明として​rep:members​を指定し、「保存」をクリックします。

    diff-obs

Apache Sling Distribution Trigger - Scheduled Triggers Factory

この設定では、(発行者がpingを送信し、変更を作成者が取得した後の)ポーリング間隔を設定して、発行者間で変更を同期できます。

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

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

  1. AEMオーサーインスタンスでの管理者権限でサインインします。

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

  3. Apache Sling配布トリガー — 予定トリガーファクトリ​を探します。

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

      socialpubsync -scheduled-トリガー​を確認

    • 間隔(秒)を目的の間隔に設定し、保存します。

    scheduled-trigger

AEM Communities User Sync Listener

Sling配布で、購読に不一致があり、それに続く問題については、AEM Communitiesユーザー同期リスナー​の設定に次のプロパティが設定されているかどうかを確認してください。

  • NodeTypes
  • IgnorableProperties
  • IgnorableNodes
  • DistributedFolders

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

各AEM発行インスタンスで、次の操作を行います。

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

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

  3. AEM Communitiesユーザー同期リスナー​を探します。

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

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

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

    rep:User

    nt:unstructured

    nt:resource

    rep:ACL

    sling:Folder

    sling:OrderedFolder

    このプロパティで指定されたノードタイプが同期され、通知情報(ブログと使用された設定)が異なる発行者間で同期されます。

  6. <a0/追加>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システムの場合は次のようになります。

    Windowsエクスプローラを使用して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コンソールにアクセス

    例:https://localhost:4503/system/console/configMgr

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

    ビルダー名:socialpubsync-vlt.

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

  4. 2つ追加のパッケージノードフィルター:

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

    • 既存のrep :policyノードを新しいノードで上書きするには、3つ目のパッケージ・フィルタを追加します。/home/users|+.*/rep:policy
    • ポリシーの配布を防ぐには、次のように設定します。Acl Handling: IGNORE

    Vaultパッケージビルダファクトリ

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

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

  1. 適切に追加された設定の確認

    複数の設定を追加または編集しないでください。既存のデフォルト設定は、編集する必要があります。

  2. 設定の確認

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

  3. 許可されたユーザー権限の確認

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

    これを検証するには、作成した認証済みユーザーの代わりに、作成者インスタンスのAdobeGranite配布 — 暗号化パスワードトランスポートシークレットプロバイダーの設定を変更し、管理者ユーザー資格情報を使用します。 次に、パッケージのインストールを再試行します。 ユーザー同期が管理者の資格情報で正常に機能する場合は、作成した発行ユーザーに適切なACLがないことを意味します。

  4. 相違オブザーバーファクトリ構成の確認

    特定のノードのみがパブリッシュファーム全体で同期されない場合(例:グループメンバーは同期されない)、AdobeGranite Distribution - Diff Observer Factory構成が有効で​rep:メンバー​は​lookedプロパティ名​に設定されます。

  5. AEM Communitiesユーザー同期リスナーの設定を確認します。 作成したユーザーが同期されているが、購読と次のユーザーが機能していない場合は、AEM Communitiesユーザー同期リスナーの構成に次の値が含まれていることを確認します。

    • ノードタイプ — rep:User, nt :unstructured, nt :resource, rep:ACL, sling:Folder, sling:OrderedFolder​に設定。
    • 無視可能なノード — .tokenssystemrep :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コンソールにアクセスします。 例:https://localhost:4502/system/console/configMgr

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

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

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

      現在は、ユーザーが発行インスタンスで作成された場合、vlt​パッケージが​/var/sling/distribution/packages/ sociallpubsync - vlt /data​ノードに作成されます。 また、これらのパッケージが作成者によって別のサービスにプッシュされた場合も、 このデータをダウンロードして抽出し、すべてのプロパティが他のサービスにプッシュされたものかどうかを確認できます。

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

  4. ユーザーの作成時に作成されたログ](/docs/experience-manager-65/communities/sync.html?lang=ja#troubleshoot-sling-distribution-in-aem-communities)の[順序を確認します。

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

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

  7. パブリッシャーで、Apache Sling Distribution Agent - Sync Agents Factory​のエクスポーターまたはインポーターエンドポイントを変更します。
    パッケージデータをダウンロードして抽出し、すべてのプロパティが他の発行者にプッシュされ、どのデータが失われるかを確認できます。

このページ