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 :

Accès LDAP avec identification


Sujet :

Sécurité Java

  1. #1
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut Accès LDAP avec identification
    Bonjour,

    J'ai écris précédemment en PHP (pour faire plaisir à mon Chef ) un script qui lit l'annuaire de l'entreprise.

    Les paramètres de connexion sont de cette forme (j'ai changé les identifiants dans l'exemple ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    $rootLogin = "admin";
    $rootPassword = "toto";
    $ldapServer = "192.168.2.15";
    $ldapPort = 389;
    $dcName == "entreprise";
     
    $rootDn = "cn=$rootLogin,ou=Users,dc=$dcName,dc=org";
    $ds = ldap_connect ( $ldapServer, $ldapPort );
    Voulant porter ce script vers le langage JAVA (autant faire bien ), j'arrive à pointer sur l'annuaire avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");    
    env.put(Context.PROVIDER_URL,"ldap://192.168.2.15:389");
     
    DirContext dircontext = new InitialDirContext(env);
    ... par contre j'obtiens l'exception "javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]" dès que j'essaie de m'identifier auprès de l'annuaire LDAP avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");    
    env.put(Context.PROVIDER_URL,"ldap://192.168.2.15:389");
    
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "cn=admin,ou=Users,dc=entreprise,dc=org");
    env.put(Context.SECURITY_CREDENTIALS, "toto");
           
        
    DirContext dircontext = new InitialDirContext(env);

    J'ai aussi essayé l'exemple d'Oracle et la même exception s'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, "ldap://192.168.2.15:389/o=ENTREPRISE");
    
    // Authenticate as S. User and password "mysecret"
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "cn=admin. User, ou=Users, o=ENTREPRISE");
    env.put(Context.SECURITY_CREDENTIALS, "toto");
    
    // Create the initial context
    DirContext ctx = new InitialDirContext(env);
    Doù peut bien venir le problème ? Merci pour votre aide.

    A+

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Première chose, vérifier tes paramètres.

    Tu arrive à lancer ça en ligne de commande?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ldapsearch -x -H ldap://192.168.2.15:389 -D cn=admin,ou=Users,dc=entreprise,dc=org -W -b "dc=entreprise,dc=org"
    Il faut commencer par arriver à te connecter avec les outils de base pour s'assurer que la config ldap fonctionne.

  3. #3
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Première chose, vérifier tes paramètres.

    Tu arrive à lancer ça en ligne de commande?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ldapsearch -x -H ldap://192.168.2.15:389 -D cn=admin,ou=Users,dc=entreprise,dc=org -W -b "dc=entreprise,dc=org"
    Il faut commencer par arriver à te connecter avec les outils de base pour s'assurer que la config ldap fonctionne.
    Bonjour tchize_,

    Tout d'abord j'ai installé ldap-utils sur ma distribution linux.

    Ensuite la commande que tu m'a indiqué retourne l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ldap_bind: Invalid credentials (49)
    ... et cela avec plusieurs comptes utilisateurs.

    Pourtant, j'arrive bien à me connecter avec le script PHP qui utilise les mêmes paramètres. De plus dans un navigateur web, les comptes fonctionnent pour se conntecter au LDAP.

    Pourquoi donc cela ne fonctionne pas dans cette configuration ?

    Merci encore pour ton aide : si tu as d'autres idées je suis tout ouïe.

    Au fait : +1

    A+

  4. #4
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Bonjour à tous,

    Grâce à tchize_ qui mis sur la voie, j'ai trouvé la réponse.

    La commande suivante effectuée sur le serveur où est installé LDAP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat /etc/ldap/slapd.conf | grep -v "^#" | grep -v "^$"
    .. m'a permis d'obtenir les bons identifiants de connexion.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Problème d'accès à un serveur avec identification
    Par Storke dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/04/2012, 11h26
  2. Controle d'accés host avec ldap
    Par schograni dans le forum Réseau
    Réponses: 0
    Dernier message: 29/07/2008, 16h18
  3. Accés au LDAP avec BO
    Par phiphi83 dans le forum Débuter
    Réponses: 2
    Dernier message: 01/07/2008, 08h21
  4. problème d'identification LDAP avec OpenLDAP
    Par doczorg dans le forum Websphere
    Réponses: 6
    Dernier message: 06/11/2007, 15h42
  5. [LDAP] recherche dans differents container LDAP avec Java
    Par touinth dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 01/07/2004, 16h06

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