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 :

Authentification java LDAP


Sujet :

Sécurité Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 50
    Points
    50
    Par défaut Authentification java LDAP
    Bonjour,

    Je travaille sur une application pour laquelle il est nécessaire de s'identifier. Les utilisateurs sont enregistrés dans un annuaire LDAP et je voudrais développer en java un pgrm qui me permettrait de tester une connection avec un log et un mot de passe entré en dur dans le pgr.

    Comment faire, sachant que les mots de passe stockés dans LDAP sont cryptés en SSHA ?? Avez-vous un exemple de code pour procéder à l'authentification ?

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Il me semble que le sujet a été traité plusieurs fois sur ce forum

    Voilà un exemple pour se connecter à OpenLDAP (mais c'est pareil ou presque pour les autres). Je n'ai pas mis la gestion des exceptions et autre code corrélaire, à toi de jouer.

    Attention, le code peut ne pas marcher en fonction de la configuration du LDAP. En effet il existe plusieurs modes d'authentification, voir la doc de l'API JNDI / LDAP

    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
    	String LDAP_CONTEXT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
    	String LDAP_CNX_POOL = "com.sun.jndi.ldap.connect.pool";
    	String LDAP_SERVER_URL = "ldap://localhost:389"; // connexion openLDAP
    	String LDAP_BASE_DN = "dc=domaine.fr";
    	String LDAP_AUTHENTICATION_MODE = "simple";
    	String LDAP_REFERRAL_MODE = "follow";
    	String LDAP_USER = "uid=monuser,ou=utilisateurs,"+LDAP_BASE_DN;
    	String LDAP_PASSWORD = "monpassword";
     
    	Hashtable env = new Hashtable();
    	env.put( Context.INITIAL_CONTEXT_FACTORY, LDAP_CONTEXT_FACTORY );
    	env.put( Context.PROVIDER_URL, LDAP_SERVER_URL+"/"+LDAP_BASE_DN );
    	env.put( Context.SECURITY_AUTHENTICATION, LDAP_AUTHENTICATION_MODE );
    	env.put( Context.SECURITY_PRINCIPAL, LDAP_USER );
    	env.put( Context.SECURITY_CREDENTIALS, LDAP_PASSWORD );
    	env.put( Context.REFERRAL, LDAP_REFERRAL_MODE );
     
    	DirContext ctxtDir = null;
    	// connexion au LDAP
    	ctxtDir = new InitialDirContext( env );
    	System.out.println( "InitialDirContext: ok\n" );
    Jacques Desmazières

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 50
    Points
    50
    Par défaut
    Super ça marche je te remercie énormément
    J’essais maintenant de gérer les utilisateur,tu n’aurais pas le code java pour ajouter un utilisateur ,supprimer un utilisateur.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Et un café

    Non, plus sérieusement, je n'ai jamais codé de mise à jour, que ce soit des utilisateurs ou de leurs données, mais ce ne doit pas être beaucoup plus compliqué. Et en cherchant bien cela doit pouvoir se trouver sur le net.

    Aller courage le plus dur est fait

    Jacques Desmazières

  5. #5
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 44
    Points
    44
    Par défaut
    bonjour,

    je veux verifier si le mot de passe de l'utilisateur est correct ou non,
    j'ai fais la connection a Active Directory, je peut lire toute les informations sur les utilisateurs mais pas mot de passe.

    je sais que je ne peux pas lire le mot de passe car il est crypté, je peux seulement le tester.

    je fais plusieur essais de verification mais pas de chance.

    a savoir que la connection a AD se fait sans "SSl" car elle pose un probleme

    la question est comment verifier le mot de passe de l'utilisateur a travers AD?

    merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Dans le bout de code il y a le test du mot de passe, car on se connecte avec le compte de l'utilisateur à tester. Donc si tu accèdes à ses données, c'est que le mot de passe est correct. Essaye de mettre un mot de passe erroné et tu devrais te faire jeter lors de l'authentification.

    Donc pas besoin de récupérer le mot de passe pour le tester. En plus il est crypté avec un algo non réversible, mais que tu peux trouver sur internet : il s'agit de l'algo "crypt" d'Unix (en tout car pour certains LDAP, pour AD je ne sais pas)

    Jacques Desmazières

  7. #7
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 44
    Points
    44
    Par défaut
    ok j'ai compris,

    j'ai trouvé la solution, tout d'abord je me connect a AD avec mon mot de passe , ensuite je fait un recherche sur le mail que je veux le test enfin je me connecte avec de user et le mot de passe a tester .et ça marche.

    tous ça , car j'ai besion le login qui a été connecté.


    Merci

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    Je viens de coder les fonctions pour gérer les utilisateurs (ajout, suppression, modification d’attributs) .
    J’aimeras maintenant verrouiller un utilisateur, apparemment ça a l’air faisable mais je vois pas trop comment faire.
    Quelqu’un aurait il une source à me passer ?ou un code effectuant cela.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Points : 38
    Points
    38
    Par défaut
    Bonjour.

    vous ne sauriez pas par hasard comment récupérer les noms des utilisateurs contenus dans la ldap ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 50
    Points
    50
    Par défaut
    Salut,

    Voila comment j'ai fais

    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
     
     
    public void listUsers(DirContext dirContext)
           {
     
            try {	       
     
    	System.out.println("Object= " + dirContext);	    
    	 NamingEnumeration e = dirContext.list("");           		  
     
                  for (; e.hasMoreElements(); ) {	    	
    	         NameClassPair 
    	         o = (NameClassPair)e.nextElement();	    	
    	         String name=o.getName();	    	
     Attributes att = dirContext.getAttributes(o.getName());
     
    //afficher les differents attributs	    	
    //att.get("street");	    	
    Attribute phone = att.get("telephoneNumber");
    //...............
     
    System.out.println("Object=" + name+ phone +"/n"); //+ " class=" + o.getClass().getName());
    		  }
     
    } catch (NamingException e) 
    {	    
      e.printStackTrace();
    }
     
    }
    j'espere que ça peut t aider.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Points : 38
    Points
    38
    Par défaut
    merci d'avoir répondu j'avais trouvé la solution mais je n'ai pu repenser à poster sur cette discussion ^^.

  12. #12
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Petite question en passant. Ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                  for (; e.hasMoreElements(); ) {
    équivaut à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                  while( e.hasMoreElements() ) {
    Non ?

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Ajout d'attribut LDAP
    Bonjour

    J'ai grandement besoin d'aide commençant tout juste à coder en java....
    Je dois créer des attributs en dynamique sur open LDAP, j'ai lu qu'une personne a réussi mais je ne trouve pas d'exemple de code, je tourne en rond ! Merci de votre aide.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    Excuse moi de te répondre aussi tardivement mais je reviens tout juste de vacances.
    Alors pour la solution des attributs voici un morceau de code (l'attribut c passwd)

    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
     
    public void AddPasswd(String userattr,String cheminattr) {
     
    	    	try { 	
     
    		      Attributes attributes = new BasicAttributes(true); 
    		      Attribute attribut = new BasicAttribute("userPassword"); 
    		      attribut.add("tutu"); 
    		      attributes.put(attribut); 
    		      BasicAttributes=false;
     
    		      ldapContext.modifyAttributes("cn=Albert Einstein,ou=agenda,dc=alcatel,dc=fr",    
    		      DirContext.ADD_ATTRIBUTE,attributes); 
    		      ldapContext.close(); 
     
    		    } catch (NamingException e) { 
    		      System.err.println("Erreur lors de l'acces au serveur LDAP" + e); 
    		      e.printStackTrace(); 
    		    } 
    		    //System.out.println("fin du traitement"); 
    	    }

    ++

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Points : 30
    Points
    30
    Par défaut Installation LDAP
    Bonjour ,
    Dans ce contexte , j'ai une question à propos de l'installation de LDAP , lui même
    J'ai pas trouvé comment l'installer pour que je puisse après l'utilser
    pour m'authentifier par ce bout de programme .
    Merci .

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 78
    Points : 18
    Points
    18
    Par défaut Creation user ldap avec password
    Bonjour,

    j'ai un petit souci je dois créer un nouvel utilisateur dans mon annuaireldap, j'arrive a le faire en rajouter les attributs nécessaire cependant je veux aussi qu'a la creation on demande un mot de passe a lui attribuer et la lorsque je rajoute comme attribut password j'ai un message d'erreur alors que sans tout marche

    merci de votre réponse

Discussions similaires

  1. Connexion Java / LDAP
    Par dedeloux dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 03/06/2013, 19h15
  2. authentification realm + ldap
    Par cybernatus dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 04/08/2006, 09h43
  3. authentification par LDAP
    Par coco-sup dans le forum Oracle
    Réponses: 1
    Dernier message: 29/05/2006, 06h31
  4. Transactions JAVA / LDAP / RDBMS
    Par mondes_engloutis dans le forum JDBC
    Réponses: 2
    Dernier message: 31/01/2006, 09h52
  5. [LDAP] Authentification automatique LDAP
    Par Gogus dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/12/2005, 14h37

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