Synchronisation des ressources
Synchronisation automatique des ressources depuis Active Directory, Azure AD ou fichiers CSV.
Vue d'ensemble
La synchronisation des ressources permet d'importer et maintenir à jour automatiquement les utilisateurs depuis des sources externes :
- Active Directory (via LDAP)
- Azure Active Directory (via Microsoft Graph API)
- Fichiers CSV
Cette synchronisation peut être manuelle (via Process Studio) ou automatique (via agent planifié).
Types de synchronisation
Synchronisation LDAP/Active Directory
Importe les utilisateurs depuis un Active Directory d'entreprise via le protocole LDAP.
Avantages :
- Synchronisation en temps réel avec l'annuaire d'entreprise
- Récupération automatique des attributs (email, fonction, etc.)
- Gestion des groupes et services
Prérequis :
- Accès au serveur Active Directory
- Compte de service avec droits de lecture
- Configuration réseau appropriée
Synchronisation Azure AD
Importe les utilisateurs depuis Azure Active Directory via Microsoft Graph API.
Avantages :
- Idéal pour environnements cloud
- Authentification moderne (OAuth 2.0)
- Support des attributs Office 365
Prérequis :
- Tenant Azure AD
- Application enregistrée avec permissions Graph API
- Client ID et Client Secret
Import CSV
Importe les utilisateurs depuis un fichier CSV.
Avantages :
- Simple à mettre en œuvre
- Adapté aux petites structures
- Compatible avec exports Excel
Prérequis :
- Fichier CSV avec structure définie
- Correspondance des colonnes
Configuration des filtres
Filtre LDAP
Un filtre LDAP définit quelles ressources importer depuis l'Active Directory.
Création d'un filtre LDAP
- Dans Process Studio, menu Synchronisation des ressources → LDAP
- Cliquer sur Nouveau filtre
- Renseigner les paramètres :
Nom du filtre : Nom explicite pour identifier le filtre
Chemin LDAP : Serveur LDAP à interroger
- Laisser vide pour utiliser le serveur par défaut
- Format :
LDAP://serveur.domaine.com
Authentification :
- Connexion anonyme : Si le serveur l'autorise
- Login/Mot de passe : Compte de service AD
Valeur du filtre : Requête LDAP pour filtrer les ressources
Exemples de filtres :
# Tous les utilisateurs actifs
(&(objectclass=user)(useraccountcontrol=512))
# Utilisateurs d'un OU spécifique
(&(objectclass=user)(memberof=CN=Groupe,OU=Services,DC=domain,DC=com))
# Utilisateurs avec email
(&(objectclass=user)(mail=*))
Type de ressource : user, group, service, etc.
Correspondance des champs :
- Nom court : Attribut LDAP pour le DN (ex:
sAMAccountName) - Nom complet : Attribut LDAP pour le CN (ex:
displayName) - Attributs additionnels : Mapping vers attributs personnalisés
Exemple de correspondances :
sAMAccountName → Nom court (DN)
displayName → Nom complet (CN)
mail → Email
title → Fonction
telephoneNumber → Téléphone
- Prévisualiser : Tester le filtre et voir les résultats
- Valider : Enregistrer le filtre
Filtre Azure AD
Similaire au filtre LDAP mais avec authentification OAuth.
Paramètres spécifiques :
- Tenant ID : Identifiant du tenant Azure
- Client ID : ID de l'application enregistrée
- Client Secret : Secret de l'application
- Filtre : Requête Microsoft Graph
Exemple de filtre Graph :
accountEnabled eq true and userType eq 'Member'
Filtre CSV
Définit comment lire un fichier CSV.
Création d'un filtre CSV
- Menu Synchronisation des ressources → CSV
- Cliquer sur Nouveau filtre
- Paramètres :
Nom du filtre : Nom du filtre
Chemin source : Emplacement du fichier CSV
- Ex:
C:\Import\users.csv - Peut être un partage réseau :
\\serveur\partage\users.csv
Chemin d'archive : Où archiver les fichiers traités
- Les fichiers sont déplacés après traitement
- Permet de tracer les imports
Séparateur : Caractère de séparation
;(point-virgule) : Standard français,(virgule) : Standard international\t(tabulation)
Correspondance : Mapping colonnes CSV → Attributs APS
Format du fichier CSV :
login;nom;prenom;email;fonction;service
jdoe;Doe;John;john.doe@company.com;Développeur;IT
msmith;Smith;Marie;marie.smith@company.com;Manager;RH
Correspondances :
login → Nom court (DN)
nom + prenom → Nom complet (CN)
email → Email
fonction → Fonction
service → Service
- Valider
Processus de synchronisation
SynchronizationProcess
Le processus de synchronisation suit ces étapes :
- Lecture de la source : Récupération des données (AD, Azure AD ou CSV)
- Comparaison : Confrontation avec les ressources existantes
- Détection des changements :
- Nouvelles ressources
- Ressources modifiées
- Ressources supprimées
- Ressources inchangées
- Application des changements : Mise à jour de la base Directory
- Rapport : Génération du rapport de synchronisation
Collections de ressources
public class SynchronizationProcess
{
public GenericCollection<SynchroResource> AddedResources { get; }
public GenericCollection<SynchroResource> ModifiedResources { get; }
public GenericCollection<SynchroResource> DeletedResources { get; }
public GenericCollection<SynchroResource> UnchangedResources { get; }
}
Actions sur les ressources supprimées
Pour les ressources présentes dans APS mais absentes de la source :
Options configurables :
- Ne rien faire : Laisser la ressource
- Notifier : Envoyer une alerte
- Marquer : Ajouter un attribut
SYNCHRO_TODELETE_STAMP - Supprimer : Supprimer définitivement
Configuration dans les paramètres de synchronisation :
public class SynchronizationParameters
{
public bool RemoveDoNotify { get; set; }
public bool RemoveDoStamp { get; set; }
public bool RemoveDoRemove { get; set; }
}
Import manuel
Import LDAP manuel
- Dans Process Studio, Organisation → LDAP
- Sélectionner le filtre configuré
- Cocher les utilisateurs à importer
- Options :
- Ouvrir les fiches après import : Pour vérifier/compléter
- Cliquer sur Démarrer l'import
- Les fiches sont créées dans l'organisation
Import CSV manuel
- Organisation → CSV
- Sélectionner le filtre ou en créer un
- Configurer :
- Séparateur
- Correspondances
- Type de ressource
- Démarrer l'import
- Vérifier les fiches créées
Agent de synchronisation
SynchronizationAgent
L'agent de synchronisation permet d'automatiser les imports.
[AgentDesignerAttribute(
"Avanteam.Application.Agents.Directory.UI",
"Avanteam.Application.Agents.Directory.UI.SynchronizationPanel"
)]
public class SynchronizationAgent : AgentBase
{
protected override void Execute()
{
// Récupération du filtre
// Lancement de la synchronisation
// Envoi du rapport par email
}
}
Configuration de l'agent
Dans Process Studio, Paramètres → Agents :
- Créer un nouvel agent de type Synchronisation
- Configurer :
- Filtre : Filtre LDAP/Azure AD/CSV à utiliser
- Planification : Fréquence d'exécution
- Email : Destinataires du rapport
- Actions sur suppression : Que faire des ressources supprimées
- Activer l'agent
Planification
Exemples de planification :
- Quotidienne : Tous les jours à 6h du matin
- Hebdomadaire : Tous les lundis
- Mensuelle : Le 1er de chaque mois
Rapport de synchronisation
Contenu du rapport
Le rapport contient :
- Nombre de ressources ajoutées
- Nombre de ressources modifiées
- Nombre de ressources supprimées
- Nombre de ressources inchangées
- Liste détaillée des erreurs
- Durée de l'opération
Format du rapport
Le rapport est envoyé par email au format HTML avec :
- Résumé en haut
- Tableau des ajouts
- Tableau des modifications
- Tableau des suppressions
- Détail des erreurs
Exemple de log
Synchronization started at 2025-12-08 06:00:00
Filter: Users_ActiveDirectory
Source: LDAP://dc.company.com
Results:
- Added: 5
- Deleted: 2
- Updated: 12
- Unchanged: 243
Duration: 00:02:15
Status: Success
Gestion des attributs
Mapping d'attributs
Configuration du mapping source → APS :
LDAP :
sAMAccountName → dn_name (login)
displayName → cn_name (nom affiché)
mail → attribut 'mail'
title → attribut 'function'
telephoneNumber → attribut 'telephone'
mobile → attribut 'mobile'
department → attribut 'service'
manager → relation 'manager_of'
Azure AD :
userPrincipalName → dn_name
displayName → cn_name
mail → attribut 'mail'
jobTitle → attribut 'function'
mobilePhone → attribut 'mobile'
department → attribut 'service'
Actions sur les attributs
public enum AttributeAction
{
Ignore, // Ne pas importer
Create, // Créer si absent
Update, // Mettre à jour si différent
Replace // Toujours remplacer
}
Configuration par attribut dans les paramètres.
Gestion des conflits
DN existant
Si un utilisateur existe déjà avec le même DN :
- La ressource est considérée comme existante
- Comparaison des attributs
- Mise à jour si différences
CN différent
Si le CN a changé dans la source :
- Mise à jour automatique du CN
- Marquage comme "modifié"
Erreurs de validation
En cas d'erreur :
- La ressource est ignorée
- Ajout à la liste des erreurs
- Continuation de la synchronisation
- Rapport détaillé dans l'email
Synchronisation incrémentale vs complète
Incrémentale
- Traite uniquement les changements
- Plus rapide
- Recommandée pour synchronisations fréquentes
- Détecte ajouts, modifications, suppressions
Complète
- Traite toutes les ressources
- Plus lente
- Recommandée pour audit/vérification
- Garantit cohérence totale
Bonnes pratiques
Filtres LDAP
- Tester les filtres sur un petit échantillon d'abord
- Exclure les comptes systèmes et désactivés
- Documenter les filtres complexes
- Prévoir un filtre par type d'utilisateur
Planification
- Synchroniser en heures creuses (nuit/weekend)
- Éviter les heures de pointe
- Espacer les synchronisations (1x/jour suffit généralement)
- Monitorer les rapports régulièrement
Sécurité
- Utiliser un compte de service dédié pour LDAP
- Stocker les credentials de façon sécurisée
- Limiter les permissions au strict nécessaire
- Auditer les synchronisations
Performance
- Limiter le nombre de ressources par synchronisation
- Utiliser des filtres efficaces
- Monitorer les temps d'exécution
- Optimiser les requêtes LDAP
Dépannage
Erreurs courantes
"Unable to connect to LDAP server" :
- Vérifier connectivité réseau
- Vérifier firewall
- Vérifier nom du serveur
"Authentication failed" :
- Vérifier login/mot de passe
- Vérifier permissions du compte
- Tester en connexion anonyme si possible
"No resources found" :
- Vérifier syntaxe du filtre LDAP
- Vérifier le chemin de recherche
- Tester le filtre avec un outil LDAP
Logs
Consulter les logs de l'agent :
- Localisation :
Logs/Agents/SynchronizationAgent/ - Format : Un fichier par exécution
- Niveau : Info, Warning, Error