LDAPGoSync est une solution puissante pour la synchronisation bidirectionnelle entre LDAP/Active Directory et d'autres services tels que Google Workspace, Microsoft Azure, Salesforce, et des CRM populaires comme HubSpot ou Zoho.
💡 Ce connecteur centralisé aide à gérer les utilisateurs et les groupes, synchroniser les données entre systèmes, et maintenir des intégrations sécurisées et performantes.
-
Synchronisation Bidirectionnelle Avancée :
- Synchronisez efficacement les utilisateurs entre LDAP et des systèmes tiers.
- Algorithme utilisé : Implémente un algorithme de fusion bidirectionnelle (Two-Way Merge) pour comparer et résoudre les conflits basés sur des horodatages.
- Gestion des conflits : Utilise les CRDTs (Conflict-Free Replicated Data Types) pour assurer une synchronisation cohérente dans les environnements distribués.
-
Support Multi-Systèmes :
- Intégrez LDAP à des CRM comme HubSpot, Zoho, Salesforce, ou des systèmes personnalisés via des APIs RESTful.
- Optimisation : Exploite GraphQL pour des requêtes performantes dans des bases de données complexes.
-
Interface Intuitive :
- Interface moderne avec une gestion simplifiée des configurations.
- Visualisez l'état des connexions et des synchronisations en temps réel.
-
Graphiques Dynamiques :
- Représentez visuellement les relations entre les utilisateurs, les groupes et les systèmes connectés via des graphes interactifs.
- Technologies utilisées : Basé sur D3.js ou Cytoscape.js pour les graphes.
- Algorithmes de traversal : Utilise DFS (Depth-First Search) et BFS (Breadth-First Search) pour explorer et représenter la hiérarchie LDAP.
-
Logs et Monitoring :
- Suivez les performances et erreurs en temps réel grâce à un système avancé de journaux.
- Analyse avancée : Intégration avec ELK Stack (Elasticsearch, Logstash, Kibana) pour l'analyse centralisée.
- Implémente un système de détection des anomalies basé sur des modèles de machine learning pour signaler des comportements inattendus.
-
Notifications Automatiques :
- Configurez des alertes via email, Slack ou d'autres systèmes.
- Mécanisme utilisé : Système de notification basé sur des Webhooks pour une intégration facile avec des outils tiers.
- Go 1.20+
- Docker (optionnel, pour exécuter un serveur LDAP de test)
- OpenLDAP (nécessaire pour tester la connectivité avec LDAP)
- Clonez le repository :
git clone https://github.com/datamixio/LDAPGoSync.git
cd LDAPGoSync
Installez les dépendances :
go mod tidy
Configurez votre fichier .env (voir Configuration).
Lancez l'application :
go run main.go
Testez la connectivité LDAP avec l'API (voir API Endpoints).
Toutes les configurations sont gérées via un fichier .env. Voici les principaux paramètres configurables :
Variable | Description | Valeur par défaut |
---|---|---|
LDAP_HOST |
IP ou nom d'hôte du serveur LDAP | 172.17.78.? |
LDAP_PORT |
Port du serveur LDAP | 389 ou 636 |
LDAP_BIND_DN |
LDAP Bind DN | cn=admin,dc=example,dc=com |
LDAP_PASSWORD |
Mot de passe pour le Bind DN | **** |
LDAP_BASE_DN |
Base DN pour les requêtes LDAP | dc=example,dc=com |
API_ADDRESS |
Adresse du serveur API REST | localhost |
API_PORT |
Port pour l'API REST | 8080 |
USE_TLS |
Activer TLS pour LDAP | true |
CERT_FILE |
Chemin vers le fichier certificat TLS | /etc/ldap/certs/server.crt |
KEY_FILE |
Chemin vers le fichier clé TLS | /etc/ldap/certs/server.key |
CA_FILE |
Chemin vers le fichier CA | /etc/ldap/certs/ca.crt |
POST /api/test-ldap
Testez la connexion avec votre serveur LDAP.
Exemple de Requête :
{
"url": "ldaps://172.17.78.?:636",
"bindDN": "cn=admin,dc=example,dc=com",
"password": "your_password",
"saveConfig": true
}
Exemple de Réponse :
{
"connectionSuccess": true,
"configUpdated": true,
"message": "LDAP connection successful"
}
POST /api/mapping
Mappez les utilisateurs dans LDAP en fonction d'un filtre.
Exemple de Requête :
{
"baseDN": "dc=example,dc=com",
"userFilter": "(objectClass=person)",
"usernameAttribute": "uid"
}
Exemple de Réponse :
{
"contacts": [
{
"dn": "uid=johndoe,dc=example,dc=com",
"uid": "johndoe",
"cn": "John Doe",
"mail": "[email protected]"
}
],
"message": "Mapping successful",
"currentStep": 2
}
POST /api/test-auth Testez l'authentification d'un utilisateur dans LDAP.
Exemple de Requête :
{
"baseDN": "dc=example,dc=com",
"usernameAttribute": "uid",
"username": "johndoe",
"password": "user_password"
}
Exemple de Réponse :
{
"success": true,
"message": "Authentication successful"
}
Démarrez un serveur LDAP local via Docker
docker-compose up
Chargez des données de test
ldapadd -x -D "cn=admin,dc=example,dc=com" -w admin -f user.ldif
Lancez les tests unitaires
go test ./...
-
Les prochaines versions incluront :
-
**Synchronisation intelligente basée sur des événements.
-
**Détection d'anomalies via des modèles IA.
-
**Gestion avancée des rôles et permissions.
Ce projet est sous licence MIT. Consultez le fichier LICENSE
pour plus de détails.