IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

[LDAP] se connecter a ldap en java


Sujet :

Sécurité Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 36
    Points : 32
    Points
    32
    Par défaut [LDAP] se connecter a ldap en java
    Bonjour à tous,

    J'ai fait quelques recherches mais je n'arrive pas à comprendre comment se connecter à un annuaire LDAP en java et récupérer des infos.
    Si quelqu'un a déjà utilisé Java pour se connecter à LDAP, je souhaiterais juste savoir les jar dont j'ai besoin, s'il faut utiliser JNDI ou autre chose, comment me connecter à cet annuaire et récupérer la liste des personnes de cet annuaire.

    Merci d'avance à ceux qui pourront m'aider, je commence à être désespérée ,

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 66
    Points
    66

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    merci

  4. #4
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Tu as également un tuto made in Developpez.net sur le sujet. Au niveau du point 29.7.3. Les attributs, il est mentionné la récupération des données du LDAP (tiré du lien) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dirContext = new InitialDirContext(env);
    Attributes attributs = dirContext.getAttributes("cn=Dupont,dc=test-ldap,dc=net");
    Attributs attribut = (Attribut) attributs.get("description") ;
    System.out.println("Description : " + attribut.get());
    source

    Edit : oups désolé, trompé de sujet. J'ai répondu à un sujet enterré depuis plus de 3 mois Je laisse ça peut servir.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Salut tout le monde,

    Je vous explique le problème.

    J'essaye d'établir une simple connexion vers un LDAP pour vérifier un couple login/password saisi dans mon application. Le problème, c'est que j'ai peu d'info sur le serveur, et que l'authentification avec md5 échoue, ca me dit :

    [LDAP: error code 49 - SASL(-1): generic failure: unable canonify user and get auxprops]

    Comment résoudre le souci, j'ai essayé d'envoyer le mot de passe crypté, j'ai essayé beaucoup de choses mais.... je suis quasi sur du lien principal de type dn:LdapKey=AA******,ou=people,dc=atosorigin,dc=com puisqu'il marche dans un explorateur LDAP open source.

    Si quelqu'un a une idée (voir code), merci beaucoup.
    Apparement, côté serveur : Java System Directory serveur/5.2
    supportedSASLmechanism Digest-MD5


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    package ldap;
     
    import java.io.IOException;
    import java.security.MessageDigest;
    import java.util.Hashtable;
     
    import javax.naming.Context;
    import javax.naming.NamingEnumeration;
    import javax.naming.NamingException;
    import javax.naming.directory.BasicAttribute;
    import javax.naming.directory.BasicAttributes;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.InitialDirContext;
    import javax.naming.directory.SearchResult;
    import javax.naming.ldap.HasControls;
     
     
    public class Auth {
     
    	public Auth(String user,String password) throws NamingException
    	{
     
    			//System.setProperty("javax.net.ssl.trustStore","C:\\Program Files\\Java\\jdk1.6.0_25\\jre\\lib\\security\\cacerts");
     
    			String principal = "aoLdapKey=AAA******,ou=people,dc=atosorigin,dc=com";
     
    			String myContext = "com.sun.jndi.ldap.LdapCtxFactory";// Nom du factory
    			String provider = "ldap://ldap.atosorigin.com:389"; // adresse du serveur LDAP
     
    			Hashtable env = new Hashtable();
     
    			env.put(Context.INITIAL_CONTEXT_FACTORY,myContext); 
    			env.put(Context.PROVIDER_URL,provider);
    			env.put(Context.SECURITY_AUTHENTICATION,"DIGEST-MD5"); 
    			env.put(Context.SECURITY_PRINCIPAL,principal);
    			env.put(Context.SECURITY_CREDENTIALS,password);
    			//env.put("java.naming.security.sasl.realm", "JNDITutorial");
     
    			env.put("java.naming.ldap.version", "3");
    			//env.put(Context.SECURITY_PROTOCOL, "ssl");
    			env.put("javax.security.sasl.qop", "auth"); //auth-int -conf
     
    			try {
    		        DirContext ctx = new InitialDirContext(env);
    		        System.out.println("Serveur trouvé !");
     
    		        // permet de verifier si je me connecte à mon serveur LDAP
                    try 
                    {
                      DirContext schema = ctx.getSchema(principal);
                      System.out.println("OK connect");
                    }
                      catch (NamingException e) {
                      System.out.println("KO connect");
                    }
     
    		        BasicAttributes match = new BasicAttributes(true);
     
    				match.put(new BasicAttribute("uid", user));
    				//match.put(new BasicAttribute("userPassword", "********"));
     
    				NamingEnumeration answer = ctx.search("ou=people,dc=atosorigin,dc=com", match);
    				System.out.println(answer.hasMoreElements());
    				System.out.println(answer.nextElement());
     
    		        System.exit(0);
    		    } catch (NamingException e) {
    		        System.out.println("Failed !");
    		        System.out.println(e.getExplanation());
    		        System.exit(1);
    		    }      
    	}
     
     
    	public static void main(String [ ] args) throws IOException, NamingException
    	{ 
    		Auth a = new Auth("A******","*******");
    	}
    }

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/01/2010, 13h34
  2. [LDAP] Se connecter à LDAP
    Par grenoult dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 05/03/2008, 16h06
  3. Pb connection annuaire LDAP
    Par Aurélie38 dans le forum Langage
    Réponses: 5
    Dernier message: 25/11/2007, 12h15
  4. [AD] se connecter au serveur LDAP avec un client LDAP de base
    Par novices dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 24/04/2007, 18h17
  5. [LDAP]Se connecter via le login
    Par partyboy dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 05/10/2005, 19h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo