デプロイメントが パブリッシュファームの場合、メンバーは任意のパブリッシュノードでログインして、自分のデータを確認できる必要があります。
パブリッシュ環境で作成されたユーザーとユーザーグループ(ユーザーデータ)は、オーサー環境では必要ありません。
オーサー環境で作成されたほとんどのユーザーデータはオーサー環境に残るものと想定されており、パブリッシュインスタンスにはコピーされません。
他のパブリッシュインスタンスが同じユーザーデータにアクセスするには、1 つのパブリッシュインスタンスに加えられた登録と変更をそれらのパブリッシュインスタンスに同期する必要があります。
AEM 6.1 以降では、ユーザーの同期が有効になっている場合、ユーザーデータはファーム内のパブリッシュインスタンス間で自動的に同期され、オーサー環境では作成されません。
ユーザーデータと、 ACLを含め、 Oak Core、Oak JCR の下のレイヤー、およびを使用してアクセスします。 Oak API. 頻繁に更新されない場合は、を使用して他のパブリッシュインスタンスとユーザーデータを同期させるのが妥当です。 Sling コンテンツ配布 (Sling 配布)。
従来のレプリケーションと比較して、Sling 配布を使用したユーザー同期のメリットは次のとおりです。
パブリッシュインスタンスで作成されたユーザー、ユーザープロファイルおよびユーザーグループ**がオーサー環境に作成されません
Sling 配布により JCR イベントにプロパティが設定されることで、レプリケーションが無限に繰り返されることなく、パブリッシュ側のイベントリスナーで実行できます
Sling 配布は派生元でないパブリッシュインスタンスにのみユーザーデータを送信するので、不要なトラフィックが発生しません
ACL ユーザーノードに設定された値が同期に含まれる
セッションが必要な場合は、SSO ソリューションか定着セッションを使用して、別のパブリッシャーに切り替わった際にはお客様にログインしてもらうことをお勧めします。
*の同期管理者 *group は、ユーザー同期が有効な場合でもサポートされません。 代わりに、「差分を読み込み」に失敗した場合は、エラーログに記録されます。
したがって、デプロイメントがパブリッシュファームの場合、ユーザーが*に追加または削除された場合、管理者 *group の場合、変更は各パブリッシュインスタンスで手動でおこなう必要があります。
デフォルトでは、ユーザー同期は disabled
.
ユーザー同期を有効にするには、OSGi の既存の**設定を変更する必要があります。
ユーザー同期を有効にした結果、新しい設定が追加されることはありません。
ユーザー同期では、オーサー環境で作成されていないユーザーデータでもその配布の管理はオーサー環境に依存します。設定の多くは(すべてではなく)、オーサー環境でおこなわれ、各手順で、オーサー環境とパブリッシュ環境のどちらで実行するかが明確に示されます。
次にユーザー同期の有効化に必要な手順と、トラブルシューティングの節を示します。
ユーザーとユーザーグループが既に 1 つのパブリッシャー上に作成されている場合は、 手動同期 ユーザー同期を設定して有効にする前に、すべてのパブリッシャーに対してユーザーデータを送信します。
ユーザー同期を有効にすると、新規に作成されたユーザーおよびグループのみが同期されるようになります。
最新のコードがインストールされていることを確認します。
ユーザー同期の有効化
オーサー環境で
管理者権限でログインします
Web コンソールにアクセスします
locate Apache Sling Distribution Agent - Sync Agents Factory
編集する既存の設定を選択します(鉛筆アイコン)
検証 name
: socialpubsync
を選択します。 Enabled
チェックボックス
選択 Save
権限の設定この承認済みユーザーが手順 3 のオーサー環境での Sling 配布の設定に使用されます。
各パブリッシュインスタンスで
管理者権限でログインします
セキュリティコンソールにアクセスします
新しいユーザーを作成します
usersync-admin
このユーザーを administrators
ユーザーグループ
Allow jcr:all
制限付きで rep:glob=*/activities/*
新しいユーザーを作成する必要があります。
admin
です。*communities-user-admin *user*.*
CRXDE Lite にアクセスします
選択 /home
ノード
右側のウィンドウで、 Access Control
タブ
を選択します。 +
ACL エントリを追加するボタン
Allow
jcr:all
*/activities/*
「すべて保存」を選択します。
関連トピック
権限の設定
認証済みユーザーが 1 人で、そのユーザーの員administrators
ユーザーグループは、すべてのパブリッシュインスタンスで作成されています。認証済みのユーザーは、オーサーからパブリッシュにユーザーデータを同期する権限を持っていると認識される必要があります。
オーサー環境で
ユーザー同期の有効化
パブリッシュ環境で
管理者権限でログインします
Web コンソールにアクセスします
locate Apache Sling Distribution Agent - Queue Agents Factory
編集する既存の設定を選択します(鉛筆アイコン)
検証 Name
: socialpubsync-reverse
を選択します。 Enabled
チェックボックス
選択 Save
各パブリッシュインスタンスで繰り返します
グループ同期の有効化
各パブリッシュインスタンスで:
管理者権限でログインします
Web コンソールにアクセスします
locate Adobe Granite Distribution - Diff Observer Factory
編集する既存の設定を選択します(鉛筆アイコン)
検証 agent name
: socialpubsync-reverse
を選択します。 Enabled
チェックボックス
選択 Save
(オプション)ポーリング間隔の変更
デフォルトでは、オーサー環境では 30 秒ごとに変更をポーリングします。この間隔を変更するには:
オーサー環境で
管理者権限でログインします
Web コンソールにアクセスします
locate Apache Sling Distribution Trigger - Scheduled Triggers Factory
編集する既存の設定を選択します(鉛筆アイコン)
Name
: socialpubsync-scheduled-trigger
設定 Interval in Seconds
希望の間隔まで
選択 Save
デフォルトの設定は、単一のパブリッシュインスタンス用の設定です。ユーザーの同期を有効にする理由は、パブリッシュファームの場合など、複数のパブリッシュインスタンスを同期するためなので、追加のパブリッシュインスタンスを Sync Agents Factory に追加する必要があります。
パブリッシュインスタンスを追加するには:
オーサー環境で
管理者権限でログインします
Web コンソールにアクセスします
locate Apache Sling Distribution Agent - Sync Agents Factory
編集する既存の設定を選択します(鉛筆アイコン)
検証 Name
: socialpubsync
Exporter Endpoints 各パブリッシャーにエクスポーターエンドポイントが必要です。例えば、パブリッシャーが localhost:4503 と 4504 の 2 つの場合、次の 2 つのエントリが必要です。
インポーターエンドポイント
各パブリッシャーにインポーターエンドポイントが必要です。 例えば、パブリッシャーが localhost:4503 と 4504 の 2 つの場合、次の 2 つのエントリが必要です。
選択 Save
(オプション)追加の JCR ノードの同期
複数のパブリッシュインスタンス間で同期するカスタムデータがある場合は、次のようにします。
各パブリッシュインスタンスで:
管理者権限でサインインします。
Web コンソールにアクセスします
locate AEM Communities User Sync Listener
編集する既存の設定を選択します(鉛筆アイコン)
検証 Name
: socialpubsync-scheduled-trigger
ノードタイプ
これは、同期するノードタイプのリストです。 sling:Folder 以外のすべてのノードタイプがここにリストされます(sling:folder は別個に処理されます)。
同期されるノードタイプのデフォルトのリストは次のとおりです。
無視可能なプロパティ
何らかの変更が検出された場合に無視されるプロパティのリストです。これらのプロパティに対する変更は、他の変更の副作用として同期される場合がありますが(同期は常にノードレベルでおこなわれるので)、これらのプロパティに対する変更そのものが同期をトリガーすることはありません。
無視されるデフォルトのプロパティは次のとおりです。
無視可能なノード
同期中に完全に無視されるサブパス。 このサブパスの下にあるものはどのタイミングでも同期されません。
無視されるデフォルトのノードは次のとおりです。
配布フォルダ
同期は不要なので、ほとんどの sling:Folders は無視されます。 数少ない例外を次に示します。
同期されるデフォルトのフォルダーは次のとおりです。
2 つ以上のパブリッシュインスタンスで Sling ID が一致すると、ユーザーグループの同期が失敗します。
Sling ID がパブリッシュファームの複数のパブリッシュインスタンスで同じである場合、ユーザーグループは同期されません。
すべての Sling ID の値が異なることを確認するには、各パブリッシュインスタンスで次の手順を実行します。
http://<host>:<port>/system/console/status-slingsettings
あるパブリッシュインスタンスの Sling ID が他のパブリッシュインスタンスの Sling ID と一致する場合は、次のようにします。
Sling ID が一致するパブリッシュインスタンスの一方を停止する
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 が一意になるまでこの手順を繰り返します。
更新が適切に同期されるようにするには、ユーザー同期用に 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
仕様上、パブリッシュ環境で作成されたユーザーとプロファイル(自己登録)は、オーサー環境では表示されません。
トポロジが パブリッシュファーム とユーザー同期が正しく設定されている場合、 ユーザープロファイル は、Sling 配布を使用してパブリッシュファーム全体で同期されます。
仕様上、パブリッシュ環境で作成されたユーザーデータは、オーサー環境では表示されません。その反対も同様です。
ユーザー管理およびセキュリティコンソールを使用してパブリッシュ環境で新しいユーザーを追加すると、ユーザーの同期機能により、新しいユーザーとそのグループメンバーシップがその他のパブリッシュインスタンスに同期されます(必要な場合)。ユーザー同期は、セキュリティコンソールを使用して作成されたユーザーグループも同期します。
パブリッシャーを削除したり、データを手動で同期したりするためにユーザー同期をオフラインにするには、配布キューが空であり、静止している必要があります。
配布キューの状態をチェックするには:
オーサー環境で:
using CRXDE Lite
エントリを探す /var/sling/distribution/packages
distrpackage_*
_* という名前パターンを持つフォルダー名パッケージマネージャーを使用する場合
(まだインストールされていない)保留中のパッケージを探します
socialpubsync-vlt*
communities-user-admin
配布キューが空である場合は、ユーザー同期を無効にします。
オーサー環境で
Enabled
チェックボックス Apache Sling Distribution Agent - Sync Agents Factoryタスク完了後にユーザー同期を再び有効にするには:
オーサー環境で
Enabled
チェックボックス Apache Sling Distribution Agent - Sync Agents Factoryユーザー同期診断は、設定をチェックして問題の特定を試みるツールです。
作成者の場合は、メインコンソールから ツール、操作、診断、ユーザー同期診断。
結果はユーザー同期診断コンソールに表示されます。
ユーザー同期が有効になっていない場合は、次のように表示されます。
診断をオーサー環境から実行した場合、合格/不合格の結果には [情報] 設定済みのパブリッシュインスタンスのリストを確認するためのセクションを表示しています。
このリストには、診断が実行される各パブリッシュインスタンスの URL が記載されています。url パラメーター syncUser
は診断 URL に追加され、その値は 認証済み同期ユーザー 次で作成: 手順 2.
注意:URL を起動するには、承認済み同期ユーザー**がそのパブリッシュインスタンスに既にログインしている必要があります。
ユーザー同期が正しく機能しないのは、主に余分な設定が追加されていることが原因です。**代わりに、デフォルト設定が 編集済み.
Web コンソールに表示される、編集されたデフォルトの設定は次のとおりです。複数のインスタンスが表示される場合は、追加した設定を削除する必要があります。
ログに次の内容が表示される場合:
org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing.
java.lang.IllegalStateException: This tree does not exist
次に、「 」セクションを確認します。 2. 認証済みユーザーの作成 適切に追跡された
この節では、すべてのパブリッシュインスタンスに存在する承認済みユーザーを作成し、それらをオーサー環境の「秘密鍵プロバイダー」OSGi 設定で特定する方法について説明します。デフォルトでは、ユーザーは admin
.
承認済みユーザーは administrators
ユーザーグループのメンバーにして、そのグループの権限は変更しないでください。
承認済みユーザーは、すべてのパブリッシュインスタンスに対する次の権限および制限を明示的に保持している必要があります。
path | jcr:all | rep:glob |
---|---|---|
/home | X | */activities/* |
/home/users | X | */activities/* |
/home/groups | X | */activities/* |
を administrators
グループの権限を持つユーザーは、すべてのパブリッシュインスタンスに対して次の権限を持っている必要があります。
パス | 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 の節を参照してください
ユーザーおよびユーザーグループが存在するパブリッシャーで:
パッケージの作成 / /home
パッケージの編集時
/home
Overwrite
その他のパブリッシュインスタンスで:
ユーザー同期を設定または有効にするには、手順 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 からパブリッシャーを削除するには、配布キューが空であり、静止している必要があります。
オーサー環境で:
手順 7 に従って、次の両方のサーバーリストからパブリッシャーを削除します
Exporter Endpoints
Importer Endpoints
ユーザー同期を再び有効にします
Enabled
チェックボックス Apache Sling Distribution Agent - Sync Agents Factory