Wie migriert man Benutzer und Gruppen mit ACL-Berechtigungen in AEM von einem Server zu einem anderen oder von einer AEM-Instanz zu einer anderen?

Schritte

1. Finden Sie die Admin- und anonymen Benutzer

  1. Gehen Sie zu CRXDE Lite App /crx/de/index.jsp und melden Sie sich als Administrator an (auf dem Quellsystem).

  2. Gehen Sie zu „Werkzeuge“ => „Abfrage“

  3. Geben Sie im unteren Feld „Abfrage“ diese Abfrage ein, um den Admin-Benutzer zu finden: /jcr:root/home/users//element(*,rep:User)[@rep:principalName="admin"]

  4. Klicken Sie auf „Ausführen“ und kopieren Sie den Pfad des Knotens in eine Textdatei.

  5. Wiederholen Sie Schritt 3 mit einer Abfrage für anonyme Benutzer: /jcr:root/home/users//element(*,rep:User)[@rep:principalName="anonymous"].

  6. Klicken Sie auf „Ausführen“ und kopieren Sie den Pfad des anonymen Benutzers in die Ergebnisse in eine Textdatei (jetzt haben Sie zwei Pfade, einen für „Admin“ und einen für „Anonym“).

    Beispiel:

    • /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv – Admin-Benutzer auf dem Quellsystem
    • /home/users/K/Kj1406Qo9IDODc_nk5Ib – anonymer Benutzer auf dem Quellsystem

2A. Migration von Benutzern und Gruppen (mit Crx2Oak oder Oak-upgrade)

