Lorsque le déploiement est une batterie de publication, les membres doivent pouvoir se connecter et voir leurs données sur n’importe quel noeud de publication.
Les utilisateurs et les groupes d’utilisateurs (données utilisateur) créés dans l’environnement de publication ne sont pas nécessaires dans l’environnement de création.
La plupart des données utilisateur créées dans l’environnement de création sont destinées à rester dans l’environnement de création et à ne pas être copiées vers les instances de publication.
L’enregistrement et les modifications effectués sur une instance de publication doivent être synchronisés avec d’autres instances de publication afin de pouvoir accéder aux mêmes données utilisateur.
Depuis AEM 6.1, lorsque la synchronisation des utilisateurs est activée, les données utilisateur sont automatiquement synchronisées sur les instances de publication dans la ferme et ne sont pas créées en mode de création.
Les données utilisateur, ainsi que leurs ACL, sont stockés dans la variable Oak Core, le calque situé sous Oak JCR et sont accessibles à l’aide de la variable API Oak. Avec des mises à jour peu fréquentes, il est raisonnable que les données utilisateur soient synchronisées avec d’autres instances de publication à l’aide de Distribution de contenu Sling (distribution Sling).
Les avantages de la synchronisation des utilisateurs à l’aide de la distribution Sling par rapport à la réplication traditionnelle sont les suivants :
Les utilisateurs, les profils d’utilisateur et les groupes d’utilisateurs créés à la publication ne sont pas créés en mode de création.
La distribution Sling définit des propriétés dans les événements JCR, permettant d’agir au niveau des écouteurs d’événements du côté publication sans se préoccuper des boucles de réplication infinies.
La distribution Sling envoie uniquement les données utilisateur à des instances de publication non originaires, ce qui élimine le trafic inutile.
ACL définis dans le noeud utilisateur sont inclus dans la synchronisation
Si des sessions sont requises, il est recommandé d’utiliser une solution SSO ou une session persistante et de demander aux clients de se connecter s’ils passent à un autre éditeur.
La synchronisation du groupe d’administrateurs n’est pas prise en charge, même si la synchronisation des utilisateurs est activée. À la place, un échec de l’importation de la comparaison est consigné dans le journal des erreurs.
Par conséquent, lorsqu’un déploiement est une ferme de publication, si un utilisateur est ajouté ou supprimé du *administrateurs , la modification doit être effectuée manuellement sur chaque instance de publication.
Par défaut, la synchronisation des utilisateurs est disabled.
Activer la synchronisation des utilisateurs implique de modifier les configurations OSGi existantes.
Aucune configuration nouvelle ne doit être ajoutée suite à l’activation de la synchronisation des utilisateurs.
La synchronisation des utilisateurs repose sur l’environnement de création pour gérer les distributions de données utilisateur, même si les données utilisateur ne sont pas créées en mode de création. Une grande partie, mais pas l’intégralité, de la configuration a lieu dans l’environnement de création et chaque étape identifie clairement si elle doit être effectuée en mode de création ou en mode de publication.
Vous trouverez ci-dessous les étapes nécessaires pour activer la synchronisation des utilisateurs, suivies d’une section Résolution des incidents :
Une fois la synchronisation des utilisateurs activée, seuls les utilisateurs et les groupes nouvellement créés sont synchronisés.
Activer la synchronisation des utilisateurs
en mode de création
connectez-vous avec des autorisations d’administrateur
accédez à la console Web
locate Apache Sling Distribution Agent - Sync Agents Factory
sélectionnez la configuration existante à ouvrir pour modification (icône crayon) Vérification name: socialpubsync
sélectionnez la variable Enabled checkbox
select Save

