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. Migrieren Sie Benutzer und Gruppen

(Wenn Benutzer nicht automatisch über LDAP importiert wurden) - Paketbenutzer und Gruppen (zwei getrennte Pakete) auf dem alten System (ausgenommen Admin- und anonyme OOTB-Benutzer).

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

  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 im System, in dem ich das Paket erstelle.
    • /home/users/K/Kj1406Qo9IDODc_nk5Ib - anonymer Benutzer im System, in dem ich das Paket erstelle.
  7. Gehen Sie zu Package Manager, http://host:port/crx/packmgr/index.jsp und melden Sie sich als Administrator an.

  8. Erstellen Sie das Paket „Benutzer“.

  9. 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
  10. Erstellen Sie das Paket.

  11. Laden Sie das Paket herunter.

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

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

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

  14. 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>

  15. 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

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

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

  18. (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.

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

  20. Installieren Sie das Gruppenpaket auf dem neuen System.

  21. 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.

2. 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