Identification ldap avec java

hibou666667 Messages postés 1 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 27 mai 2004 - 27 mai 2004 à 12:08
ghrissi31 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 29 mars 2009 - 9 août 2005 à 14:58
bonjour,
je suis en train de faire un intranet pour ma société. toutes les personnes sont stockées dans un arbre ldap, avec chacune un login et mot de passe
je souhaiterais utiliser cet arbre pour l'authentification lors de la connection a l'intranet.
je réalise une classe java, qui établit uen connection a l'arbre, et qui me permet de récupérer le mot de passe crypté contenu dans l'arbre.
mais mon probleme est que je ne sais pas comment comparer le mot de passe saisi par l'utilisateur et celui stocké dans l'arbre ldap.
est-ce que quelqu'un aurait une solution ?
merci

11 réponses

zilloux Messages postés 5 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 19 février 2005
6 oct. 2004 à 17:49
Ajoute

env.put(javax.naming.Context.SECURITY_PRINCIPAL, userDN);
env.put(javax.naming.Context.SECURITY_CREDENTIALS, password);

avant d'établir ta connection.

le directory gère le check et createDirContext renvoie une exception en cas d'erreur.
0
ghrissi31 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 29 mars 2009
8 nov. 2004 à 02:30
bonjour, bon pour comparer le mot de passe , tu doi savoir comment il est crypté?
en general (comme sous UNIX), tu prend le mot de passe , tu le crypte (generalement un HASHAGE en java avec du MD5) et tu le compare avec le mot de passe crypté sur ton arbre LDAP.
alors le premier truc ke tu dois faire c de te renseigner au niveau de ton entrprise sur la facon avec laquel ils cryptent.
vos questions sont les bienvenues
0
zilloux Messages postés 5 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 19 février 2005
8 nov. 2004 à 10:06
C'est le serveur LDAP qui s'occupe du cryptage et de la comparaison. Tu envoie le mot de passe en clair dans env.put(javax.naming.Context.SECURITY_CREDENTIALS, password);

Si tu ne veux pas envoyer le mdp en clair tu peux crypter la connexion au serveur en SSL ou bien spécifier la méthode d'autentification.
env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5");

http://java.sun.com/products/jndi/tutorial/ldap/security/index.html
0
ghrissi31 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 29 mars 2009
8 nov. 2004 à 12:36
ah bon , alors moi g pas tres bien compris le prob, bon j'espere ke ca marchai pour hibou666667 :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zhicham300 Messages postés 12 Date d'inscription vendredi 29 janvier 2010 Statut Membre Dernière intervention 27 mai 2005
6 avril 2005 à 14:44
Salut , moi je doit faire une application avec openldap sous windows avec java, la j ai installée openldap :localhost et port 636, j ai fais un petit programme java juste pour la connexion, il me retourne une erreur :LDAPException :connection lost waiting for results from localhost :636 (91) connect error


Donc ma connection ne marche pas ?????!!!!!


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Je travail avec com.novell.





Svp aidez moi
0
ficam1 Messages postés 6 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 13 juillet 2005
5 août 2005 à 12:48
slt, j ai un petit pb concernant l authentification aupres du serveur
ldap, ie verifier si la paire login/password existe dans l annuaire
voila le code de ma classe java



import javax.naming.*;

import javax.naming.directory.*;

import java.util.*;



public class LDAPBean {



DirContext ctx;



public static void main(String args[]){



String Login=args[1];

String Password=args[2];

String HostAdress=args[0];

LDAPBean ldap=new LDAPBean();

String cnx=ldap.Connect(HostAdress,Login, Password);

System.out.println(cnx);



}







public DirContext getDirContext(String HostAdress,String Login, String Password) throws Exception{



Hashtable env = new Hashtable(11);

env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");

env.put(Context.PROVIDER_URL,HostAdress );

env.put(Context.SECURITY_AUTHENTICATION,"simple");

env.put(Context.SECURITY_PRINCIPAL, Login);

env.put(Context.SECURITY_CREDENTIALS, Password);



DirContext ctx = new InitialDirContext(env);



return ctx;



}





public String Connect(String HostAdress,String Login, String Password){

String chaine="";



try{

ctx=getDirContext(HostAdress,Login,Password);




}catch(Exception e){

return "Error : "+e.getMessage();

}

return "Connexion etablie avec succes";

}

}



par contre si on enleve les 3 instructions d authentification :



env.put(Context.SECURITY_AUTHENTICATION,"simple");


env.put(Context.SECURITY_PRINCIPAL, Login);


env.put(Context.SECURITY_CREDENTIALS, Password);



tout marche bien et on peut se connecter avec le compte invite Anonymous qui existe par defaut sur le serveur LDAP.



est ce qu il y a une personne qui peut nous aider? c urgent



merci d avance

email : ficam1@yahoo.fr
0
ghrissi31 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 29 mars 2009
5 août 2005 à 13:58
a mon avis tu doi voir dans le dichier ldap.conf , c'est là ou tu trouve le nom de l'admin et le passe
0
ficam1 Messages postés 6 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 13 juillet 2005
6 août 2005 à 15:02
merci ghrissi31
bon apparment il n y a pas de pb au niveau du code que j'ai deposé je veux dire au niveau des instruction d'authentification ?
0
ghrissi31 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 29 mars 2009
6 août 2005 à 15:08
je penses que nom, mais dans tt les cas moi j utilise l API JDBCLDAP,
il te permet de manipuler LDAP comme un BD, donc c plus simple :D
0
ficam1 Messages postés 6 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 13 juillet 2005
9 août 2005 à 14:49
ou puis je reccupperer cette API JDBCLDAP .
est ce que c est un sorte de pilote que je dois installer a part (comme le pilote JDBC) ou il est integeré à la JVM
merci d'avance
0
ghrissi31 Messages postés 42 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 29 mars 2009
9 août 2005 à 14:58
c un Driver JDBC, file moi ton mail je te l envoie

a+
0
Rejoignez-nous