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.

Étapes

1. Migrer des utilisateurs et des groupes

(Si les utilisateurs n’ont pas été importés automatiquement via LDAP) Module utilisateurs et groupes (deux modules distincts) sur l’ancien système (excepté les utilisateurs admin et anonymes).

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

  2. Accédez à Outils => Requêtes

  3. Pour trouver l'administrateur, saisissez cette requête dans la fenêtre « Requête » du bas : /jcr:root/home/users//element(*,rep:User)[@rep:principalName="admin"]

  4. Cliquez sur « Exécuter » et copiez le chemin du nœud de l’administrateur dans un fichier texte.

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

  6. Cliquez sur « Exécuter » et copiez le chemin d’accès du nœud utilisateur anonyme dans un fichier texte (pour que vous ayez deux chemins, l’un pour « admin » et l’autre pour « anonyme »)

    Par exemple :

    • /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv – administrateur dans le système où je crée le module.
    • /home/users/K/Kj1406Qo9IDODc_nk5Ib – utilisateur anonyme dans le système où je crée le module.
  7. Rendez-vous dans « Gestionnaire de modules », http://host:port/crx/packmgr/index.jsp, et connectez-vous en tant qu'administrateur.

  8. Créez un module « utilisateurs ».

  9. Ajoutez un filtre à la configuration de contenu pour /home/users avec ces règles d’exclusion (sur le filtre /home/users) :

    • exclude /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
  10. Générez le module.

  11. Téléchargez le module.

  12. Décompressez le fichier zip du module sur votre ordinateur.

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

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

  14. Ajoutez la balise mode="merge" to the <filter ...>, par exemple :

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

  15. Re-zippez le contenu du module modifié afin qu’il contienne la modification.

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

  16. Créez un module « groupe » contenant une règle de filtre /home/groups.

  17. Répétez les étapes 11 à 14 pour les modules groupes.

  18. (Mise à jour uniquement) Lors de la migration vers la dernière version d'AEM, installez une nouvelle instance AEM locale de l'ancienne version (avec nosamplecontent) et installez les modules utilisateur puis groupes. Ensuite, effectuez une mise à niveau statique vers la nouvelle version sur cette instance. Cela convertit les utilisateurs vers la nouvelle représentation Oak. Après la mise à niveau statique, recréez les modules utilisateurs pour les acheminer vers votre instance de mise à niveau prévue. Procédez comme suit pour les groupes d’utilisateurs.

  19. Installez le module des utilisateurs sur le nouveau système.

  20. Installez le module des groupes sur le nouveau système.

  21. Si vous migrez vers une version antérieure à AEM 6.3, rendez-vous dans l'interface /useradmin et ajoutez le receveur de réplication au groupe « administrateurs ».

2. Migrer les listes ACL

Si vous réussissez à installer des outils (Commons ACS) sur AEM, procédez comme suit :

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

  2. Suivez les étapes fournies ici pour créer un module ACL.

  3. Allez à http://aem-host:port/crx/packmgr/index.jsp et connectez-vous en tant qu'administrateur.

  4. Cliquez sur le module ACL.

  5. Cliquez sur Modifier.

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

  7. Dans le menu déroulant Gestion de l’AC, sélectionnez Fusionner pour éviter de supprimer les ACL existantes sur le système de destination. Ceci est particulièrement important lors de la migration de listes ACL entre différentes versions d’AEM (car cela évite de supprimer les limites des listes ACL).

Si vous ne parvenez pas à installer des outils (ACS Commons) dans AEM, suivez ces étapes. Notez que l’ordinateur sur lequel vous exécutez ces commandes doit être Mac OS, Linux ou Windows (avec Cygwin) équipé de cURL, python et Java SDK.

  1. Allez sur http://src-aem-host:port/crx/packmgr/index.jsp et connectez-vous en tant qu'administrateur.

  2. Création d’un module nommé « ACL-migration »

  3. Cliquez sur le bouton Modifier.

  4. Sélectionnez l’onglet Avancé et définissez le mode Gestion du secteur sur Fusionner.

  5. Enregistrer.

  6. Générez le module et téléchargez-le.

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

    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 ACL sous /content de l’occurrence source (définissez le nom d’utilisateur, le mot de passe et l’hôte) :

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

     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\">")
     for item in data["results"]:
         print("<filter root=\"{path}\" />".format(path=item["path"]))
     print("</workspaceFilter>")
  10. Exécutez le script python à partir du dossier où data.json a été créé et enregistrez la sortie sur META-INF/vault/filter.xml (remplacez le contenu existant de filter.xml) :

     python generate-packge-filter.py > META-INF/vault/filter.xml
  11. Utilisez cette commande pour mettre à jour le fichier filter.xml dans le fichier zip :

     jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml
  12. Téléchargez le fichier zip dans le gestionnaire de module d’instance source : http://src-aem-host:port/crx/packmgr/index.jsp

  13. Cliquez sur Créer ou Reconstruire pour créer le module.

  14. Téléchargez le module depuis le serveur AEM source.

  15. Téléchargez le module dans le gestionnaire de package du serveur AEM de destination : http://dst-aem-host:port/crx/packmgr/index.jsp

  16. Cliquez sur Installer.

  17. Répétez les étapes 8 à 16 pour les autres chemins en changeant la commande. Par exemple, cela donnerait les ACL 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

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne