Wenn es sich bei der Bereitstellung um eine Veröffentlichungsfarm handelt, müssen Mitglieder sich anmelden und ihre Daten auf allen Veröffentlichungsknoten einsehen können.
In der Veröffentlichungsumgebung erstellte Benutzer und Benutzergruppen (Benutzerdaten) werden in der Autorenumgebung nicht benötigt.
Die meisten in der Autorenumgebung erstellten Benutzerdaten sind auf einen Verbleib in der Autorenumgebung ausgelegt und werden nicht in Veröffentlichungsinstanzen kopiert.
Registrierungs- und Änderungsvorgänge in einer Veröffentlichungsinstanz müssen mit anderen Veröffentlichungsinstanzen synchronisiert werden, damit sie Zugriff auf dieselben Benutzerdaten haben.
Ab AEM 6.1 werden Benutzerdaten bei aktivierter Benutzersynchronisierung automatisch über alle Veröffentlichungsinstanzen in der Farm hinweg synchronisiert und nicht in Autoreninstanzen erstellt.
Die Benutzerdaten sowie ihre ACLs, werden im Oak Core, die Ebene unterhalb von Oak JCR und der Zugriff erfolgt über die Oak-API. Bei seltenen Aktualisierungen ist es sinnvoll, Benutzerdaten mit anderen Veröffentlichungsinstanzen zu synchronisieren, indem Sling Content Distribution (Sling-Verteilung).
Die Vorteile der Benutzersynchronisierung mit der Sling-Verteilung im Vergleich zur herkömmlichen Replikation sind:
In Veröffentlichungsinstanzen erstellte Benutzer, Benutzerprofile und Benutzergruppen werden nicht in Autoreninstanzen erstellt.
Sling Distribution legt Eigenschaften in jcr-Ereignissen fest, sodass innerhalb veröffentlichungsseitiger Event-Listener agiert werden kann, ohne unendliche Replikationsschleifen berücksichtigen zu müssen.
Sling Distribution sendet Benutzerdaten ausschließlich an nicht ursprüngliche Veröffentlichungsinstanzen, wodurch unnötiger Traffic beseitigt wird.
ACLs werden im Benutzerknoten festgelegt und sind in der Synchronisierung enthalten
Wenn Sitzungen erforderlich sind, wird empfohlen, entweder eine SSO-Lösung oder Sticky-Sitzungen zu verwenden und Kunden sich anmelden zu lassen, wenn sie zu einem anderen Herausgeber umgeschaltet werden.
Synchronisierung der *Administratoren *Gruppe wird nicht unterstützt, auch wenn die Benutzersynchronisierung aktiviert ist. Stattdessen wird ein Fehler beim Diff-Import in das Fehlerprotokoll geschrieben.
Wenn es sich bei der Bereitstellung um eine Veröffentlichungsfarm handelt, wird ein Benutzer daher zum * hinzugefügt oder daraus entfernt.Administratoren *Gruppe, muss die Änderung manuell für jede Veröffentlichungsinstanz vorgenommen werden.
Standardmäßig ist die Benutzersynchronisierung disabled
.
Die Aktivierung der Benutzersynchronisierung beinhaltet die Änderung vorhandener OSGi-Konfigurationen.
Aufgrund der Aktivierung der Benutzersynchronisierung sollten keine neuen Konfigurationen hinzugefügt werden.
Die Benutzersynchronisierung ist davon abhängig, dass die Autorenumgebung die Verteilung der Benutzerdaten verwaltet, auch wenn die Benutzerdaten nicht in der Autoreninstanz erstellt werden. Ein Großteil, aber nicht alle der Konfigurationen finden in der Autorenumgebung statt und jeder Schritt gibt klar an, ob er in der Autoren- oder Veröffentlichungsumgebung ausgeführt werden soll.
Im Folgenden finden Sie eine Beschreibung der Schritte, die zum Aktivieren der Benutzersynchronisierung erforderlich sind, gefolgt von einem Abschnitt zur Fehlerbehebung:
Wenn Benutzer und Benutzergruppen bereits auf einem Herausgeber erstellt wurden, wird empfohlen, die Benutzerdaten vor der Konfiguration und Aktivierung der Benutzersynchronisierung manuell zu synchronisieren.
Sobald die Benutzersynchronisierung aktiviert wurde, werden nur neu erstellte Benutzer und Gruppen synchronisiert.
Stellen Sie sicher, dass der neueste Code installiert wurde:
Aktivieren der Benutzersynchronisierung
In der Autoreninstanz:
Melden Sie sich mit Administratorrechten an.
Rufen Sie die Web-Konsole auf.
locate Apache Sling Distribution Agent - Sync Agents Factory
Wählen Sie die vorhandene Konfiguration aus, um sie zur Bearbeitung zu öffnen (Bleistiftsymbol).
Überprüfen name
: socialpubsync
wählen Sie die Enabled
Kontrollkästchen
auswählen Save
Konfigurieren von Berechtigungen Dieser autorisierte Benutzer wird in Schritt 3 zum Konfigurieren einer Sling Distribution in Autoreninstanzen verwendet.
In jeder Veröffentlichungsinstanz:
Melden Sie sich mit Administratorrechten an.
Rufen Sie die Sicherheitskonsole auf.
Erstellen Sie einen neuen Benutzer.
usersync-admin
Fügen Sie diesen Benutzer zum administrators
Benutzergruppe
Fügen Sie ACL für diesen Benutzer zu /home hinzu.
Allow jcr:all
mit Einschränkungen rep:glob=*/activities/*
Es muss ein neuer Benutzer erstellt werden.
admin
zugewiesen.*communities-user-admin *user*.*
Rufen Sie CRXDE Lite auf.
select /home
Knoten
Wählen Sie im rechten Bereich die Access Control
tab
wählen Sie die +
Schaltfläche zum Hinzufügen eines ACL-Eintrags
Allow
jcr:all
*/activities/*
Wählen Sie Alle speichern aus.
Siehe auch
Konfigurieren von Berechtigungen
Sobald ein autorisierter Benutzer, ein Mitglied der administrators
Benutzergruppe, wurde in allen Veröffentlichungsinstanzen erstellt. Der autorisierte Benutzer muss beim Autor als Benutzer identifiziert werden, der berechtigt ist, Benutzerdaten vom Autor zur Veröffentlichung zu synchronisieren.
In der Autoreninstanz:
Melden Sie sich mit Administratorrechten an.
Rufen Sie die Web-Konsole auf.
locate com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name
Wählen Sie die vorhandene Konfiguration aus, um sie zur Bearbeitung zu öffnen (Bleistiftsymbol).
Überprüfen property name
: socialpubsync-publishUser
Legen Sie den Benutzernamen und das Kennwort für den in der Veröffentlichungsinstanz in Schritt 2 erstellten autorisierten Benutzer fest.
usersync-admin
Aktivieren der Benutzersynchronisierung
In der Veröffentlichungsinstanz:
Melden Sie sich mit Administratorrechten an.
Rufen Sie die Web-Konsole auf.
locate Apache Sling Distribution Agent - Queue Agents Factory
Wählen Sie die vorhandene Konfiguration aus, um sie zur Bearbeitung zu öffnen (Bleistiftsymbol).
Überprüfen Name
: socialpubsync-reverse
wählen Sie die Enabled
Kontrollkästchen
auswählen Save
Wiederholen Sie den Vorgang für jede Veröffentlichungsinstanz.
Aktivieren der Gruppensynchronisierung
In jeder Veröffentlichungsinstanz:
Melden Sie sich mit Administratorrechten an.
Rufen Sie die Web-Konsole auf.
locate Adobe Granite Distribution - Diff Observer Factory
Wählen Sie die vorhandene Konfiguration aus, um sie zur Bearbeitung zu öffnen (Bleistiftsymbol).
Überprüfen agent name
: socialpubsync-reverse
wählen Sie die Enabled
Kontrollkästchen
auswählen Save
(Optional) Bearbeiten des Abrufintervalls
Standardmäßig ruft der Autor Änderungen alle 30 Sekunden ab. So ändern Sie dieses Intervall :
In der Autoreninstanz:
Melden Sie sich mit Administratorrechten an.
Rufen Sie die Web-Konsole auf.
locate Apache Sling Distribution Trigger - Scheduled Triggers Factory
Wählen Sie die vorhandene Konfiguration aus, um sie zur Bearbeitung zu öffnen (Bleistiftsymbol).
Name
: socialpubsync-scheduled-trigger
legen Sie die Interval in Seconds
zum gewünschten Intervall
auswählen Save
Die Standardkonfiguration ist für eine einzelne Veröffentlichungsinstanz vorgesehen. Da durch die Benutzersynchronisierung mehrere Veröffentlichungsinstanzen, etwa für eine Veröffentlichungsfarm, synchronisiert werden sollen, müssen die zusätzlichen Veröffentlichungsinstanzen der Synchronisierungsagenten-Factory hinzugefügt werden.
Hinzufügen von Veröffentlichungsinstanzen:
In der Autoreninstanz:
Melden Sie sich mit Administratorrechten an.
Rufen Sie die Web-Konsole auf.
locate Apache Sling Distribution Agent - Sync Agents Factory
Wählen Sie die vorhandene Konfiguration aus, um sie zur Bearbeitung zu öffnen (Bleistiftsymbol).
Überprüfen Name
: socialpubsync
Exporter Endpoints Es sollte für jeden Herausgeber einen Exporter-Endpunkt geben. Beispielsweise sollten bei 2 Herausgebern, localhost:4503 und 4504, 2 Einträge vorhanden sein:
Importer Endpoints
Für jeden Herausgeber sollte ein Importer-Endpunkt vorhanden sein. Beispielsweise sollten bei 2 Herausgebern, localhost:4503 und 4504, 2 Einträge vorhanden sein:
auswählen Save
(Optional) Synchronisieren zusätzlicher JCR-Knoten
Wenn benutzerdefinierte Daten vorliegen, die über mehrere Veröffentlichungsinstanzen hinweg synchronisiert werden sollen, gehen Sie wie folgt vor:
In jeder Veröffentlichungsinstanz:
Melden Sie sich mit Administratorrechten an.
Rufen Sie die Web-Konsole auf.
locate AEM Communities User Sync Listener
Wählen Sie die vorhandene Konfiguration aus, um sie zur Bearbeitung zu öffnen (Bleistiftsymbol).
Überprüfen Name
: socialpubsync-scheduled-trigger
Knotentypen
Dies ist die Liste der Knotentypen, die synchronisiert werden. Mit Ausnahme von „sling:Folder“ müssen hier alle Knotentypen aufgeführt werden („sling:Folder“ wird separat abgewickelt).
Standardliste zu synchronisierender Knotentypen:
Ignorierende Eigenschaften
Hierbei handelt es sich um die Liste der Eigenschaften, die beim Erkennen von Änderungen ignoriert werden. Änderungen an diesen Eigenschaften werden möglicherweise im Zuge anderer Änderungen synchronisiert (da die Synchronisierung immer auf Knotenebene erfolgt), aber Änderungen an diesen Eigenschaften werden nicht von selbst durch eine Synchronisierung ausgelöst.
Zu ignorierende Standardeigenschaft:
Ignorierbare Knoten
Unterpfade, die bei der Synchronisierung vollständig ignoriert werden. Elemente in diesen Unterpfaden werden nie synchronisiert.
Zu ignorierende Standardknoten:
Verteilte Ordner
Die meisten sling:Folders werden ignoriert, da eine Synchronisierung nicht erforderlich ist. Die wenigen Ausnahmen finden Sie hier aufgeführt.
Zu synchronisierende Standardordner
Wenn die Sling-ID zwischen zwei oder mehr Veröffentlichungsinstanzen übereinstimmt, schlägt die Benutzergruppesynchronisierung fehl.
Wenn die Sling-ID für mehrere Veröffentlichungsinstanzen in einer Veröffentlichungsfarm identisch ist, werden Benutzergruppen nicht synchronisiert.
Um zu überprüfen, ob alle Sling-ID-Werte unterschiedlich sind, gehen Sie in jeder Veröffentlichungsinstanz wie folgt vor:
http://<host>:<port>/system/console/status-slingsettings
Wenn die Sling-ID einer Veröffentlichungsinstanz der Sling-ID einer anderen Veröffentlichungsinstanz entspricht, gehen Sie wie folgt vor:
Halten Sie eine der Veröffentlichungsinstanzen mit übereinstimmender Sling-ID an.
Gehen Sie wie folgt im Verzeichnis „crx-quickstart/launchpad/felix“ vor:
Suchen und löschen Sie die Datei sling.id.file.
z. B. auf einem Linux-System:
rm -i $(find . -type f -name sling.id.file)
Beispiel für ein Windows-System:
use windows explorer and search for *sling.id.file*
Starten der Veröffentlichungsinstanz
Vergewissern Sie sich, dass die Sling-ID nun eindeutig ist.
Wiederholen Sie diese Schritte, bis alle Veröffentlichungsinstanzen über eine eindeutige Sling-ID verfügen.
Damit Updates ordnungsgemäß synchronisiert werden, muss der Vault-Paket-Builder zur Benutzersynchronisierung geändert werden:
In jeder AEM-Veröffentlichungsinstanz:
Rufen Sie die Web-Konsole auf.
suchen Sie die Apache Sling Distribution Packaging - Vault Package Builder Factor
Builder name: socialpubsync-vlt
Wählen Sie das Bearbeitungssymbol aus.
zwei hinzufügen Package Filters
:
/home/users|-.*/.tokens
/home/users|-.*/rep:cache
Richtlinienhandhabung:
Zum Überschreiben der vorhandenen Knoten „rep:policy“ mit neuen fügen Sie einen dritten Paketfilter hinzu:
/home/users|+.*/rep:policy
Um eine Richtlinienverteilung zu verhindern, stellen Sie Folgendes ein:
Acl Handling :
IGNORE
Per Design werden in der Veröffentlichungsumgebung erstellte Benutzer und Profile (Selbstregistrierung) nicht in der Autorenumgebung angezeigt.
Wenn die Topologie eine Veröffentlichungsfarm und die Benutzersynchronisierung korrekt konfiguriert wurde, wird der *Benutzer *und Benutzerprofil wird über die Veröffentlichungsfarm hinweg mithilfe der Sling-Verteilung synchronisiert.
Per Design werden die in der Veröffentlichungsumgebung erstellten Benutzerdaten nicht in der Autorenumgebung angezeigt (und umgekehrt).
Wenn in der Veröffentlichungsumgebung neue Benutzer über die Konsole Benutzerverwaltung und Sicherheit hinzugefügt werden, werden die neuen Benutzer und ihre Gruppenmitgliedschaft im Rahmen der Benutzersynchronisierung ggf. mit anderen Veröffentlichungsinstanzen synchronisiert. Bei der Benutzersynchronisierung werden auch die über die Sicherheitskonsole erstellten Benutzergruppen synchronisiert.
Zum Offlineschalten der Benutzersynchronisierung zwecks Entfernung eines Herausgebers oder manueller Datensynchronisierung muss die Verteilungswarteschlange leer und störungsfrei sein.
So prüfen Sie den Status der Verteilungswarteschlange:
In der Autoreninstanz:
using CRXDE Lite
Suchen Sie nach Einträgen in /var/sling/distribution/packages
distrpackage_*
_* benannt sind.Rufen Sie Package Manager auf.
Suchen Sie nach ausstehenden (noch nicht installierten) Paketen,
socialpubsync-vlt*
communities-user-admin
Wenn die Verteilungswarteschlange leer ist, deaktivieren Sie die Benutzersynchronisierung:
In der Autoreninstanz:
Enabled
Kontrollkästchen für Apache Sling Distribution Agent - Sync Agents FactoryUm die Benutzersynchronisierung nach Durchführung der Aufgaben erneut zu aktivieren, gehen Sie wie folgt vor:
In der Autoreninstanz:
Enabled
Kontrollkästchen für Apache Sling Distribution Agent - Sync Agents FactoryDie Diagnose für Benutzersynchronisierung ist ein Tool zur Überprüfung von Konfigurationen und zur Identifizierung etwaiger Probleme.
Navigieren Sie auf der Autoreninstanz einfach von der Hauptkonsole durch Tools, Vorgänge, Diagnose, Diagnose der Benutzersynchronisierung.
Die Ergebnisse werden einfach durch Aufrufen der Konsole „Diagnose für Benutzersynchronisierung“ angezeigt.
Folgendes wird angezeigt, wenn die Benutzersynchronisierung nicht aktiviert wurde:
Wenn die Diagnose von der Autorenumgebung aus ausgeführt wird, enthalten die Ergebnisse für das Bestehen/Fehlschlagen eine [INFO] -Abschnitt, der die Liste der konfigurierten Veröffentlichungsinstanzen zur Bestätigung anzeigt.
In der Liste enthalten ist eine URL für jede Veröffentlichungsinstanz, die die Diagnose für diese Instanz ausführt. Der URL-Parameter syncUser
wird an die Diagnose-URL angehängt, wobei der Wert auf die autorisierter Synchronisierungsbenutzer erstellt in Schritt 2.
Hinweis: Bevor Sie die URL aufrufen, muss der autorisierte Synchronisierungsbenutzer bereits bei dieser Veröffentlichungsinstanz angemeldet sein.
Wenn ein Fehler bei der Benutzersynchronisierung auftritt, ist dies im Allgemeinen darauf zurückzuführen, dass zusätzliche Konfigurationen hinzugefügt wurden. Stattdessen sollte die *vorhandene *Standardkonfiguration bearbeitet.
Im Folgende sehen Sie, wie die bearbeiteten Standardkonfigurationen in der Web-Konsole angezeigt werden sollten. Bei mehr als der einen Instanz sollte die hinzugefügte Konfiguration entfernt werden.
Wenn Folgendes im Protokoll steht:
org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing.
java.lang.IllegalStateException: This tree does not exist
Überprüfen Sie dann, ob der Abschnitt 2. Autorisierter Benutzer erstellen ordnungsgemäß befolgt wurde.
Dieser Abschnitt beschreibt, wie ein autorisierter Benutzer erstellt wird, wer in allen Veröffentlichungsinstanzen existiert und wie diese Benutzer in der OSGi-Konfiguration „Secret Provider“ der Autoreninstanz identifiziert werden. Standardmäßig ist der Benutzer admin
.
Der autorisierte Benutzer sollte als Mitglied der Benutzergruppe administrators
aufgenommen werden. Außerdem sollten die Berechtigungen für diese Gruppe nicht geändert werden.
Für den autorisierten Benutzer sollten explizit die folgenden Rechte und Einschränkungen für alle Veröffentlichungsinstanzen gelten:
path | jcr:all | rep:glob |
---|---|---|
/home | X | */activities/* |
/home/users | X | */activities/* |
/home/groups | X | */activities/* |
Als Mitglied der administrators
-Gruppe verwenden, sollte der autorisierte Benutzer für alle Veröffentlichungsinstanzen über die folgenden Berechtigungen verfügen:
path | 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 |
Wenn die Sling-ID zwischen zwei oder mehr Veröffentlichungsinstanzen übereinstimmt, schlägt die Benutzergruppesynchronisierung fehl.
Siehe Abschnitt 9. Eindeutige Sling-ID
Bei Herausgebern mit Benutzern und Benutzergruppen:
Package erstellen von /home
Beim Bearbeiten des Pakets
/home
Overwrite
Bei anderen Veröffentlichungsinstanzen:
Um die Benutzersynchronisierung zu konfigurieren oder zu aktivieren, gehen Sie zu Schritt 1: Apache Sling Distribution Agent - Sync Agents Factory
Wenn eine Veröffentlichungsinstanz nicht mehr verfügbar ist, sollte sie nicht entfernt werden, sofern sie zukünftig wieder online geschaltet wird. Änderungen für den Herausgeber werden in die Warteschlange gestellt und sobald dieser wieder online ist, werden die Änderungen verarbeitet.
Wenn die Veröffentlichungsinstanz nie wieder online ist, wenn sie dauerhaft offline ist, muss sie entfernt werden, da die Warteschlangen-Erstellung zu einer spürbaren Festplattenspeicherplatznutzung in der Autorenumgebung führt.
Wenn ein Herausgeber nicht mehr verfügbar ist, finden Sie im Autorprotokoll Ausnahmen wie die folgende:
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 ...
Um einen Herausgeber aus Apache Sling Distribution Agent – Sync Agents Factory zu entfernen, muss die Verteilungswarteschlange leer und störungsfrei sein.
In der Autoreninstanz:
Folgen Sie Schritt 7, um den Herausgeber aus beiden Serverlisten zu entfernen:
Exporter Endpoints
Importer Endpoints
Erneutes Aktivieren der Benutzersynchronisierung
Enabled
Kontrollkästchen für Apache Sling Distribution Agent - Sync Agents Factory