Configurez des autorisations Cet utilisateur autorisé sera utilisé à l’étape 3 pour configurer la distribution Sling en mode de création.
sur chaque instance de publication
connectez-vous avec des autorisations d’administrateur
accédez à la console de sécurité
créez un nouvel utilisateur
usersync-adminajoutez cet utilisateur au administrators groupe d’utilisateurs
ajoutez l’ACL de cet utilisateur à /home
Allow jcr:all avec restriction rep:glob=*/activities/*Un nouvel utilisateur doit être créé.
admin.communities-user-admin user.accédez à CRXDE Lite
select /home node
dans le volet de droite, sélectionnez la variable Access Control tab
sélectionnez la variable + pour ajouter une entrée ACL
Allowjcr:all*/activities/*sélectionnez Enregistrer tout

Voir également
Configurer les autorisations
Une fois un utilisateur autorisé, un membre de la administratorsgroupe d’utilisateurs, a été créé sur toutes les instances de publication. Cet utilisateur autorisé doit être identifié sur l’auteur comme ayant l’autorisation de synchroniser les données utilisateur de l’auteur à la publication.
en mode de création
connectez-vous avec des autorisations d’administrateur
accédez à la console Web
locate com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name
sélectionnez la configuration existante à ouvrir pour modification (icône crayon) Vérification property name: socialpubsync-publishUser
définissez le nom d’utilisateur et le mot de passe de l’utilisateur autorisé créé en mode de publication à l’étape 2
usersync-admin
Activer la synchronisation des utilisateurs
en mode de publication :
connectez-vous avec des autorisations d’administrateur
accédez à la console Web
locate Apache Sling Distribution Agent - Queue Agents Factory
sélectionnez la configuration existante à ouvrir pour modification (icône crayon) Vérification Name: socialpubsync-reverse
sélectionnez la variable Enabled checkbox
select Save
répétition pour chaque instance de publication

Activez la synchronisation des groupes
sur chaque instance de publication:
connectez-vous avec des autorisations d’administrateur
accédez à la console Web
locate Adobe Social Sync - Diff Observer Factory
sélectionnez la configuration existante à ouvrir pour modification (icône de crayon)
Vérifier agent name: socialpubsync-reverse
sélectionnez la variable Enabled checkbox
select Save

(Facultatif) modifiez l’intervalle d’interrogation
Par défaut, l’auteur interroge les modifications toutes les 30 secondes. Pour modifier cet intervalle :
en mode de création
connectez-vous avec des autorisations d’administrateur
accédez à la console Web
locate Apache Sling Distribution Trigger - Scheduled Triggers Factory
sélectionnez la configuration existante à ouvrir pour modification (icône de crayon)
Name: socialpubsync-scheduled-triggerdéfinissez la variable Interval in Seconds à l’intervalle souhaité.
select Save

La configuration par défaut couvre une instance de publication unique. Puisque l’objectif de l’activation de la synchronisation des utilisateurs est de synchroniser plusieurs instances de publication (par exemple, pour une ferme de publication), les instances de publication supplémentaires doivent être ajoutées à la fabrique d’agents de synchronisation.
Ajoutez des instances de publication :
en mode de création
connectez-vous avec des autorisations d’administrateur
accédez à la console Web
locate Apache Sling Distribution Agent - Sync Agents Factory
Name: socialpubsync
Points de terminaison de l’exportateur Il doit exister un point de terminaison de l’exportateur pour chaque éditeur. Par exemple, s’il existe 2 éditeurs, localhost:4503 et 4504, il doit y avoir 2 entrées :
https://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reversehttps://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reversePoints de terminaison de l’importateur
Chaque éditeur doit disposer d’un point de terminaison d’importateur. Par exemple, s’il existe 2 éditeurs, localhost:4503 et 4504, il doit y avoir 2 entrées :
https://localhost:4503/libs/sling/distribution/services/importers/socialpubsynchttps://localhost:4504/libs/sling/distribution/services/importers/socialpubsyncselect Save
(Facultatif) Synchroniser les nœuds JCR supplémentaires
S’il existe des données personnalisées à synchroniser sur plusieurs instances de publication, alors :
sur chaque instance de publication:
connectez-vous avec des autorisations d’administrateur
accédez à la console Web
https://localhost:4503/system/console/configMgrlocate AEM Communities User Sync Listener
sélectionnez la configuration existante à ouvrir pour modification (icône crayon) Vérification Name: socialpubsync-scheduled-trigger

Types de nœuds Il s’agit de la liste des types de nœuds qui vont être synchronisés. Tout type de nœud autre que sling:Folder doit être répertorié ici (sling:folder est traité séparément).
Liste par défaut des types de nœuds à synchroniser :
Propriétés à ignorer Il s’agit de la liste des propriétés qui seront ignorées si une modification est détectée. Les modifications apportées à ces propriétés peuvent être synchronisées comme effet secondaire d’autres modifications (la synchronisation ayant toujours lieu au niveau du nœud), mais les modifications apportées à ces propriétés ne déclenchent pas en elles-mêmes de synchronisation.
Propriété par défaut à ignorer :
Nœuds à ignorer Sous-chemins d’accès allant être entièrement ignorés pendant la synchronisation. Aucun élément figurant dans ces sous-chemins d’accès ne sera synchronisé à un moment donné.
Nœuds par défaut à ignorer :
Dossiers distribués La plupart des nœuds sling:Folders sont ignorés, car la synchronisation n’est pas nécessaire. Les quelques exceptions sont répertoriées ici.
Dossiers par défaut à synchroniser
Si l’identifiant Sling correspond entre deux instances de publication ou plus, la synchronisation de groupe d’utilisateurs échoue.
Si l’identifiant Sling est identique pour plusieurs instances de modification dans une ferme de publication, les groupes d’utilisateurs ne sont pas synchronisés.
Pour vérifier que toutes les valeurs d’identifiant Sling diffèrent, sur chaque instance de publication :
http://<host>:<port>/system/console/status-slingsettings
Si l’identifiant Sling d’une instance de publication correspond à l’identifiant Sling d’une autre instance de publication, alors :
arrêtez l’une des instances de publication qui possède un identifiant Sling correspondant
dans le répertoire crx-quickstart/launchpad/felix
recherchez et supprimez le fichier nommé sling.id.file
par exemple, sur un système Linux :
rm -i $(find . -type f -name sling.id.file)
par exemple, sur un système Windows :
use windows explorer and search for *sling.id.file*
Démarrez l’instance de publication
vérifiez que l’identifiant Sling est à présent unique
Répétez ces étapes jusqu’à ce que toutes les instances de publication aient un identifiant Sling unique.
Pour que les mises à jour soient correctement synchronisées, il est nécessaire de modifier le générateur de module vault en vue de la synchronisation des utilisateurs :
pour chaque instance de publication AEM
accédez à la console Web
localisez la Apache Sling Distribution Packaging - Vault Package Builder Factory
Builder name: socialpubsync-vltsélectionnez l’icône de modification
ajouter deux Package Node Filters:
/home/users|-.*/.tokens/home/users|-.*/rep:cachegestion des stratégies :
pour remplacer les nœuds rep:policy existants par de nouveaux nœuds, ajoutez un troisième filtre de module :
/home/users|+.*/rep:policypour empêcher la distribution des stratégies, définissez
Acl Handling: IGNORE
Par défaut, les utilisateurs et les profils créés dans l’environnement de publication (inscription automatique) n’apparaissent pas dans l’environnement de création.
Lorsque la topologie est une batterie de publication et la synchronisation des utilisateurs a été correctement configurée, *user *et profil utilisateur est synchronisé dans la ferme de publication à l’aide de la distribution Sling.
Par défaut, les données utilisateur créées dans l’environnement de publication ne sont pas visibles dans l’environnement de création, et vice versa.
Lorsque la console Administration et sécurité des utilisateurs est utilisée pour ajouter de nouveaux utilisateurs dans l’environnement de publication, la synchronisation des utilisateurs synchronise les nouveaux utilisateurs et leur appartenance à un groupe sur d’autres instances de publication, si nécessaire. La synchronisation des utilisateurs synchronise également les groupes d’utilisateurs créés via la console de sécurité.
Pour que la synchronisation des utilisateurs puisse être mise hors ligne, afin de supprimer un éditeur ou de synchroniser manuellement les données, la file d’attente de distribution doit être vide et inactive.
Pour vérifier l’état de la file d’attente de distribution :
en mode de création:
using CRXDE Lite
rechercher des entrées dans /var/sling/distribution/packages
distrpackage_*à l’aide du gestionnaire de modules
recherchez les modules en attente (pas encore installés)
socialpubsync-vlt*communities-user-adminLorsque la file d’attente de distribution est vide, désactivez la synchronisation des utilisateurs :
en mode de création
Enabled case à cocher pour Agent de distribution Apache Sling - Fabrique d’agents de synchronisationUne fois les tâches accomplies, pour réactiver la synchronisation des utilisateurs :
en mode de création
Enabled case à cocher pour Agent de distribution Apache Sling - Fabrique d’agents de synchronisationL’outil Diagnostics de synchronisation des utilisateurs est un outil qui vérifie la configuration et tente d’identifier les éventuels problèmes.
Sur l’instance de création, il vous suffit de naviguer dans la console principale Outils, Opérations, Diagnostics, Diagnostics de synchronisation des utilisateurs.
Entrer simplement dans la console Diagnostics de synchronisation des utilisateurs a pour effet d’afficher les résultats.
Voici ce qui s’affiche lorsque la synchronisation des utilisateurs n’a pas été activée :

