Eseguire la migrazione di utenti, gruppi e ACL tra istanze AEM
Questo articolo fornisce vari metodi 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 6.5 (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
- Vai all'app CRXDE lite
/crx/de/index.jsp
e accedi come utente amministratore (sul sistema di origine). - Vai a Strumenti
=>
Query. - Nella casella Query in basso, immettere questa query per trovare l'utente amministratore:
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"]
. - Fare clic su Esegui e copiare il percorso del nodo utente amministratore nei risultati in un file di testo.
- Ripetere il passaggio 3 con una query per l'utente anonimo:
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"]
. - 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 2: 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:
-
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 -
Vai a Gestione pacchetti,
http://host:port/crx/packmgr/index.jsp
e accedi come amministratore. -
Crea il pacchetto utenti.
-
Aggiungi un filtro alla configurazione del pacchetto per
/home/users
con queste regole di esclusione (sul filtro/home/users
): (Nota: potrebbe essere necessario modificare l'elenco se il prodotto aggiungi/rimuovi gruppi/utenti dall'AEM)- exclude /home/users/.*/.tokens
- exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
- exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
- escludi /home/users/a/admin
- escludi /home/users/a/anonymous
- exclude /home/users/system
- escludi /home/users/geometrixx
- escludi /home/users/media
- escludi /home/users/projects
- exclude /home/users/mac
-
Crea il pacchetto.
-
Scarica il pacchetto.
-
Decomprimi il file zip del pacchetto sul computer:
jar -xvf users.zip META-INF/vault/filter.xml
-
Apri il file
META-INF/vault/filter.xml
in un editor di testo. -
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>
-
Comprimi nuovamente il contenuto del pacchetto modificato in modo da includere la modifica.
jar -uvf users.zip META-INF/vault/filter.xml
-
Creare un pacchetto gruppi contenente una regola di filtro
/home/groups
. -
Ripeti i passaggi 1-10 per il pacchetto “gruppi”.
-
(Solo aggiornamento) Se si esegue la migrazione a una 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. -
Installa il pacchetto di utenti sul nuovo sistema.
-
Installa il pacchetto di gruppi sul nuovo sistema.
-
Se stai eseguendo 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: Migra ACL
(NOTA: il pacchetto creato deve includere solo gli ACL necessari) Si noti che il computer in cui vengono eseguiti questi comandi deve essere Mac OS, Linux o Windows (utilizzando Cygwin) con curl, python e Java SDK installati.
-
Vai a
http://src-aem-host:port/crx/packmgr/index.jsp,
e accedi come amministratore. -
Crea un pacchetto denominato ACL-migration.
-
Fai clic sul pulsante Modifica.
-
Selezionare la scheda Avanzate e impostare Modalità gestione AC su Unione.
-
Salva.
-
Crea il pacchetto e scaricalo.
-
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
-
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
-
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>")
-
Eseguire lo script python dalla stessa cartella in cui è stato creato
data.json
e salvare l'output inMETA-INF/vault/filter.xml
(sostituendo il contenuto esistente difilter.xml
):python generate-packge-filter.py > META-INF/vault/filter.xml
-
Usa questo comando per aggiornare
filter.xml
nel file zip:jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml
-
Caricare il file zip nel gestore di pacchetti dell'istanza di origine:
http://src-aem-host:port/crx/packmgr/index.jsp
-
Fai clic su Genera o Rigenera per creare il pacchetto.
-
Scarica il pacchetto dal server AEM di origine.
-
Caricare il pacchetto nel gestore di pacchetti del server AEM di destinazione:
http://dst-aem-host:port/crx/packmgr/index.jsp
-
Fai clic su Installa per installarlo.
-
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