Migrieren von Benutzern, Gruppen und ACLs zwischen AEM-Instanzen

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

Beschreibung description

Umgebung

Adobe Experience Manager

Problem

Migrieren von Benutzenden 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 unter /crx/de/index.jsp die CRXDE Lite-App auf und melden Sie sich als Administrator an (im Quellsystem).

  2. Zu gehen Tools => 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. Klick Ausführen und kopieren Sie den Pfad des Admin-Benutzerknotens in den Ergebnissen 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. Klick Ausführen und kopieren Sie den Pfad des Knotens des anonymen Benutzers in den Ergebnissen 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 (mithilfe von 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 JAR-Datei für das crx2oak- oder oak-Upgrade herunter, die mit der verwendeten Oak-Version übereinstimmt:

    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 in der --exclude-paths Teil des folgenden Befehls mit den Pfaden der Benutzer „Admin“ und „Anonym“ aus Ihrem Quellsystem.

  6. Ändern Sie die Pfade in der Zeile so, dass sie zu Ihrer Instanz passen (hinzufügen). segment-old: Vor dem Pfad, falls erforderlich, 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 in der Lage sind, mit Crx2Oak zu migrieren, führen Sie stattdessen die folgenden Schritte zur Paketmigration aus.

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

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

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

Führen Sie folgende Schritte aus:

  1. Kopieren Sie den Pfad der Benutzerknoten „Anonym“ und „Admin“ aus den Ergebnissen in Schritt 1 (Schritt 1: Admin und anonyme Benutzer suchen) 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. Zum Package Managerhttp://host:port/crx/packmgr/index.jsp und melden Sie sich als Administrator an.

  3. Paket erstellen Benutzer.

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

    1. /home/users/ ausschließen.*/.tokens
    2. exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
    3. exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
    4. /home/users/a/admin ausschließen
    5. Ausschließen /home/users/a/anonymous
    6. /home/users/system ausschließen
    7. exclude /home/users/geometrixx
    8. /home/users/media ausschließen
    9. /home/users/projects ausschließen
    10. Ausschließen /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. Hinzufügen-Modus = sich zusammenschließen in die <filter ...> -Tag, zum Beispiel:

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

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

  13. (Nur Upgrade) Wenn Sie die Migration auf eine neuere Version von AEM durchführen, installieren Sie eine neue lokale AEM-Instanz  der alten Version (ohne Beispielinhalte) und installieren Sie dort das Benutzerpaket und dann das Gruppenpaket. Führen Sie dann auf dieser Instanz ein In-Place-Upgrade auf die neue Version 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-Version auf 6.3 migrieren, gehen Sie zu /useradmin Benutzeroberfläche und Hinzufügen des Benutzerreplikations-Empfängers zur Administratoren Gruppe.

Schritt 3. Migration von ACLs

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

  1. Laden Sie ACS Commons herunter und installieren Sie es.

  2. Führen Sie die hier angegebenen Schritte aus, um ein ACL-Paket zu erstellen.

  3. Zu gehen  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-Handhabung Folgendes aus: Fusionieren , um zu vermeiden, dass vorhandene ACLs im Zielsystem entfernt werden.

    Dies ist besonders wichtig bei der Migration von ACLs zwischen verschiedenen Versionen von AEM (da es verhindert, dass vorkonfigurierte ACLs entfernt werden).

Wenn Sie  nicht  Sie können Tools (ACS Commons) in AEM installieren und führen dann die folgenden Schritte aus.
Beachten Sie, dass der Rechner, auf dem Sie diese Befehle ausführen, unter Mac OS, Linux oder Windows (unter Verwendung von Cygwin) laufen muss und cURL, Python und das Java-SDK installiert sein müssen.

  1. Zu gehen  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 Schaltfläche.

  4. Wählen Sie die Erweitert Tabulatortaste und Festlegen AC-Betriebsart bis Fusionieren.

  5. Speichern Sie.

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

  7. Führen Sie auf dem Dateisystem diesen Befehl auf dem Paket aus, um das Paket zu extrahieren. 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 mit den ACL-Pfaden unter herunterzuladen. /content Von der Quellinstanz aus (geben Sie den Benutzernamen, das Kennwort und den richtigen Host an):

    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 einer Datei generate-package-filter.py und fügen Sie den unten stehenden Python-Code darin 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 im selben Ordner aus, in dem data.json wurde erstellt und die Ausgabe in gespeichert META-INF/vault/filter.xml (vorhandene Inhalte von ersetzen) filter.xml):

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

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

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

  12. Laden Sie die ZIP-Datei in den Package Manager 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 Package Manager 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. Dadurch würden beispielsweise die ACLs unter /etc anstelle von /content:

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