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

Java Discussion :

[java 1.6] Modifier une connexion LDAP en AD Samba 4


Sujet :

Java

  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut [java 1.6] Modifier une connexion LDAP en AD Samba 4
    Bonjour,

    Je dois reprendre un vieux programme JavaEE (plus de 10 ans, avant que j'arrive et, oui, les paramètres sont en dur dans le programme ! ) pour modifier le programme de connexion à l'ancien annuaire LDAP vers le nouvel annuaire AD Samba 4.

    D'après l'administrateur de l'annuaire, les paramètres que j'ai modifié dans le source sont bons.
    À part des warnings à la compilation du source, ça compile quand même et j'obtiens une classe qui semble fonctionner mais mon login/mot de passe sont refusés.

    Peut-être y a t-il autre chose à modifier dans le source par le changement de LDAP vers AD ?

    Voici l'extrait du source modifié :
    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
    	/**
             * Méthode de connexion à l'annuaire LDAP / AD
             * @param PER_LOGIN_LB
             * @param PER_PASSWORD_LB
             * @return boolean
             * @throws Exception
             */
    	static public boolean connexion_uti_ldap(String PER_LOGIN_LB, String PER_PASSWORD_LB) throws Exception
    	{
    		boolean blnConnexionAutorisee = false ;
    		DirContext ctxtDir = null;
     
    		try
    		{
    			String LDAP_CONTEXT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
    			//String LDAP_SERVER_URL = "ldap://ldap.enfa.fr:389"; // connexion openLDAP
    			String LDAP_SERVER_URL = "[ip du serveur]:389"; // Connexion Active Directory Samba 4
    			//String LDAP_BASE_DN = "dc=local"; // LDAP
    			String LDAP_BASE_DN = "dc=[notre domaine],dc=lan"; // AD
    			String LDAP_AUTHENTICATION_MODE = "simple";
    			String LDAP_REFERRAL_MODE = "follow";
    			//String LDAP_USER = "uid=" + PER_LOGIN_LB + ",ou=users,dc=enfa.fr,"+LDAP_BASE_DN; // LDAP
    			//String LDAP_USER = "cn=" + PER_LOGIN_LB + ",ou=people,"+LDAP_BASE_DN; // AD
    			String LDAP_USER = "samaccountname=" + PER_LOGIN_LB + ",ou=people,"+LDAP_BASE_DN; // AD
    			String LDAP_PASSWORD = PER_PASSWORD_LB ;
     
    			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);
     
    			// connexion au LDAP
    			ctxtDir = new InitialDirContext(env);
    			blnConnexionAutorisee = true ;
     
    			// Fermeture connexion au serveur
    			try
    			{
    				ctxtDir.close();
    			}
    			catch (Exception o)
    			{}
    		}
    		catch (Exception z)
    		{
    			blnConnexionAutorisee = false ;
     
    			if (ctxtDir != null)
    			{
    				ctxtDir.close();
    			}
    		}
    		finally
    		{
    			try
    			{
    				if (ctxtDir != null)
    				{
    					ctxtDir.close();
    				}
    			}
    			catch (Exception o)
    			{}
    		}
     
    		return blnConnexionAutorisee ;
     
    	}
    À la ligne String LDAP_USER = on utilise normalement cn= mais l'admin de l'annuaire m'a dit d'essayer avec samaccountname= mais j'ai le même refus.

    Quelqu'un aurait-il une piste à me suggérer ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Une idée...
    À la ligne 15 de l'extrait donné dans mon premier message, il y a ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String LDAP_CONTEXT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
    Je me demande si la valeur du paramètre fait référence à un programme compatible, dans sa version présente en 1.6, avec un annuaire AD Samba 4 ?
    Comment le savoir ?
    A priori, pour accéder à un annuaire AD Samba 4, ça reste du protocole LDAP de base, non ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    J'ai trouvé... et j'ai honte !

    Au lieu de String LDAP_SERVER_URL = "[ip du serveur]:389"; il ne fallait pas oublier le protocole... qui est toujours du ldap même si on s'adresse à un annuaire AD Samba 4 !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String LDAP_SERVER_URL = "ldap://[ip du serveur]:389";
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. [Admin] [BO XI] Impossible de créer ou modifier une connexion partagée
    Par Jodie dans le forum Administration-Migration
    Réponses: 3
    Dernier message: 02/11/2010, 14h21
  2. perl et php pour une connexion ldap
    Par youssef147 dans le forum SGBD
    Réponses: 0
    Dernier message: 23/04/2010, 12h38
  3. Modifier une connexion à une base de données
    Par geof dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/11/2007, 13h38
  4. comment déclarer une connexion LDAP en global ?
    Par ben83 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/03/2007, 15h24
  5. modifier une connexion dans un lot dts
    Par zimdim dans le forum Langage SQL
    Réponses: 1
    Dernier message: 03/01/2006, 11h39

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