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

Wildfly/JBoss Java Discussion :

LdapLoginModule avec LDAP particulier !


Sujet :

Wildfly/JBoss Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Points : 0
    Points
    0
    Par défaut LdapLoginModule avec LDAP particulier !
    Salut,

    Je dois créer une web app sous JBoss 5.0...
    Et pour cela je dois gérer l'authentification des "users" avec LDAP...

    Pour cela il existe le LDapLoginModule...
    dont il suffit de déclarer "l'application policy" dans le login-config.xml ....

    J'ai vu qu'il y avait aussi le LDapExtLoginModule, mais j'ai pas bien compris la différence, donc déjà là si quelqu'un pouvait m'éclairer ... enfin BREF ...

    imaginons cette structure de LDAP :

    BASE : dc =max, dc =lol
    User : ou=popoleLOL,dc=max,dc=lol
    Groups ou=Groupetto,dc=max,dc=lol

    Dans Groups, j'ai plusieurs groupes avec un "cn":
    cn=LeGroupeQueJeVEUXBordelDeMerdeLol

    et dans ce groupe j'ai "member" qui pointent vers le DN des users appartenant à ce groupe ...

    Donc jusque là pas de souci, le seul problème c'est le DN des "ou=popoleLOL"
    et les attributs des différentes "entry" de ou="popoleLOL"

    exemple d'attributs d'une entry dans "ou=popoleLOL" :

    username = max
    uid = max
    sn = max la menax ...
    maxuid = 54HGFHGF8767
    userPassword = blablaconnardssq

    A la fenetre de log :
    Je rentre dans j_username : max (l'uid)
    et dans j_password : blablaconnardssq (l'userPassword)

    mais quand je veux m'authentifier, j'utilise le couple d'attributs suivant (maxuid,userpassword) et non (uid,userpassword) ce que je saisis...


    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
    application-policy name="testLDapMAX">
    		<authentication>
    			<login-module code="org.jboss.security.auth.spi.LdapLoginModule" flag="required">
    				<module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
    				<module-option name="java.naming.provider.url">ldap://llololoolol:389</module-option>
    				<!--<module-option name="java.naming.security.authentication">simple</module-option>-->
     
    				<module-option name="principalDNPrefix">uid=</module-option>
    				<module-option name="principalDNSuffix">,ou=popoleLol,dc=max,dc=lol</module-option>
    				<!--<module-option name="rolesCtxDN">ou=Groupetto,dc=max,dc=lol</module-option>-->
    				<!--<module-option name="uidAttributeID">member</module-option>-->
    				<!-- <module-option name="matchOnUserDN">true</module-option> -->
    				<!--<module-option name="roleAttributeID">cn</module-option> -->
    				<!--<module-option name="roleAttributeIsDN">false</module-option> -->
    				<module-option name="searchTimeLimit">5000</module-option>
    				<module-option name="searchScope">SUBTREE_SCOPE</module-option>
    			</login-module>
    		</authentication>
    	</application-policy>
    Et voilà, j'arrive pas à m'en sortir et je ne sais même pas si je peux utiliser ce LDapLoginModule avec la particularité de mon annuaire LDAP...

    J'arrive pas à dire avec les attributs données :

    pour le DN user, tu prends "maxuid=savaleur,ou=popoleLol,dc=max,dc=lol
    moi je lui dis, tu prends "uid=savaleur,ou=popoleLol,dc=max,dc=lol

    J'aimerais bien trouver quelqu'un qui maitrise plus ou moins LDAP JBoss et les LDAP login module, pour arriver à une solution au plus vite !

    Merci pour votre aide !

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Points : 0
    Points
    0
    Par défaut
    Re, toujours pas de réponses ?

    Je fais une petite relance desfois qu'il y est un LDapLoginModuleur dans le coin !

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Points : 0
    Points
    0
    Par défaut Salut
    Re, toujours personnes lol ?

    Il y a personne qui taquine les authentifications dans JBoss surtout celle s'appuyant sur LDAPLoginModule ou LdapExtLoginModule ???

    Avec un LDap un peu spécial !

    Allez je suis sûr que vous savez tous sur LDap Et Jbossss !!

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Points : 0
    Points
    0
    Par défaut
    Bon, et ben faut pas tant vous bousculer pour me donner des indications lol !

    J'ai résolue le problème en bidouillant un peu, ce que j'aurais préféré éviter ...

    Donc si quelqu'un à se problème, il peut essayer de faire comme moi ...

    En fait dans la librairie jbosssx.jar dans /<serveur>/<config>(default en general)/lib ...

    Tu ouvre la librairie, tu vas dans org.jboss.security.auth.spi et tu prends la LdapLoginModule.class que tu décompile avec "jad" par exemple ...

    Ou alors tu cherche une classe java LdapLoginModule.java si t'as pas envie de décompiler ...

    Tu fais un copier coller de ta classe java, et tu la renomme, par exemple "MyLDapLoginModule.java", t'analyse un peu le code, histoire de comprendre...,
    et tu ajoute une fonction searchAlias(String userName) par exemple, qui à partir du userName/login saisie sur la page d'authentification, va checker le Ldap en anonymous, pour récupérer la valeur d'un attribut de ta table user (sur mon exemple c'est maxuid) alors que je saisie l'uid lorsque je me loggue ...

    Apres tu forme le bon DN, ca c'est déja existant normalement, sauf que au lieu de mettre "principalDnSuffix + username + principalDnPreffix", pour former le Dn, tu mettras la nouvelle option que tu as défini dans ton LdApLoginModule par exemple :
    "attributeAlias".

    Après tu compile ta classe java, et tu la remets dans jbosssx.jar au bon endroit... org.jboss.security.auth.spi, il faut que le package de ta classe soit : package org.jboss.security.auth.spi, et pour que les liens se fassent bien, il faut donc créer cette hiérarchie dans un projet java.

    t'arrete ton serveur, tu modifie le login-config.xml, exemple :
    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
    <application-policy name="jbpmMaxTest89531"> //correspond au jboss-web.xml
    		<authentication>
    			<login-module code="org.jboss.security.auth.spi.MyLdapLoginModuleMax3452" flag="required">
    				<module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
    				<module-option name="java.naming.provider.url">ldap://localhost:389</module-option>
    				<module-option name="java.naming.security.authentication">simple</module-option>
    				
    				<module-option name="principalDNPrefix">uid=</module-option>
    				<module-option name="lDapUserId">maxuid</module-option> //la nouvelle balise pour les alias avec sa valeur, ici maxuid comme pour l'exemple
    				<module-option name="principalDNSuffix">,ou=people,dc=fgfg,dc=fggffg</module-option>
    				<module-option name="rolesCtxDN">ou=Groups,dc=fggf,dc=sddsds</module-option>
    				<module-option name="uidAttributeID">uniqueMemberOf</module-option>
    				<module-option name="matchOnUserDN">true</module-option>
    				<module-option name="roleAttributeID">cn</module-option>
    				<module-option name="roleAttributeIsDN">true</module-option>
    				
    				<module-option name="searchTimeLimit">5000</module-option>
    				<module-option name="searchScope">SUBTREE_SCOPE</module-option>
    			</login-module>
    		</authentication>
    	</application-policy>
    et dans le jboss-web.xml de ton appli web tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <security-domain>java:/jaas/jbpmMaxTest89531
    qui "bind" sur l'application policy déclaré dans le login-config.xml...

    Voilà, c'est un peu compliqué, mais c'est fait exprés lol, si tu as un souci demande ...

    Et au fait merci pour votre non-aide qui m'a obligé à me pencher sur le problème et à tout comprendre ! loololollo !

    Salut !

  5. #5
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut
    c'est confus mais c'est vrai que c'est pas evident.
    La configuration du fichier login-config.xml est vraiment galère.

    tu as progressé depuis dans ta connaissance du LDAP et sa config dans JBoss ?
    ça m'intéresse car je suis en plein dedans.

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/09/2009, 17h27
  2. [LDAP] authentification domaine avec LDAP
    Par Thylia dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/07/2006, 16h59
  3. Réponses: 5
    Dernier message: 22/06/2006, 17h19
  4. Requetes Lentes avec LDAP
    Par ripou dans le forum Développement
    Réponses: 1
    Dernier message: 13/12/2005, 18h49
  5. Validation User/Mdp avec LDAP
    Par Katyucha dans le forum Réseau
    Réponses: 2
    Dernier message: 02/12/2004, 13h51

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