Skip to content

enzoforreal/ldap-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LDAPGoSync

Go Version
License: MIT
Build Status


Table of Contents

  1. Overview
  2. Features
  3. Requirements
  4. Installation
  5. Configuration
  6. API Endpoints
  7. Testing
  8. Roadmap
  9. License

Overview

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.

LDAP Form

Features

🔑 Key Features

  • 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.

Requirements

  • Go 1.20+
  • Docker (optionnel, pour exécuter un serveur LDAP de test)
  • OpenLDAP (nécessaire pour tester la connectivité avec LDAP)

Installation

🛠️ Étapes d'installation

  1. 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).

Configuration

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

API Endpoints

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"
}

Testing

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 ./...

Roadmap

  • 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.

License

Ce projet est sous licence MIT. Consultez le fichier LICENSE pour plus de détails.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published