Migrar usuarios, grupos y ACLs entre instancias de AEM
AEM AEM Este artículo ofrece diferentes formas de migrar usuarios y grupos con permisos ACL en los permisos de un servidor de a otro o de una instancia de a otra.
Descripción description
Entorno
Adobe Experience Manager
Problema
AEM AEM Cómo migrar usuarios y grupos con permisos ACL en los de un servidor a otro o de una instancia de a otra.
Resolución resolution
Paso 1: Encuentre al administrador y a los usuarios anónimos
-
Vaya a la aplicación CRXDE lite
/crx/de/index.jsp
y entre como usuario administrador (en el sistema fuente). -
Ir a Herramientas
=>
Consulta. -
En la parte inferior Consulta , introduzca esta consulta para encontrar al usuario administrador:
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"]
. -
Clic Ejecutar y copie la ruta del nodo del usuario administrador en los resultados a un archivo de texto.
-
Repita el paso 3 con una consulta para el usuario anónimo:
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"]
. -
Clic Ejecutar y copie la ruta del nodo del usuario anónimo en los resultados a un archivo de texto (ahora tiene dos rutas, una para "admin" y otra para "anonymous").
Por ejemplo:/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
- usuario administrador en el sistema de origen/home/users/K/Kj1406Qo9IDODc_nk5Ib
- usuario anónimo en el sistema de origen
Paso 2A: Migrar usuarios y grupos (usando Crx2Oak) o Oak-actualización)
Los usuarios y grupos pueden migrar entre instancias de AEM usando las herramientas crx2oak o oak-upgrade.
-
Descargue el jar crx2oak o oak-upgrade que coincida con la versión de Oak que está utilizando:
- Oak-actualización: https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-upgrade
- Crx2Oak: Repositorio Maven
-
AEM Cargue el archivo jar en el servidor de.
-
AEM Detener (instancias de origen y destino).
-
Sustituya el nombre del archivo jar en el comando siguiente.
-
Reemplazar
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
,/home/users/K/Kj1406Qo9IDODc_nk5Ib
en el--exclude-paths
forma parte del parámetro del comando siguiente con las rutas de los usuarios admin y anonymous de su sistema fuente. -
Modifique las rutas en línea para que coincidan con su instancia (añada
segment-old:
antes de la ruta si es necesario, consulte aquí):/opt/aem-source/crx-quickstart/repository /opt/aem-destination/crx-quickstart/repository
-
A continuación, ejecute el comando en el shell del servidor:
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 &
-
Una vez finalizado, vaya al tercer paso para migrar las ACL. Si no puede migrar con Crx2Oak, siga los pasos de migración de paquetes que aparecen a continuación.
Paso 2B: Migrar usuarios y grupos (usando paquetes)
Si los usuarios no se importaron automáticamente a través de la autenticación LDAP/SAML o Crx2Oak (paso 2A anterior), puede empaquetar usuarios y grupos.
En este caso, se crean dos paquetes separados en el sistema antiguo (excluyendo al administrador y a los usuarios anónimos de la caja).
Siga estos pasos:
-
Copie la ruta de los nodos de usuario anónimo y de administrador de los resultados del paso 1 (Paso 1: Encuentre al administrador y a los usuarios anónimos) anterior.
Por ejemplo:
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
- usuario administrador en el sistema donde está creando el paquete, o/home/users/K/Kj1406Qo9IDODc_nk5Ib
- usuario anónimo en el sistema donde está creando el paquete -
Vaya a la Administrador de paquetes, http://host:port/crx/packmgr/index.jsp e inicie sesión como administrador.
-
Crear paquete usuarios.
-
Añadir un filtro a la configuración del paquete para
/home/users
con estas reglas de exclusión (en el/home/users
filter):- excluir /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
-
Genere el paquete.
-
Descargue el paquete.
-
Descomprima el archivo zip del paquete en el ordenador:
jar -xvf users.zip META-INF/vault/filter.xml
-
Abra el archivo
META-INF/vault/filter.xml
en un editor de texto. -
Agregar modo = fusionar a la
<filter ...>
, por ejemplo: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>
-
Vuelva a comprimir el contenido del paquete modificado para que incluya el cambio.
jar -uvf users.zip META-INF/vault/filter.xml
-
Crear un grupos paquete que contiene una regla de filtro
/home/groups
. -
Repita los pasos 11-14 para el paquete de grupos.
-
(Solo actualización) Si realiza la migración a una versión más reciente de AEM, instale una instancia local fresca de AEM de la versión antigua (con nosamplecontent), e instale el paquete de usuarios, y luego el de grupos allí. A continuación, realice una actualización in situ a la nueva versión en esa instancia. Esto convierte a los usuarios en la nueva representación de Oak Tras la actualización in situ, vuelva a empaquetar a los usuarios para portarlos a su instancia actualizada prevista. Haga lo mismo para los grupos de usuarios.
-
Instale el paquete de usuarios en el nuevo sistema.
-
Instale el paquete de grupos en el nuevo sistema.
-
AEM Si está migrando de una versión anterior de la a la 6.3, vaya a
/useradmin
y agregue el usuario replicador-receptor a la administradores grupo.
Paso 3. Migrar ACL
Si puede instalar herramientas (ACS Commons) en AEM, siga estos pasos:
-
Descargue e instale ACS Commons.
-
Siga los pasos proporcionados aquí para crear un paquete ACL.
-
Ir a http://aem-host:port/crx/packmgr/index.jsp e inicie sesión como administrador.
-
Haga clic en el paquete ACL.
-
Haga clic en Editar.
-
Seleccione la pestaña Avanzadas (véase la captura de pantalla siguiente).
-
En el menú desplegable de AC Handling, seleccione Combinar para evitar eliminar las ACL existentes en el sistema de destino.
Esto es especialmente importante a la hora de migrar ACL entre diferentes versiones de AEM (ya que evita eliminar las ACL de fábrica).
Si es usted no AEM Puede instalar herramientas (ACS Commons) para instalar y, a continuación, siga estos pasos.
Tenga en cuenta que la máquina donde ejecute estos comandos debe ser Mac OS, Linux o Windows (usando Cygwin) con curl, python y Java SDK instalados.
-
Ir a http://src-aem-host:port/crx/packmgr/index.jsp e inicie sesión como administrador.
-
Cree un paquete llamado ACL-migration.
-
Haga clic en Editar botón.
-
Seleccione el Avanzadas tabulación y conjunto Modo de manejo de CA hasta Combinar.
-
Guardar.
-
Genere el paquete y descárguelo.
-
En el sistema de archivos, ejecute este comando en el paquete para extraer el
META-INF/vault/filter.xml
archivo:jar -xvf ACL-migration-1.0.zip META-INF/vault/filter.xml
-
En el mismo directorio, ejecute este comando para descargar un archivo json de las rutas ACL en
/content
desde la instancia de origen (establezca el nombre de usuario, la contraseña y el host correcto):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
-
Creación de un archivo
generate-package-filter.py
y pegue el código de python que aparece a continuación dentro de él:\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>")
-
Ejecute el script de python desde la misma carpeta donde
data.json
se ha creado y guarde el resultado enMETA-INF/vault/filter.xml
(sustituye el contenido existente defilter.xml
):python generate-packge-filter.py > META-INF/vault/filter.xml
-
Utilice este comando para actualizar el
filter.xml
dentro del archivo zip:jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml
-
Cargue el archivo zip en el administrador de paquetes de la instancia de origen: http://src-aem-host:port/crx/packmgr/index.jsp
-
Haga clic en Construir o Reconstruir para construir el paquete.
-
Descargue el paquete del servidor AEM de origen.
-
AEM Cargue el paquete en el administrador de paquetes del servidor de la de destino: http://dst-aem-host:port/crx/packmgr/index.jsp
-
Haga clic en Instalar para instalarlo.
-
Repita los pasos 8-16 para cualquier otra ruta cambiando el comando curl de la ruta. Por ejemplo, esto pondría las ACL bajo
/etc
en lugar de/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