Configurer vos applications pour les connexions sécurisées LDAPs

Dans une entreprise, certaines applications peuvent avoir besoin de se connecter au serveur LDAP pour récupérer des informations ou des droits d’accès pour les utilisateurs. Pour se faire, ces applications s’appuient sur un fichier de configuration, qui dans une configuration classique, peut ressembler à ceci :

#config  ldap
ldap.usersearchfilter=(samAccountName={0})
ldap.usersearchbase=DC=mondomaine,DC=lan
ldap.url=ldap://mondomaine.lan:389    # connexion non sécurisée
ldap.managerdn=CN=svc_ldapRdr,OU=Comptes services,DC=mondomaine,DC=lan #Compte de service d’accès au serveur LDAP
ldap.managerpassword=”MDP du compte svc_ldapRdr”
ldap.grouproleattribute=CN

On peut remarquer que la connexion ici n’est pas sécurisée car utilise un simple bind (port 389), pas sécurité. cela veut dire qu’on peut récupérer les mots de passe si on place un sniffer (wireshark par exemple) entre l’application et le serveur LDAP.

Pour une connexion sécurisée, on aurait plutôt utilisé la configuration suivante:

#config  ldap
ldap.usersearchfilter=(samAccountName={0})
ldap.usersearchbase=DC=mondomaine,DC=lan
ldap.url=ldaps://mondomaine.lan:636      # connexion sécurisée à LDAP
ldap.managerdn=CN=svc_ldapRdr,OU=Comptes services,DC=mondomaine,DC=lan #Compte de service d’accès au serveur LDAP
ldap.managerpassword=”MDP du compte svc_ldapRdr”
ldap.grouproleattribute=CN

Afin de réaliser une connexion sécurisée en SSL sur un serveur LDAP à a partir d’un serveur tomcat installé sous Windows. Il est nécessaire d’enregistrer les certificats SSL au niveau de la JVM du tomcat (keystore). Pour cela on va utiliser les outils suivants :

Keytool qui est un outil de gestion des certificats proposé dans les binaires de la JDK
Un programme JAVA : InstallCert.java permettant de récupérer les certificats SSL sur un serveur donné et de les importer dans la JVM.

Exemple:
Notre serveur LDAP de domaine (Active Directory) et un point d’entrée qui redirige vers un de ces contrôleurs :

Point d’entrée :

ldaps://mondomaine.lan:636

Notre serveur LDAP :

DC01.mondomaine.lan

L’applicatif se connectant sur le LDAP doit se connecter sur l’adresse suivante

ldaps://mondomaine.lan:636

Pour enregistrer les certificats SSL des serveurs LDAP dans le keystore de la JVM, il faut :
– Compiler le programme InstallCert en lançant la commande : javac InstallCert
– Lancer le programme InstallCert sur les 4 serveurs afin de récupérer les certificats :

java InstallCert DC01.mondomaine.lan:636

Après le lancement de ces programmes un fichier jssecacerts à été généré dans le répertoire courant
– Il faut maintenant exporter les certificats contenus dans le fichier jssecacerts pour chaque serveur en lançant les commandes suivantes :

“C:\Program Files\Java\jre7\bin\keytool.exe”  -exportcert -alias dc01.mondomaine.lan -keystore jssecacerts -storepass changeit -file DC01.mondomaine.lan.cer

– Une fois les exportations terminées, il faut importer les certificats générés dans le keystore de la JVM en lançant les commandes suivantes :

“C:\Program Files\Java\jre7\bin\keytool.exe” -keystore “C:\Program Files\Java\jre7\lib\security\cacerts” -importcert -alias DC01.mondomaine.lan -file dc01.mondomaine.lan.cer

Et voilà, j’espère que cet article vous aura été utile 🙂

One thought on “Configurer vos applications pour les connexions sécurisées LDAPs

Add yours

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: