Passer au contenu principal
L’authentification LDAP (Lightweight Directory Access Protocol) permet aux utilisateurs de se connecter à Paradigm avec leurs identifiants d’annuaire d’entreprise. Contrairement à SAML et OIDC, Paradigm se connecte directement à votre serveur LDAP pour vérifier les identifiants.

Étape 1 : Activer LDAP au niveau de l’instance

Allez dans Administration Paradigm > Paramètres > Valeurs des clés de configuration et définissez :
  • IS_LDAP_ON : True
L’application doit être redémarrée après l’activation de LDAP. L’authentification ne fonctionnera pas avant la fin du redémarrage.

Étape 2 : Configurer LDAP pour une entreprise

Allez dans Administration Paradigm > Authentification > Applications Sociales et cliquez sur Ajouter.

Informations de base

  • Fournisseur : ldap
  • Nom : Un nom descriptif pour l’admin (ex : Acme Corp LDAP)
  • Entreprise : Sélectionnez l’entreprise à laquelle s’applique cette configuration

Configuration de l’URL de connexion

Choisissez l’une des options suivantes, ou configurez les deux pour plus de redondance : Option A — Domaine personnalisé
  • Domaine personnalisé : login.votreentreprise.com
  • URL de connexion : https://login.votreentreprise.com/login
  • Variable d’environnement requise :
La variable d’environnement DOMAIN doit être définie pour la construction des URL d’authentification LDAP :
# En production (à définir dans .env ou la config de déploiement)
DOMAIN=login.votreentreprise.com

# En développement local (valeur par défaut)
DOMAIN=localhost:8000
Option B — Identifiant client (fallback)
  • ID Client : Un identifiant en minuscules sans espaces (ex : votreentreprise)
  • URL de connexion : https://<domaine_paradigm>/login/ldap/votreentreprise
  • Aucune configuration DNS requise

Paramètres LDAP

Dans le champ Paramètres, saisissez un objet JSON avec la configuration de votre serveur LDAP :
{
  "server_uri": "ldaps://ldap.entreprise.com:636",
  "bind_dn": "CN=ldap-service,OU=ComptesDeSvc,DC=entreprise,DC=com",
  "bind_password": "votre-mot-de-passe-securise",
  "user_search_base": "OU=Utilisateurs,DC=entreprise,DC=com",
  "user_search_filter": "(mail=%(user)s)",
  "attr_email": "mail",
  "attr_first_name": "givenName",
  "attr_last_name": "sn",
  "use_tls": true,
  "connection_timeout": 5
}
ChampDescription
server_uriURL du serveur LDAP. Utilisez ldaps:// (port 636) pour les connexions chiffrées.
bind_dnNom distinctif (DN) du compte de service utilisé pour interroger l’annuaire.
bind_passwordMot de passe du compte de service.
user_search_baseDN de base où se trouvent les comptes utilisateurs.
user_search_filterFiltre pour trouver les utilisateurs. %(user)s est remplacé par le nom d’utilisateur saisi à la connexion.
attr_emailAttribut LDAP contenant l’adresse e-mail de l’utilisateur.
attr_first_nameAttribut LDAP pour le prénom de l’utilisateur.
attr_last_nameAttribut LDAP pour le nom de famille de l’utilisateur.
use_tlsIndique si TLS doit être utilisé. Recommandé : true.
connection_timeoutDélai de connexion en secondes.

Étape 3 : Mettre à jour la méthode de connexion de l’entreprise

Administration Django → Authentification → Entreprises → Sélectionner l’entreprise
  • Définissez la Méthode de connexion sur :
    • LDAP (LDAP uniquement)

Étape 4 : Vérifier la configuration CNAME (pour les domaines personnalisés)

Après avoir configuré le DNS :
  1. Attendez 5 à 30 minutes pour la propagation DNS
  2. Dans l’administration Django → Applications Sociales → Ouvrez l’Application Sociale
  3. Consultez les diagnostics détaillés :
    • Faites défiler jusqu’à la section “Résultats du test CNAME”
    • Consultez les vérifications DNS, HTTP et middleware détaillées
  4. Test en masse : Sélectionnez plusieurs applications → Actions → “Tester la configuration CNAME”

Configuration DNS

Si vous avez choisi l’option domaine personnalisé, votre client doit créer un enregistrement DNS CNAME pointant son sous-domaine de connexion vers le domaine applicatif Paradigm :
login.votreentreprise.com  →  CNAME  →  app.<domaine_paradigm>
La propagation DNS peut prendre jusqu’à 48 heures. Les utilisateurs ne pourront pas se connecter via le domaine personnalisé tant que la propagation n’est pas terminée.

Recommandations de sécurité

  • Utilisez un compte de service dédié en lecture seule pour les requêtes LDAP. N’utilisez pas un compte administrateur.
  • Utilisez toujours LDAPS (ldaps://, port 636) plutôt que LDAP non chiffré (port 389) pour protéger les identifiants en transit.
  • Assurez-vous que TLS/SSL est activé ("use_tls": true).

Tester la configuration LDAP

1. Tester la détection de l’entreprise

# Test avec domaine personnalisé
curl -H "Host: login.votreentreprise.com" https://app.paradigm.com/api/v3/auth/check-company

# Test avec le fallback client_id (depuis le chemin URL)
curl https://app.paradigm.com/api/v3/auth/check-company
Réponse attendue :
{
  "company": {
    "id": 123,
    "name": "Votre Entreprise"
  },
  "auth_method": "ldap",
  "custom_domain": "login.votreentreprise.com",
  "slug": "votreentreprise"
}

2. Tester la connexion LDAP

Utilisez la commande ldapsearch pour vérifier la connectivité :
ldapsearch -H ldaps://ldap.entreprise.com:636 \
  -D "CN=service,DC=entreprise,DC=com" \
  -w "motdepasse" \
  -b "OU=utilisateurs,DC=entreprise,DC=com" \
  "(mail=utilisateur@entreprise.com)"
Vérifiez :
  • La connexion réussit
  • L’utilisateur est trouvé
  • Les attributs (mail, givenName, sn) sont retournés

3. Tester le flux de connexion

  1. Accédez à l’URL de connexion (domaine personnalisé ou slug)
  2. Saisissez le nom d’utilisateur/e-mail LDAP
  3. Saisissez le mot de passe LDAP
  4. Vérifiez que :
    • L’utilisateur est authentifié
    • L’utilisateur est auto-provisionné (s’il est nouveau)
    • L’utilisateur arrive sur l’interface de chat ou l’acceptation de politique

4. Vérifier les journaux d’audit

Administration Django → Journal d’audit
  • Filtrez par utilisateur
  • Recherchez :
    • “Utilisateur connecté” avec method=“ldap”
    • “Utilisateur créé” avec method=“ldap_auto_provision” (pour les nouveaux utilisateurs)