Eseguire la migrazione di utenti, gruppi e ACL tra istanze AEM

Questo articolo offre diversi modi per migrare Utenti e gruppi con autorizzazioni ACL in AEM da un server a un altro o da un’istanza AEM a un’altra.

Descrizione description

Ambiente

Adobe Experience Manager

Problema

Eseguire la migrazione di utenti e gruppi con autorizzazioni ACL in AEM da un server a un altro o da un'istanza AEM a un'altra.

Risoluzione resolution

Passaggio 1: trova l’amministratore e gli utenti anonimi

  1. Vai all’app CRXDE lite /crx/de/index.jsp e accedi come utente amministratore (sul sistema di origine).

  2. Vai a Strumenti => Query.

  3. In basso Query immettere questa query per trovare l'utente amministratore: /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"].

  4. Clic Esegui e copia il percorso del nodo utente admin nei risultati in un file di testo.

  5. Ripeti il passaggio 3 con una query per l’utente anonimo: /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"].

  6. Clic Esegui e copia il percorso del nodo utente anonimo nei risultati in un file di testo (quindi ora hai due percorsi, uno per "admin" e uno per "anonymous").

    Ad esempio:

    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv: utente amministratore sul sistema di origine
    /home/users/K/Kj1406Qo9IDODc_nk5Ib: utente anonimo sul sistema di origine

Passaggio 2A: esegui la migrazione di utenti e gruppi (utilizzando Crx2Oak o Oak-upgrade)

È possibile eseguire la migrazione di utenti e gruppi tra istanze AEM utilizzando gli strumenti crx2oak o oak-upgrade.

  1. Scarica il file jar crx2oak o oak-upgrade corrispondente alla versione Oak in uso:

    1. Oak-upgrade: https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-upgrade
    2. Crx2Oak: Archivio Maven
  2. Carica il file jar sul server AEM.

  3. Arrestare AEM (istanze di origine e di destinazione).

  4. Sostituisci il nome del file jar nel comando seguente.

  5. Sostituisci /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv,/home/users/K/Kj1406Qo9IDODc_nk5Ib nel --exclude-paths parte del parametro del comando seguente con i percorsi degli utenti amministratori e anonimi del sistema di origine.

  6. Modifica i percorsi in linea in base all’istanza (aggiungi segment-old: prima del percorso, se necessario, vedi qui):

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

  7. Esegui quindi il comando sulla shell del server:

    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. Dopo aver eseguito l’operazione, vai al passaggio 3 per effettuare la migrazione degli ACL.  Se non riesci a eseguire la migrazione utilizzando Crx2Oak, segui i passaggi di migrazione del pacchetto riportati di seguito.

Passaggio 2B: esegui la migrazione di utenti e gruppi (tramite pacchetti)

Se gli utenti non vengono importati automaticamente tramite autenticazione LDAP/SAML o Crx2Oak (passaggio 2A sopra), puoi creare pacchetti di utenti e gruppi.

In questo caso puoi creare due pacchetti separati sul vecchio sistema (esclusi gli utenti amministratori e anonimi predefiniti).

Segui questi passaggi:

  1. Copia il percorso dei nodi utente anonimi e amministratori dai risultati nel passaggio 1 (Passaggio 1: trova l’amministratore e gli utenti anonimi).

    Ad esempio:

    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv : utente amministratore sul sistema in cui stai creando il pacchetto, oppure

    /home/users/K/Kj1406Qo9IDODc_nk5Ib : utente anonimo sul sistema in cui stai creando il pacchetto

  2. Vai a Gestione pacchettihttp://host:port/crx/packmgr/index.jsp, e accedi come amministratore.

  3. Crea pacchetto utenti.

  4. Aggiungi un filtro alla configurazione del pacchetto per /home/users con queste regole di esclusione (sulla /home/usersfilter):

    1. exclude /home/users/.*/.tokens
    2. exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
    3. exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
    4. escludi /home/users/a/admin
    5. escludi /home/users/a/anonymous
    6. exclude /home/users/system
    7. escludi /home/users/geometrixx
    8. escludi /home/users/media
    9. escludi /home/users/projects
    10. exclude /home/users/mac
  5. Crea il pacchetto.

  6. Scarica il pacchetto.

  7. Decomprimi il file zip del pacchetto sul computer: jar -xvf users.zip META-INF/vault/filter.xml

  8. Apri il file META-INF/vault/filter.xml in un editor di testo.

  9. Aggiungi modalità = unione al <filter ...> ad esempio:

    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. Comprimi nuovamente il contenuto del pacchetto modificato in modo da includere la modifica.

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

  11. Creare un gruppi  pacchetto contenente una regola di filtro /home/groups.

  12. Ripeti i passaggi 11-14 per il pacchetto “gruppi”.

  13. (Solo aggiornamento) Se esegui la migrazione alla versione AEM più recente, installa una nuova istanza AEM locale  della versione precedente(con nosamplecontent) e installa sia il pacchetto utenti sia il pacchetto gruppi. Esegui quindi un aggiornamento sul posto alla nuova versione in tale istanza. In questo modo gli utenti vengono convertiti nella nuova rappresentazione Oak. Dopo l’aggiornamento sul posto, crea nuovamente un pacchetto utenti per trasferirli nell’istanza aggiornata prevista. Effettua le stesse operazioni per i gruppi di utenti.

  14. Installa il pacchetto di utenti sul nuovo sistema.

  15. Installa il pacchetto di gruppi sul nuovo sistema.

  16. Se stai eseguendo la migrazione da una versione precedente dell’AEM alla versione 6.3, vai al /useradmin e aggiungi il ricevitore di replica utente alla amministratori gruppo.

Passaggio 3: esegui la migrazione di ACL

Se sei in grado di installare strumenti (ACS Commons) da AEM, segui questi passaggi:

  1. Scarica e installa ACS Commons.

  2. Segui i passaggi seguenti per creare un pacchetto ACL.

  3. Vai a  http://aem-host:port/crx/packmgr/index.jsp  e accedi come amministratore.

  4. Fai clic sul pacchetto ACL.

  5. Fai clic su Modifica.

  6. Seleziona la scheda Avanzate (vedi la schermata seguente).

  7. Nel menu a discesa Gestione AC, seleziona Unisci per evitare di rimuovere gli ACL esistenti sul sistema di destinazione.

    Ciò è particolarmente importante quando si esegue la migrazione di ACL tra versioni diverse di AEM (in quanto evita la rimozione di ACL predefiniti).

Se sei  non  in grado di installare strumenti (ACS Commons) per AEM, quindi seguire questi passaggi.
Il computer in cui vengono eseguiti questi comandi deve essere Mac OS, Linux o Windows (utilizzando Cygwin) con curl, python e Java SDK installati.

  1. Vai a  http://src-aem-host:port/crx/packmgr/index.jsp  e accedi come amministratore.

  2. Crea un pacchetto denominato ACL-migration.

  3. Fai clic su Modifica pulsante.

  4. Seleziona la Avanzate Tab e set Modalità AC Handling a Unisci.

  5. Salva.

  6. Crea il pacchetto e scaricalo.

  7. Nel file system, esegui questo comando sul pacchetto per estrarre META-INF/vault/filter.xml file:

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

  8. Nella stessa directory, esegui questo comando per scaricare un file json dei percorsi ACL in /content dall’istanza sorgente (imposta il nome utente, la password e l’host corretti):

    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. Creare un file generate-package-filter.py e incolla al suo interno il codice del pitone:\

    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. Esegui lo script python dalla stessa cartella in cui data.json creato e salva l'output in META-INF/vault/filter.xml (sostituendo il contenuto esistente di filter.xml):

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

  11. Utilizza questo comando per aggiornare filter.xml nel file zip:

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

  12. Carica il file zip in Gestione pacchetti dell’istanza di origine:  http://src-aem-host:port/crx/packmgr/index.jsp

  13. Fai clic su Genera o Rigenera per creare il pacchetto.

  14. Scarica il pacchetto dal server AEM di origine.

  15. Carica il pacchetto nel gestore di pacchetti del server AEM di destinazione:  http://dst-aem-host:port/crx/packmgr/index.jsp

  16. Fai clic su Installa per installarlo.

  17. Ripeti i passaggi 8-16 per tutti gli altri percorsi che modificano il comando CURL del percorso. Ad esempio, con il comando seguente si ottengono gli ACL in /etc invece di /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