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. Wechseln Sie zur CRXDE Lite-App /crx/de/index.jsp und melden Sie sich als Admin-Benutzer (im Quellsystem) an.

  2. Navigieren Sie zu Tools . => 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 Administrationsbenutzerknotens in die Ergebnisse in eine Textdatei.

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

  6. Klicken Sie auf Ausführen und kopieren Sie den Pfad des anonymen Benutzerknotens in die Ergebnisse in eine Textdatei (jetzt haben Sie also zwei Pfade: einen für "Admin"und einen für "Anonym").
    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 Sie /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv, /home/users/K/Kj1406Qo9IDODc_nk5Ib im Parameter --exclude-paths des unten stehenden Befehls durch die Pfade des Administrators und der anonymen Benutzer aus Ihrem Quellsystem.

  6. Ändern Sie die Pfade in der Zeile so, dass sie mit Ihrer Instanz übereinstimmen (fügen Sie bei Bedarf segment-old: vor dem Pfad hinzu, siehe hier):

    /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 aus Schritt 1 (Schritt 1: Suchen Sie die Admin- und anonymen Benutzer) oben.

    Beispiel:

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

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

  2. Wechseln Sie zu Package Manager, http://host:port/crx/packmgr/index.jsp und melden Sie sich als admin an.

  3. Erstellen Sie das Paket Benutzer.

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

    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. Fügen Sie mode = merge zum Tag <filter ...> hinzu, beispielsweise:

    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 ein Paket groups , das eine Filterregel /home/groups enthält.

  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 Benutzerpaket als auch das Gruppenpaket. 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, wechseln Sie zur Benutzeroberfläche von /useradmin und fügen Sie den Benutzerreplikations-Empfänger zur Gruppe Administratoren hinzu.

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. Wechseln Sie zu http://src-aem-host:port/crx/packmgr/index.jsp, und melden Sie sich als Administrator 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 aus und setzen Sie AC-Handling-Modus auf Zusammenführen.

  5. Speichern Sie.

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

  7. Führen Sie im Dateisystem diesen Befehl für das 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 im selben Ordner diesen Befehl aus, um eine JSON-Datei der ACL-Pfade unter /content von der Quellinstanz herunterzuladen (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. Erstellen Sie eine Datei generate-package-filter.py und fügen Sie den unten stehenden 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 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. 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