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 :

Login Module Jboss/Jboss Portal


Sujet :

Wildfly/JBoss Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Login Module Jboss/Jboss Portal
    Bonjour,

    Je travaille sur les versions 2.6.5 de jboss portal et 4.2.2 de jboss.
    Mon serveur est connecté à un annuaire LDAP.
    Niveau sécurité, j'utilise Kerberos dans tout mon environnement.

    J'ai réglé l'authentification kerbérisé en passant par Apache + Mod_Jk.

    Mon problème est de faire communiquer jboss/jboss Portal et mon LDAP kerbérisé. Tout fonctionne sur un LDAP non kerbérisé.

    Je suis parti sur une solution ou je modifie les sources du module portal-identity-lib.
    J'arrive à un point où je configure 2 modules de login.
    - com.security.auth.module.Krb5LoginModule (afin de créer un loginContext jaas avec Kerberos)
    - mon propre Login Module qui me permet de récupérer les rôles dans le LDAP via GSSAPI.


    Ma configuration est la suivante dans mon login-module.xml du jboss portal
    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
    <application-policy name="other">
            <authentication>
     
              <login-module code = "com.sun.security.auth.module.Krb5LoginModule" flag = "required">
                    <module-option name = "debug">true</module-option>
                    <!--   nom complet serveur kerberos et royaune -->
                   <module-option name = "kdc">xxxxx.xx.fr</module-option>
                   <module-option name = "realm">REALM.KRB</module-option>
                    <module-option name = "useTicketCache">true</module-option>
                    <module-option name = "doNotPrompt">true</module-option>
     
                 </login-module>
     
              <login-module code = "org.jboss.portal.identity.auth.Krb5LdapLoginModuleImpl" flag = "required">
                   <!--   nom complet serveur ldap -->
                   <module-option name = "ldapServer">ldap://xxxx.xx.fr:389</module-option>
     
                   <module-option name = "debug">true</module-option>
     
                   <module-option name="unauthenticatedIdentity">guest</module-option>
                   <module-option name="userModuleJNDIName">java:/portal/UserModule</module-option>
                   <module-option name="roleModuleJNDIName">java:/portal/RoleModule</module-option>
                   <module-option name="userProfileModuleJNDIName">java:/portal/UserProfileModule</module-option>
                   <module-option name="membershipModuleJNDIName">java:/portal/MembershipModule</module-option>
                   <module-option name="additionalRole">Authenticated</module-option>
                   <module-option name="password-stacking">useFirstPass</module-option>
     
               </login-module>
     
           </authentication>
        </application-policy>

    Lorsque je me connecte, j'ai bien les traces propres au module jaas me disant qu'il récupère le TGT du cache.
    Par contre, ce contexte ne se propage pas lors de l'utilisation de l'autre module. Et mes requêtes JNDI avec une authentification GSSAPI m'indiquent l'erreur suivante:
    Failed to find any Kerberos tgt
    Vous auriez des idées pour faire correspondre mes 2 login module ?
    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Points : 173
    Points
    173
    Par défaut
    Salut Rémy,

    J'ai trouvé deux/trois liens sympa et comme je sais que ta que ca a faire en ce moment

    http://www.cris.com/~adhawan/tutorial/

    http://java.sun.com/products/jndi/tu.../trailmap.html -> http://java.sun.com/products/jndi/tu...rity/ldap.html

    Moi je communique avec apache depuis mon appli web avec ldap en faisant un bind SASL et sur la conf du serveur ldap, je fais un mapping dans les regex pour faire correspondre mon user avec un compte technique présent dans l'annuaire qui a des ACL particuliés !

    @+
    Sarsat Roxxor TEAM

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Points : 173
    Points
    173
    Par défaut
    J'ai aussi une question, que vient faire JAAS dans tous ça !!!
    JNDI est suffisant coté serveur pour communiquer avec ton srv LDAP. Suffit de créer le contexte qui va bien en utilisation le mechanisme d'authentification SASL...!


    http://java.sun.com/products/jndi/tu...rity/sasl.html

    http://java.sun.com/products/jndi/tu...rc/Mutual.java

    with GSSAPI

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Merci pour les liens, j'ai réussi à avancer mon côté.

    J'ai modifié mon login-config.xml afin de déclarer "com.sun.security.auth.module.Krb5LoginModule" dans une application policy "other" et mon propre module dans "portal".

    Ensuite, dans mon login module je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    loginContext = new LoginContext("other");
    loginContext.login();
    J'ai créé une classe JndiAction qui effectue mes requêtes en GSSAPI.
    Et je l'appelle de la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Subject.doAs(loginContext.getSubject(), new JndiAction());
    Maintenant j'ai droit à une belle erreur 403 sur ma page Firefox et aucune erreur côté Jboss

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Mon problème est résolu.

    Chaque utilisateur de jboss a besoin d'avoir le role "authenticated" afin d'avoir accès au portail. Je l'ai donc ajouté et voila je n'ai plus d'erreur 403

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

Discussions similaires

  1. Création de module sous JBoss
    Par dada92 dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 22/11/2013, 17h40
  2. Réponses: 0
    Dernier message: 12/02/2013, 17h07
  3. Réponses: 0
    Dernier message: 06/07/2010, 14h40
  4. [JBoss Portal] récuperer le login à partir de Jboss portal ?
    Par darkwalker dans le forum Portails
    Réponses: 1
    Dernier message: 01/07/2010, 04h41
  5. [LoginModule][Jboss] Comment se servir des Login Module ?
    Par kurtalis dans le forum Wildfly/JBoss
    Réponses: 8
    Dernier message: 11/05/2006, 11h01

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