Benutzer und Gruppen können mit den Tools crx2oak oder oak-upgrade zwischen AEM-Instanzen migriert werden.

  1. Laden Sie crx2oak oder oak-upgrade jar herunter, die der von Ihnen verwendeten Oak-Version entsprechen: 

  2. Laden Sie die jar-Datei auf den AEM-Server hoch

  3. AEM stoppen (Quell- und Zielinstanzen)

    1. Ersetzen Sie den Namen der jar-Datei im folgenden Befehl.
    2. Ersetzen Sie /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv,/home/users/K/Kj1406Qo9IDODc_nk5Ib im --exclude-paths Teilparameter des folgenden Befehls durch die Pfade des Admin und der anonymen Benutzer aus Ihrem Quellsystem.
    3. Passen Sie die Pfade online an Ihre Instanz an (fügen Sie segment-old: vor dem Pfad hinzu, falls erforderlich, siehe hier https://jackrabbit.apache.org/oak/docs/migration.html):
      /opt/aem-source/crx-quickstart/repository /opt/aem-destination/crx-quickstart/repository
    4. Führen Sie dann den Befehl auf der Server-Shell aus.
    java -Xms2g -Xmx2g -jar oak-upgrade-1.8.12.jar \
    --include-paths=/home \
    --merge-paths=/home \
    --exclude-paths=/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv,/home/users/K/Kj1406Qo9IDODc_nk5Ib,/home/groups/a/administrators,/home/groups/a/analytics-administrators,/home/groups/c/community-moderators,/home/groups/c/content-authors,/home/groups/c/contributor,/home/groups/community/community-groupadmin,/home/groups/community/community-sitecontentmanager,/home/groups/community/community-sitemembers,/home/groups/d/dam-users,/home/groups/default/order-administrators,/home/groups/e/everyone,/home/groups/f/forms-users,/home/groups/forms/fd-administrators,/home/groups/forms/forms-users,/home/groups/geometrixx,/home/groups/media,/home/groups/o/operators,/home/groups/projects,/home/groups/t/tag-administrators,/home/groups/t/target-activity-authors,/home/groups/u/user-administrators,/home/groups/w/workflow-editors,/home/groups/w/workflow-users,/home/users/a/admin,/home/users/a/anonymous,/home/users/mac,/home/users/media,/home/users/projects,/home/users/system,/home/rep:policy,/home/users/rep:policy,/home/groups/rep:policy \
    segment-old:/opt/aem-source/crx-quickstart/repository /opt/aem-destination/crx-quickstart/repository > upgradeusers.log &
  4. Anschließend fahren Sie mit Schritt 3 fort, um die ACLs zu migrieren.  Wenn Sie nicht in der Lage sind, mit crx2oak zu migrieren, folgen Sie stattdessen den folgenden Schritten der Paketmigration.

2B. Migration von Benutzern und Gruppen (über Pakete)

Wenn Benutzer nicht automatisch über LDAP / SAML-Authentifizierung oder CRX2Oak (Methode A oben) importiert wurden, können Sie Benutzer und Gruppen verpacken.  In diesem Fall erstellen Sie auf dem alten System zwei separate Pakete (ohne Admin und anonyme Out-of-the-Box-Benutzer).

  1. Kopieren Sie den Pfad der anonymen und Admin-Benutzerknoten aus den Ergebnissen in Schritt 1 („Finden Sie die Admin- und anonymen Benutzer“) oben.

    Beispiel:

    • /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - Admin-Benutzer im System, in dem ich das Paket erstelle.
    • /home/users/K/Kj1406Qo9IDODc_nk5Ib - anonymer Benutzer im System, in dem ich das Paket erstelle.
  2. Gehen Sie zu Package Manager, http://host:port/crx/packmgr/index.jsp und melden Sie sich als Administrator an.

  3. Erstellen Sie das Paket „Benutzer“.

  4. Fügen Sie der Konfiguration für /home/users mit diesen Auschlussregeln (im /home/users-Filter) einen Filter hinzu:

    • exclude /home/users/.*/.tokens
    • exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
    • exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
    • exclude /home/users/a/admin
    • exclude /home/users/a/anonymous
    • exclude /home/users/system
    • exclude /home/users/geometrixx
    • exclude /home/users/media
    • exclude /home/users/projects
    • exclude /home/users/mac
  5. Erstellen Sie das Paket.

  6. Laden Sie das Paket herunter.

  7. Entpacken Sie die ZIP-Datei auf Ihrem Computer.

    jar -xvf users.zip META-INF/vault/filter.xml

  8. Öffnen Sie die Datei „META-INF/vault/filter.xml“ in einem Texteditor.

  9. Fügen Sie mode=„merge“ zum Tag <filter ...> hinzu, zum Beispiel:

    <?xml version="1.0" encoding="UTF-8"?>
    <workspaceFilter version="1.0">
    <filter root="/home/users" mode="merge">
    <exclude pattern="/home/users/.*/.tokens"/>
    <exclude pattern="/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv"/>
    <exclude pattern="/home/users/K/Kj1406Qo9IDODc_nk5Ib"/>
    <exclude pattern="/home/users/a/admin"/>
    <exclude pattern="/home/users/a/anonymous"/>
    <exclude pattern="/home/users/system"/>
    <exclude pattern="/home/users/geometrixx"/>
    <exclude pattern="/home/users/media"/>
    <exclude pattern="/home/users/projects"/>
    <exclude pattern="/home/users/mac"/>
    </filter>
    </workspaceFilter>

  10. Erstellen Sie mit dem geänderten Paketinhalt erneut eine ZIP-Datei, damit er die Änderung enthält.

    jar -uvf users.zip META-INF/vault/filter.xml

  11. Erstellen Sie ein „Gruppen“ -Paket, das eine Filterregel /home/groups enthält.

  12. Wiederholen Sie die Schritte 11 - 14 für das Gruppenpaket.

  13. (Nur bei Aktualisierung) Wenn Sie eine Migration auf eine neuere AEM-Version durchführen, installieren Sie eine neue lokale AEM-Instanz der alten Version (mit nosampecontent) und installieren Sie das Benutzerpaket und dann das Gruppenpaket. Führen Sie anschließend eine ersetzende Aktualisierung auf die neue Version dieser Instanz durch. Dadurch werden die Benutzer in die neue Oak-Representation konvertiert. Komprimieren Sie nach dem direkten Upgrade die Benutzer erneut auf die gewünschte, aktualisierte Instanz. Führen Sie die gleichen Schritte für die Benutzergruppen aus.

  14. Installieren Sie das Benutzer-Paket auf dem neuen System.

  15. Installieren Sie das Gruppenpaket auf dem neuen System.

  16. Wenn Sie von einer älteren AEM-Version auf 6.3 migrieren, wechseln Sie zur Benutzerschnittstelle /useradmin und fügen Sie den Benutzerreplikationsempfänger der Gruppe „administrators“ hinzu.

3. Migrieren Sie Zugriffskontrolllisten für die Einschränkung des Zugriffs ab

Wenn Sie Tools (ACS Commons) in AEM installieren können, führen Sie diese Schritte aus:

  1. ACS Commons herunterladen und installieren.

  2. Um ein ACL-Paket zu erstellen, folgen Sie den hier angegebenen Schritten.

  3. Gehen Sie zu http://aem-host:port/crx/packmgr/index.jsp und melden Sie sich als Administrator an.

  4. Klicken Sie auf das ACL-Paket.

  5. Klicken Sie auf „Bearbeiten“.

  6. Wählen Sie die Registerkarte „Erweitert“ (siehe Screenshot unten).

  7. Wählen Sie im Dropdown-Menü AC-Handling die Option „Zusammenfügen“, um zu verhindern, dass vorhandene ACLs auf dem Zielsystem entfernt werden. Dies ist besonders wichtig bei der Migration von ACLs zwischen verschiedenen Versionen von AEM (da es das Entfernen von Out-of-the-box-ACLs vermeidet).

Wenn Sie nicht in der Lage sind, Tools (ACS Commons) in AEM zu installieren, gehen Sie folgendermaßen vor: Beachten Sie, dass der Computer, auf dem Sie diese Befehle ausführen, Mac OS, Linux oder Windows (unter Verwendung von Cygwin) mit installiertem cURL, python und Java SDK sein muss.

  1. Gehen Sie auf http://src-aem-host:port/crx/packmgr/index.jsp und melden Sie sich als Administator an.

  2. Erstellen Sie ein Paket mit dem Namen „ACL-migration“.

  3. Klicken Sie auf die Schaltfläche „Bearbeiten“.

  4. Wählen Sie die Registerkarte „Erweitert“ und stellen Sie den AC auf „Zusammenfügen“ ein.

  5. Speichern.

  6. Erstellen Sie das Paket und laden Sie es herunter.

  7. Führen Sie auf dem Dateisystem diesen Befehl auf dem Paket aus, um die Datei „META-INF/vault/filter.xml“ zu extrahieren:

    jar -xvf ACL-migration-1.0.zip META-INF/vault/filter.xml
  8. Führen Sie in demselben Ordner den Befehl aus, um eine json der ACL-paths unter /content aus der Instanz herunterzuladen (geben Sie den Benutzernamen und das Kennwort ein und korrigieren Sie den Host):

    curl -u admin:admin 'http://aemhost/crx/de/query.jsp?' -G --data-urlencode '_dc=1507011481908&_charset_=utf-8&type=xpath&stmt=/jcr:root/content//element(*,rep:ACL)&showResults=true' > data.json
  9. Erstellen Sie eine Datei generate-package-filter.py und fügen Sie den folgenden Python-Code darin ein:

     import json
     from pprint import pprint
    
     with open('data.json') as data_file:
         data = json.load(data_file)
    
     print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
     print("<workspaceFilter version=\"1.0\">")
     for item in data["results"]:
         print("<filter root=\"{path}\" />".format(path=item["path"]))
     print("</workspaceFilter>")
  10. Führen Sie das Python-Script aus demselben Ordner aus, in dem data.json erstellt wurde, und speichern Sie die Ausgabe in META-INF/vault/filter.xml (ersetzen Sie den vorhandenen Inhalt von filter.xml):

     python generate-packge-filter.py > META-INF/vault/filter.xml
  11. Mit diesem Befehl können Sie den filter.xml in der ZIP-Datei aktualisieren:

     jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml
  12. Laden Sie die ZIP-Datei in den Manager hoch: http://src-aem-host:port/crx/packmgr/index.jsp.

  13. Klicken Sie auf „Erstellen“ oder „Wiederherstellen“, um das Paket zu erstellen.

  14. Laden Sie das Paket vom AEM-Server herunter.

  15. Laden Sie das Paket in den Manager des AEM-Servers hoch: http://dst-aem-host:port/crx/packmgr/index.jsp

  16. Klicken Sie auf „Installieren“, um es zu installieren.

  17. Wiederholen Sie die Schritte 8 - 16 für alle anderen Pfade, die den Curl-Pfad ändern. Dies würde beispielsweise die ACLs unter /etc anstelle von /content erhalten:

     curl -u admin:admin 'http://aemhost/crx/de/query.jsp?' -G --data-urlencode '_dc=1507011481908&_charset_=utf-8&type=xpath&stmt=/jcr:root/etc//element(*,rep:ACL)&showResults=true' > data.json

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie