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 :
L’application doit être redémarrée après l’activation de LDAP. L’authentification ne fonctionnera pas avant la fin du redémarrage.
Allez dans Administration Paradigm > Authentification > Applications Sociales et cliquez sur Ajouter.
- 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
}
| Champ | Description |
|---|
server_uri | URL du serveur LDAP. Utilisez ldaps:// (port 636) pour les connexions chiffrées. |
bind_dn | Nom distinctif (DN) du compte de service utilisé pour interroger l’annuaire. |
bind_password | Mot de passe du compte de service. |
user_search_base | DN de base où se trouvent les comptes utilisateurs. |
user_search_filter | Filtre pour trouver les utilisateurs. %(user)s est remplacé par le nom d’utilisateur saisi à la connexion. |
attr_email | Attribut LDAP contenant l’adresse e-mail de l’utilisateur. |
attr_first_name | Attribut LDAP pour le prénom de l’utilisateur. |
attr_last_name | Attribut LDAP pour le nom de famille de l’utilisateur. |
use_tls | Indique si TLS doit être utilisé. Recommandé : true. |
connection_timeout | Dé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 :
Étape 4 : Vérifier la configuration CNAME (pour les domaines personnalisés)
Après avoir configuré le DNS :
- Attendez 5 à 30 minutes pour la propagation DNS
- Dans l’administration Django → Applications Sociales → Ouvrez l’Application Sociale
- 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
- 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
- Accédez à l’URL de connexion (domaine personnalisé ou slug)
- Saisissez le nom d’utilisateur/e-mail LDAP
- Saisissez le mot de passe LDAP
- 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)