Aller au contenu principal

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

  1. Dans Process Studio, menu Synchronisation des ressourcesLDAP
  2. Cliquer sur Nouveau filtre
  3. 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
  1. Prévisualiser : Tester le filtre et voir les résultats
  2. 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

  1. Menu Synchronisation des ressourcesCSV
  2. Cliquer sur Nouveau filtre
  3. 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
  1. Valider

Processus de synchronisation

SynchronizationProcess

Le processus de synchronisation suit ces étapes :

  1. Lecture de la source : Récupération des données (AD, Azure AD ou CSV)
  2. Comparaison : Confrontation avec les ressources existantes
  3. Détection des changements :
    • Nouvelles ressources
    • Ressources modifiées
    • Ressources supprimées
    • Ressources inchangées
  4. Application des changements : Mise à jour de la base Directory
  5. 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

  1. Dans Process Studio, OrganisationLDAP
  2. Sélectionner le filtre configuré
  3. Cocher les utilisateurs à importer
  4. Options :
    • Ouvrir les fiches après import : Pour vérifier/compléter
  5. Cliquer sur Démarrer l'import
  6. Les fiches sont créées dans l'organisation

Import CSV manuel

  1. OrganisationCSV
  2. Sélectionner le filtre ou en créer un
  3. Configurer :
    • Séparateur
    • Correspondances
    • Type de ressource
  4. Démarrer l'import
  5. 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ètresAgents :

  1. Créer un nouvel agent de type Synchronisation
  2. 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
  3. 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

Références