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

  1. Vaya a la aplicación CRXDE lite /crx/de/index.jsp y entre como usuario administrador (en el sistema fuente).

  2. Ir a Herramientas => Consulta.

  3. En la parte inferior Consulta , introduzca esta consulta para encontrar al usuario administrador: /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"].

  4. Clic Ejecutar y copie la ruta del nodo del usuario administrador en los resultados a un archivo de texto.

  5. Repita el paso 3 con una consulta para el usuario anónimo: /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"].

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

  1. Descargue el jar crx2oak o oak-upgrade que coincida con la versión de Oak que está utilizando:

    1. Oak-actualización: https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-upgrade
    2. Crx2Oak: Repositorio Maven
  2. AEM Cargue el archivo jar en el servidor de.

  3. AEM Detener (instancias de origen y destino).

  4. Sustituya el nombre del archivo jar en el comando siguiente.

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

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

  7. 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 &
    
  8. 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:

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

  2. Vaya a la Administrador de paqueteshttp://host:port/crx/packmgr/index.jsp e inicie sesión como administrador.

  3. Crear paquete usuarios.

  4. Añadir un filtro a la configuración del paquete para /home/users con estas reglas de exclusión (en el /home/usersfilter):

    1. excluir /home/users/.*/.tokens
    2. exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
    3. exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
    4. exclude /home/users/a/admin
    5. exclude /home/users/a/anonymous
    6. exclude /home/users/system
    7. exclude /home/users/geometrixx
    8. exclude /home/users/media
    9. exclude /home/users/projects
    10. exclude /home/users/mac
  5. Genere el paquete.

  6. Descargue el paquete.

  7. Descomprima el archivo zip del paquete en el ordenador: jar -xvf users.zip META-INF/vault/filter.xml

  8. Abra el archivo META-INF/vault/filter.xml en un editor de texto.

  9. 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>
    
  10. Vuelva a comprimir el contenido del paquete modificado para que incluya el cambio.

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

  11. Crear un grupos  paquete que contiene una regla de filtro /home/groups.

  12. Repita los pasos 11-14 para el paquete de grupos.

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

  14. Instale el paquete de usuarios en el nuevo sistema.

  15. Instale el paquete de grupos en el nuevo sistema.

  16. 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:

  1. Descargue e instale ACS Commons.

  2. Siga los pasos proporcionados aquí para crear un paquete ACL.

  3. Ir a  http://aem-host:port/crx/packmgr/index.jsp  e inicie sesión como administrador.

  4. Haga clic en el paquete ACL.

  5. Haga clic en Editar.

  6. Seleccione la pestaña Avanzadas (véase la captura de pantalla siguiente).

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

  1. Ir a  http://src-aem-host:port/crx/packmgr/index.jsp  e inicie sesión como administrador.

  2. Cree un paquete llamado ACL-migration.

  3. Haga clic en Editar botón.

  4. Seleccione el Avanzadas tabulación y conjunto Modo de manejo de CA hasta Combinar.

  5. Guardar.

  6. Genere el paquete y descárguelo.

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

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

  9. 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>")
    
  10. Ejecute el script de python desde la misma carpeta donde data.json se ha creado y guarde el resultado en META-INF/vault/filter.xml (sustituye el contenido existente de filter.xml):

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

  11. Utilice este comando para actualizar el filter.xml dentro del archivo zip:

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

  12. Cargue el archivo zip en el administrador de paquetes de la instancia de origen:  http://src-aem-host:port/crx/packmgr/index.jsp

  13. Haga clic en Construir o Reconstruir para construir el paquete.

  14. Descargue el paquete del servidor AEM de origen.

  15. AEM Cargue el paquete en el administrador de paquetes del servidor de la de destino:  http://dst-aem-host:port/crx/packmgr/index.jsp

  16. Haga clic en Instalar para instalarlo.

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

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f