Migrar usuarios, grupos y ACLs entre instancias de AEM

AEM AEM Este artículo proporciona varios métodos para migrar usuarios y grupos con permisos ACL de un servidor a otro o de una instancia de a otra.

Descripción description

Entorno

Adobe Experience Manager AEM 6.5 ()

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 2: 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. AEM Agregue un filtro a la configuración del paquete para /home/users con estas reglas de exclusión (en el filtro /home/users): (Nota: Es posible que la lista tenga que cambiar si el producto agrega/elimina grupos/usuarios de la lista de usuarios de la)

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

(NOTA: El paquete creado solo debe incluir las ACL necesarias) Tenga en cuenta que la máquina donde ejecute estos comandos debe ser Mac OS, Linux o Windows (con 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 Advanced y establezca AC Handling mode en Merge.

  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