Migrieren von Benutzern, Gruppen und ACLs zwischen AEM-Instanzen

Dieser Artikel bietet verschiedene Möglichkeiten, Benutzer und Gruppen mit ACL-Berechtigungen in AEM von einem Server auf einen anderen oder von einer AEM Instanz auf einen anderen zu migrieren.

Beschreibung description

Umgebung

Adobe Experience Manager (AEM)

Problem/Symptome

Migrieren Sie Benutzer und Gruppen mit ACL-Berechtigungen in AEM von einem Server zu einem anderen oder von einer AEM Instanz zu einer anderen.

Lösung resolution

Schritt 1: Admin und anonyme Benutzer suchen

  1. Rufen Sie die CRXDE Lite-App auf /crx/de/index.jsp und melden Sie sich als Admin-Benutzer (im Quellsystem).

  2. Navigieren Sie zu Instrumente => Abfrage.

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

  4. Klicks Ausführen und kopieren Sie den Pfad des Admin-Benutzerknotens in die Ergebnisse in eine Textdatei.

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

  6. Klicks Ausführen und kopieren Sie den Pfad des anonymen Benutzerknotens in die Ergebnisse in eine Textdatei (jetzt haben Sie zwei Pfade, einen für "admin" und einen für "anonymous").
    Beispiel:

    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv: Admin-Benutzer im Quellsystem
    /home/users/K/Kj1406Qo9IDODc_nk5Ib: anonymer Benutzer im Quellsystem

Schritt 2A: Migrieren von Benutzern und Gruppen (mit CRX2Oak) oder Oak-Upgrade)

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

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

    1. Oak-Upgrade: https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-upgrade
    2. Crx2Oak: Maven-Repository
  2. Laden Sie die JAR-Datei auf den AEM-Server hoch.

  3. Beenden Sie AEM (Quell- und Zielinstanzen).

  4. Ersetzen Sie den Namen der JAR-Datei im folgenden Befehl.

  5. Ersetzen /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv,/home/users/K/Kj1406Qo9IDODc_nk5Ib im --exclude-paths Teil-Parameter des folgenden Befehls mit den Pfaden des Administrators und anonymer Benutzer von Ihrem Quellsystem aus.

  6. Pfade online so ändern, dass sie mit Ihrer Instanz übereinstimmen (hinzufügen segment-old: vor dem Pfad, falls erforderlich, siehe here):

    /opt/aem-source/crx-quickstart/repository /opt/aem-destination/crx-quickstart/repository

  7. Führen Sie dann den Befehl auf der Shell des Servers aus:

    code language-none
    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 &
    
  8. Gehen Sie nach Abschluss des Vorgangs zu Schritt 3, um die ACLs zu migrieren.  Wenn Sie nicht mit CRX2Oak migrieren können, führen Sie stattdessen die folgenden Schritte zur Package-Migration aus.

Schritt 2B: Benutzer und Gruppen migrieren (mithilfe von Paketen)

Wenn Benutzer nicht automatisch über LDAP/SAML-Authentifizierung oder CRX2Oak (Schritt 2A oben) importiert wurden, können Sie Benutzer und Gruppen verpacken.

In diesem Fall erstellen Sie zwei separate Pakete auf dem alten System (außer Admin und anonymen nativen Benutzern).

Führen Sie folgende Schritte aus:

  1. Kopieren Sie den Pfad der anonymen und Admin-Benutzerknoten aus den Ergebnissen in Schritt 1 (Schritt 1: Ermitteln des Administrators und der anonymen Benutzer).

    Beispiel:

    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - Administrator-Benutzer auf dem System, auf dem Sie das Paket erstellen, oder

    /home/users/K/Kj1406Qo9IDODc_nk5Ib - anonymer Benutzer auf dem System, in dem Sie das Paket erstellen

  2. Navigieren Sie zu Package Managerhttp://host:port/crx/packmgr/index.jspund melden Sie sich als admin.

  3. Package erstellen Benutzer.

  4. Fügen Sie einen Filter zur Package-Konfiguration für hinzu. /home/users mit diesen Ausschlussregeln (auf der /home/usersfilter):

    1. exclude /home/users/.*/.tokens
    2. exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
    3. exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
    4. exclude /home/users/a/admin
    5. exclude /home/users/a/anonymous
    6. exclude /home/users/system
    7. exclude /home/users/geometrixx
    8. exclude /home/users/media
    9. exclude /home/users/projects
    10. exclude /home/users/mac
  5. Erstellen Sie das Paket.

  6. Laden Sie das Paket herunter.

  7. Entpacken Sie die ZIP-Datei des Pakets 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. Modus hinzufügen = merge der <filter ...> -Tag, z. B.:

    code language-none
    <?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. Komprimieren Sie den geänderten Paketinhalt neu, sodass er die Änderung enthält.

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

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

  12. Wiederholen Sie die Schritte 1 bis 10 für das Gruppenpaket.

  13. (Nur Aktualisierung) Wenn Sie die Migration auf eine neuere AEM durchführen, installieren Sie eine neue lokale AEM-Instanz.  der alten Version  (mit nosamplecontent) und installieren Sie dort sowohl das Benutzer-Paket als auch dann das Gruppen-Paket. Führen Sie dann eine ersetzende Aktualisierung auf die neue Version auf dieser Instanz durch. Dadurch werden die Benutzer in die neue Oak-Darstellung konvertiert. Erstellen Sie aus den Benutzern nach dem In-Place-Upgrade erneut ein Paket, um sie auf die gewünschte aktualisierte Instanz zu portieren. Tun Sie dasselbe für die Benutzergruppen.

  14. Installieren Sie das Benutzerpaket auf dem neuen System.

  15. Installieren Sie das Gruppenpaket auf dem neuen System.

  16. Wenn Sie von einer älteren AEM auf 6.3 migrieren, gehen Sie zu /useradmin Benutzeroberfläche und Hinzufügen des Benutzerreplikations-Empfängers zum Administratoren hinzugefügt.

Schritt 3. Migration von ACLs

Beachten Sie, dass der Computer, auf dem Sie diese Befehle ausführen, Mac OS, Linux oder Windows (unter Verwendung von Cygwin) sein muss, auf dem curl, python und Java SDK installiert sind.

  1. Navigieren Sie zu http://src-aem-host:port/crx/packmgr/index.jsp, und melden Sie sich als admin.

  2. Erstellen Sie ein Paket mit dem Namen ACL-Migration.

  3. Klicken Sie auf Bearbeiten Schaltfläche.

  4. Wählen Sie die Erweitert Registerkarte und legen Sie AC-Handling-Modus nach Zusammenführen.

  5. Speichern Sie.

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

  7. Führen Sie im Dateisystem diesen Befehl im Paket aus, um die META-INF/vault/filter.xml Datei:

    jar -xvf ACL-migration-1.0.zip META-INF/vault/filter.xml

  8. Führen Sie im selben Verzeichnis diesen Befehl aus, um eine JSON-Datei der ACL-Pfade unter herunterzuladen. /content aus der Quellinstanz (legen Sie den Benutzernamen, das Kennwort und den richtigen Host fest):

    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. Datei erstellen generate-package-filter.py und fügen Sie unten den Python-Code ein:\

    code language-none
    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\">")
    form item in data[ "results"] :
        print("<filter root=\"{path}\" />" . format(path=item[  "path"] ))
    print("</workspaceFilter>")
    
  10. Führen Sie das Python-Skript aus demselben Ordner aus, in dem data.json erstellt wurde und die Ausgabe in META-INF/vault/filter.xml (ersetzt den vorhandenen Inhalt von filter.xml):

    python generate-packge-filter.py > META-INF/vault/filter.xml

  11. Verwenden Sie diesen Befehl, um die Datei filter.xml in der ZIP-Datei zu aktualisieren:

    jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml

  12. Laden Sie die ZIP-Datei in den Paketmanager der Quellinstanz hoch: http://src-aem-host:port/crx/packmgr/index.jsp

  13. Klicken Sie auf Erstellen oder Neu erstellen, um das Paket zu erstellen.

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

  15. Laden Sie das Paket in den Paketmanager des Ziel-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 bis 16 für alle anderen Pfade, die den curl-Befehl des Pfads ändern. Dies würde beispielsweise die ACLs unter /etc anstelle von /content abrufen:

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

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f