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

Problema/Síntomas

AEM AEM Migrar usuarios y grupos con permisos ACL en los permisos de los usuarios 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 e inicie sesión como usuario administrador (en el sistema de origen).

  2. Ir a Herramientas => Consulta.

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

  4. Haga clic en 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. Haga clic en Ejecutar y copie la ruta del nodo de usuario anónimo en los resultados a un archivo de texto (ahora tendrá 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-upgrade)

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. Reemplace /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv,/home/users/K/Kj1406Qo9IDODc_nk5Ib en el parámetro de parte --exclude-paths del comando siguiente por las rutas de los usuarios admin y anonymous de su sistema de origen.

  6. Modifique las rutas en línea para que coincidan con su instancia (agregue segment-old: antes de la ruta si es necesario, vea 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 Administrador de paquetes, http://host:port/crx/packmgr/index.jsp e inicie sesión como administrador.

  3. Crear paquete usuarios.

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

    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 = combinar a la etiqueta <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. Cree un paquete groups que contenga una regla de filtro /home/groups.

  12. Repita los pasos 1-10 para el paquete de grupos.

  13. AEM AEM (Solo actualización) Si realiza la migración a una versión más reciente de la, instale una nueva instancia de la versión local 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 la interfaz de usuario de /useradmin y agregue el usuario replicador-receptor al grupo de administradores.

Paso 3. Migrar ACL

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. Vaya 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 el botón Editar.

  4. Seleccione la ficha Avanzado y establezca Modo de administración de CA en 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 archivo META-INF/vault/filter.xml:

    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 bajo /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. Cree un archivo generate-package-filter.py y pegue el código de python siguiente 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 python desde la misma carpeta en la que se creó data.json y guarde la salida en META-INF/vault/filter.xml (reemplazando el contenido existente de filter.xml):

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

  11. Use 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 al 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 destino de la aplicación: 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