Lorsque le diagnostic est exécuté à partir de l’environnement de création, les résultats de réussite/échec incluent une [INFO] qui affiche la liste des instances de publication configurées pour confirmation.
La liste comprend une URL de chaque instance de publication allant exécuter les diagnostics de cette instance. Paramètre d’URL syncUser est ajouté à l’URL de diagnostic avec sa valeur définie sur la valeur utilisateur de synchronisation autorisé créé dans Étape 2.
Remarque : Avant le lancement de l’URL, l’utilisateur de synchronisation autorisé doit déjà être connecté à cette instance de publication.

Lorsque la synchronisation des utilisateurs ne fonctionne pas, le problème le plus courant est que des configurations supplémentaires ont été ajoutées. À la place, la configuration existante par défaut aurait dû être modifié.
Voici comment les configurations par défaut modifiées doivent apparaître dans la console Web. Si plusieurs instances apparaissent, la configuration supplémentaire doit être supprimée.





Si les éléments suivants sont visibles dans le journal :
org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing.
java.lang.IllegalStateException: This tree does not exist
Vérifiez ensuite que la section 2. Créer un utilisateur autorisé a été correctement suivie.
Cette section décrit la création d’un utilisateur autorisé, qui existe sur toutes les instances de publication, et son identification dans la configuration OSGi « Fournisseur secret » en mode de création. Par défaut, l’utilisateur est admin.
L’utilisateur autorisé doit être fait membre de la variable administrators Le groupe d’utilisateurs et les autorisations de ce groupe ne doivent pas être modifiés.
L’utilisateur autorisé doit avoir explicitement les autorisations et la restriction suivante sur les instances de publication :
| path | jcr:all | rep:glob |
|---|---|---|
| /home | X | */activities/* |
| /home/users | X | */activities/* |
| /home/groups | X | */activities/* |
En tant que membre de la fonction administrators , l’utilisateur autorisé doit disposer des privilèges suivants sur toutes les instances de publication :
| path | jcr:all | jcr:read | rep:write |
|---|---|---|---|
| /etc/packages/sling/distribution | X | ||
| /libs/sling/distribution | X | ||
| /var | X | ||
| /var/eventing | X | X | |
| /var/sling/distribution | X | X |
Si l’identifiant Sling correspond entre deux instances de publication ou plus, la synchronisation de groupe d’utilisateurs échoue.
Voir la section 9. Identifiant Sling unique.
sur l’éditeur sur lequel les utilisateurs et les groupes d’utilisateurs existent :
si elle est activée, désactivez la synchronisation des utilisateurs
créez un module de /home
lors de la modification du module
/homeOverwritesur d’autres instances de publication :
Pour configurer ou activer la synchronisation des utilisateurs, passez à l’étape 1 : Agent de distribution Apache Sling - Fabrique d’agents de synchronisation
Lorsqu’une instance de publication n’est plus disponible, elle ne doit pas être supprimée si elle doit être de nouveau en ligne à l’avenir. Les modifications sont mises en file d’attente pour l’éditeur et, une fois l’instance de nouveau en ligne, elles sont traitées.
Si l’instance de publication ne sera jamais de nouveau en ligne, si elle est hors ligne de manière permanente, elle doit être supprimée, car l’accumulation de files d’attente entraînera une utilisation notable de l’espace disque dans l’environnement de création.
Lorsqu’un éditeur est en panne, le journal de création comporte des exceptions similaires à :
28.01.2016 15:57:48.475 ERROR
[pool-12-thread-34-org_apache_sling_distribution_queue_socialpubsync_endpoint1
(org/apache/sling/distribution/queue/socialpubsync/endpoint1)]
org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync] could not deliver package distrpackage_1454014575838_a2b45ec8-0400-42f3-bed8-ae09b66381cb
org.apache.sling.distribution.packaging.DistributionPackageImportException: failed in importing package ...
Pour supprimer un éditeur de l’Agent de distribution Apache Sling - Fabrique d’agents de synchronisation, la file d’attente de distribution doit être vide et silencieuse.
en mode de création:
suivez l’étape 7 pour supprimer l’éditeur des deux listes de serveur :
Exporter EndpointsImporter Endpointsréactivez la synchronisation des utilisateurs
Enabled case à cocher pour Agent de distribution Apache Sling - Fabrique d’agents de synchronisation