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 (AEM)

Problema/Sintomi

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. Nella casella Query in basso, immettere questa query per trovare l'utente amministratore: /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"].

  4. Fare clic su Esegui e copiare il percorso del nodo utente amministratore nei risultati in un file di testo.

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

  6. Fai clic su Esegui e copia il percorso del nodo utente anonimo nei risultati in un file di testo (quindi ora hai due percorsi, uno per "amministratore" e uno per "anonimo").
    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 di 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 parametro di parte --exclude-paths del comando seguente con i percorsi degli utenti amministratori e anonimi del sistema di origine.

  6. Modifica i percorsi in linea in modo che corrispondano 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 del passaggio 1 (Passaggio 1: Trovare gli utenti anonimi e amministratori).

    Ad esempio:

    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - utente amministratore sul sistema in cui si sta creando il pacchetto, oppure

    /home/users/K/Kj1406Qo9IDODc_nk5Ib - utente anonimo sul sistema in cui si sta creando il pacchetto

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

  3. Crea il pacchetto utenti.

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

    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à = merge al tag <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 pacchetto gruppi contenente una regola di filtro /home/groups.

  12. Ripeti i passaggi 1-10 per il pacchetto “gruppi”.

  13. (Solo aggiornamento) Se si esegue la migrazione alla versione AEM più recente, installare una nuova istanza AEM locale della versione precedente (con nosamplecontent) e installare sia il pacchetto utenti che 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 esegui la migrazione da una versione precedente dell'AEM alla versione 6.3, passa all'interfaccia utente /useradmin e aggiungi il ricevitore di replica utente al gruppo amministratori.

Passaggio 3: esegui la migrazione di ACL

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 sul pulsante Modifica.

  4. Selezionare la scheda Avanzate e impostare Modalità gestione AC su Unione.

  5. Salva.

  6. Crea il pacchetto e scaricalo.

  7. Nel file system eseguire il comando seguente sul pacchetto per estrarre il file META-INF/vault/filter.xml:

    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 di origine (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 incollare il codice python seguente al suo interno:\

    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. Eseguire lo script python dalla stessa cartella in cui è stato creato data.json e salvare 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. Usa questo comando per aggiornare filter.xml nel file zip:

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

  12. Caricare il file zip nel gestore di 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. Caricare 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 anziché /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