Migration d’utilisateurs, de groupes et de listes de contrôle d’accès entre instances AEM

Cet article propose différentes manières de migrer des utilisateurs et des groupes avec des autorisations ACL dans AEM d’un serveur à un autre ou d’une instance AEM à une autre.

Description description

Environnement

Adobe Experience Manager

Problème

Comment migrer des utilisateurs et des groupes avec des autorisations ACL dans AEM d’un serveur à un autre ou d’une instance AEM à une autre.

Résolution resolution

Étape 1 : Rechercher les administrateurs et les utilisateurs anonymes

  1. Accédez à /crx/de/index.jsp dans l’application CRXDE lite et connectez-vous en tant qu’utilisateur administrateur (sur le système source).

  2. Accéder à Outils => Requête.

  3. En bas Requête , saisissez cette requête pour trouver l’utilisateur administrateur : /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"].

  4. Clic Exécuter et copiez le chemin d’accès du nœud utilisateur administrateur dans les résultats dans un fichier texte.

  5. Répétez l’étape 3 avec une requête pour l’utilisateur anonyme : /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"].

  6. Clic Exécuter et copiez le chemin d’accès du nœud utilisateur anonyme dans les résultats dans un fichier texte (vous disposez donc de deux chemins d’accès, l’un pour « admin » et l’autre pour « anonyme »).

    Par exemple :

    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - utilisateur administrateur sur le système source
    /home/users/K/Kj1406Qo9IDODc_nk5Ib - utilisateur anonyme sur le système source

Étape 2A : Migrer des utilisateurs et des groupes (à l’aide de Crx2Oak) ou Oak-upgrade)

Les utilisateurs et les groupes peuvent être migrés entre les instances d’AEM à l’aide des outils crx2oak ou oak-upgrade.

  1. Téléchargez le fichier jar crx2oak ou oak-upgrade correspondant à la version Oak que vous utilisez :

    1. Oak-upgrade : https://repo1.maven.org/maven2/org/apache/jackrabbit/oak-upgrade
    2. Crx2Oak : Référentiel Maven
  2. Chargez le fichier jar sur le serveur AEM.

  3. Arrêtez AEM (instances source et de destination).

  4. Remplacez le nom du fichier jar dans la commande ci-dessous.

  5. Replace /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv,/home/users/K/Kj1406Qo9IDODc_nk5Ib dans le --exclude-paths paramètre de partie de la commande ci-dessous avec les chemins d’accès des utilisateurs administrateurs et anonymes de votre système source.

  6. Modifier les chemins d’accès en ligne pour qu’ils correspondent à votre instance (ajouter segment-old: avant le chemin d’accès, le cas échéant, voir ici) :

    /opt/aem-source/crx-quickstart/repository /opt/aem-destination/crx-quickstart/repository

  7. Exécutez ensuite la commande sur le shell du serveur :

    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. Une fois l’opération terminée, passez à l’étape 3 pour migrer les listes de contrôle d’accès.  Si vous ne parvenez pas à migrer à l’aide de Crx2Oak, suivez les étapes de migration des packages ci-dessous.

Étape 2B : Migrer des utilisateurs et des groupes (à l’aide de packages)

Si les utilisateurs n’ont pas été importés automatiquement via l’authentification LDAP/SAML ou Crx2Oak (étape 2A ci-dessus), vous pouvez alors regrouper des utilisateurs et des groupes.

Dans ce cas, vous créez deux packages distincts sur l’ancien système (à l’exclusion des administrateurs et des utilisateurs anonymes prêts à l’emploi).

Procédez de la façon suivante :

  1. Copiez le chemin d’accès des nœuds utilisateur anonyme et administrateur à partir des résultats de l’étape 1 (Étape 1 : Rechercher les administrateurs et les utilisateurs anonymes) ci-dessus.

    Par exemple :

    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - utilisateur administrateur sur le système sur lequel vous créez le package, ou

    /home/users/K/Kj1406Qo9IDODc_nk5Ib - utilisateur anonyme sur le système sur lequel vous créez le package

  2. Accéder à Gestionnaire de packageshttp://host:port/crx/packmgr/index.jsp et connectez-vous en tant qu’administrateur.

  3. Créer un package utilisateurs.

  4. Ajoutez un filtre à la configuration du package pour . /home/users avec ces règles d’exclusion (sur le /home/usersfilter) :

    1. excluez /home/users/.*/.tokens
    2. exclure /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
    3. exclure /home/users/K/Kj1406Qo9IDODc_nk5Ib
    4. exclure /home/users/a/admin
    5. exclure /home/users/a/anonyme
    6. exclure /home/users/system
    7. exclure /home/users/geometrixx
    8. exclure /home/users/media
    9. exclure /home/users/projects
    10. exclure /home/users/mac
  5. Créez le package.

  6. Téléchargez le package.

  7. Décompressez le fichier zip du package sur votre ordinateur : jar -xvf users.zip META-INF/vault/filter.xml.

  8. Ouvrez le fichier META-INF/vault/filter.xml dans un éditeur de texte.

  9. Ajouter un mode = fusionner vers le <filter ...> par exemple :

    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. Recompressez le contenu du package modifié pour qu’il inclue la modification.

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

  11. Création d’un groupes  package contenant une règle de filtrage /home/groups.

  12. Répétez les étapes 11 à 14 pour le package de groupes.

  13. (Mise à niveau uniquement) Si vous effectuez une migration vers une nouvelle version d’AEM, installez une nouvelle instance d’AEM locale  de l’ancienne version (avec nosamplecontent), puis installez-y le package utilisateurs, puis le package groupes. Effectuez ensuite une mise à niveau sur place vers la nouvelle version sur cette instance. Les utilisateurs sont ainsi convertis en nouvelle représentation Oak. Après la mise à niveau sur place, effectuez un nouveau package des utilisateurs pour les transférer vers l’instance mise à niveau prévue. Faites de même pour les groupes d’utilisateurs.

  14. Installez le package d’utilisateurs sur le nouveau système.

  15. Installez le package de groupes sur le nouveau système.

  16. Si vous migrez d’une ancienne version d’AEM vers la version 6.3, accédez à /useradmin et ajoutez l’utilisateur réplication-récepteur à l’. administrateurs groupe.

Étape 3. Migrer les listes de contrôle d’accès

Si vous pouvez installer des outils (ACS Commons) dans AEM, procédez comme suit :

  1. Téléchargez et installez ACS Commons.

  2. Suivez les étapes fournies ici pour créer un package de liste de contrôle d’accès (ACL).

  3. Accéder à  http://aem-host:port/crx/packmgr/index.jsp  et connectez-vous en tant qu’administrateur.

  4. Cliquez sur le package ACL.

  5. Cliquez sur Modifier.

  6. Sélectionnez l’onglet Avancé (voir la capture d’écran ci-dessous).

  7. Dans le menu déroulant Gestion du contrôle d’accès, sélectionnez Fusionner pour éviter de supprimer des listes de contrôle d’accès existantes sur le système de destination.

    Ceci est particulièrement important lors de la migration des listes de contrôle d’accès entre différentes versions d’AEM (car cela évite de supprimer les listes de contrôle d’accès prêtes à l’emploi).

Si vous  non  vous pouvez installer des outils (ACS Commons) sur AEM, puis suivre les étapes suivantes.
Notez que la machine sur laquelle vous exécutez ces commandes doit être sous Mac OS, Linux ou Windows (à l’aide de Cygwin) avec curl, python et le SDK Java installés.

  1. Accéder à  http://src-aem-host:port/crx/packmgr/index.jsp  et connectez-vous en tant qu’administrateur.

  2. Créez un package nommé ACL-migration.

  3. Cliquez sur le lien Modifier Bouton.

  4. Sélectionner le Avancé tabulation et définition Mode de gestion du courant alternatif vers Fusionner.

  5. Enregistrez.

  6. Créez le package et téléchargez-le.

  7. Sur le système de fichiers, exécutez cette commande sur le package pour extraire le META-INF/vault/filter.xml fichier :

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

  8. Dans le même répertoire, exécutez cette commande pour télécharger un fichier json des chemins d’accès aux listes de contrôle d’accès sous . /content à partir de l’instance source (définissez le nom d’utilisateur, le mot de passe et l’hôte approprié) :

    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. Créer un fichier generate-package-filter.py et collez le code python ci-dessous :\

    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. Exécutez le script Python à partir du dossier dans lequel : data.json a été créé et enregistrez la sortie dans META-INF/vault/filter.xml (remplacer le contenu existant de filter.xml) :

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

  11. Utilisez cette commande pour mettre à jour le filter.xml dans le fichier zip :

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

  12. Chargez le fichier zip dans le gestionnaire de packages de l’instance source :  http://src-aem-host:port/crx/packmgr/index.jsp

  13. Cliquez sur Créer ou Recréer pour créer le package.

  14. Téléchargez le package à partir du serveur AEM source.

  15. Chargez le package dans le gestionnaire de packages du serveur AEM de destination :  http://dst-aem-host:port/crx/packmgr/index.jsp

  16. Cliquez sur Installer pour l’installer.

  17. Répétez les étapes 8 à 16 pour tous les autres chemins d’accès en modifiant la commande curl du chemin d’accès. Par exemple, les listes de contrôle d’accès seraient alors sous . /etc au lieu 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