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

Symfony PHP Discussion :

Authentification avec LDAP


Sujet :

Symfony PHP

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Authentification avec LDAP
    Bonjour,

    Dans mon projet Symfony2, je souhaite authentifier mes utilisateurs en interrogeant un annuaire LDAP.

    Attention, mes utilisateurs sont gérés "en local" dans une base de données (Doctrine 2). L'annuaire LDAP n'est utiliser que pour le "bind" (la vérification du mot de passe).
    J'utilise le bundle FR3DLdapBundle, qui est basé sur celui de BorisMorel, mais j'ai un peu de mal...
    (J'ai aussi vu qu'il y a un bundle "opensky", mais je ne peux pas l'utiliser que je ne peux pas utiliser Zend FW dans ce projet).

    Attention, certains utilisateurs possèdent un mot de passe dans la bdd locale. Quand un utilisateur tente de s'authentifier, on vérifie d'abord dans cette bdd. Si ce n'est pas valide, on va vérifier sur l'annuaire LDAP.

    Mon problème : l'authentification LDAP ne marche pas... Lorsque l'utilisateur possède un mdp local, pas de souci, mais dès qu'on doit vérifier sur l'annuaire, ça ne passe pas (mot de passe invalide).

    Infos supplémentaires :
    - Comme indiqué dans la doc du bundle, j'utilise un user provider chainé : FOSUserBundle + FR3DLdapBundle.
    - J'utilise mon propre 'LdapManager' : je vérifie d'abord que l'utilisateur existe en local, PUIS sur l'annuaire LDAP (notamment la méthode 'loadUserByUsername').

    Je précise aussi que la connexion et le bind avec l'annuaire LDAP fonctionne parfaitement quand je le teste dans un script à part.

    J'espère avoir été clair...
    N'hésitez pas à demander plus de précisions !

    Merci d'avance à toute personne qui pourra m'aider à avancer !

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    j'ai exactement le même pb que toi et j'ai suivi la doc fournit par Maks3w
    mais ça marche pas

    j'ai besoin de créer mes utilisateurs avec foUserBundle et d'aller chercher le mot de passe dans LDAP,
    mais ceci ne marche pas, cependant l'authentification via FOUserBundle seul marche avec un user et password de la base.
    quelqu'un pourra t-il nous renseigner sur la bonne méthode pour coupler ces deux bundles

    merci d'avance

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    Avez-vous un message d'erreur ?

    Sinon, avez-vous activé php-ldap dans php.ini ?

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Bonjour ,

    D'abord merci pour ta réponse je galère depuis très longtemps dans ce pb

    j'ai pas un message d'erreur mais j'ai le message qu'on a quand l'authentification ne réussit pas 'veuiller verifier votre mot de passe et username ' ceci se passe quand je rentre les identifiants LDAP par contre quand je saisi des identifiants qui existe dans la base je m'authentifie normalement

    Pour la php.ini j'ai vérifié j'ai ceci :

    ; Enable ldap extension module
    extension=ldap.so

    je ne sais plus quoi faire

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    C'est peut être un problème d'attributs de FR3DldapBundle. Vérifie ta configuration des attributs

    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
     
    fr3d_ldap:
        client:
            host:         le_nom_de_ta_machine
            port:         389    # Optional
    #       version:        3    # Optional
            username:     cn=ton_identifiant_pour_te_cnnecter_au_ldap    # Optional
            password:     mot_de_passe_pour_te_connecter_au_ldap    # Optional
    #       optReferrals: false  # Optional
    #       useSsl:       true   # Enable SSL negotiation. Optional
    #       useStartTls:  true   # Enable TLS negotiation. Optional
        user:
            baseDn: ou=People, dc=example, dc=com # voir config de ton ldap
            filter: (&(ObjectClass=Person)) # voir config de ton ldap
            attributes:          # Specify ldap attributes mapping [ldap attribute, user object method]
                - { ldap_attr: uid,  user_method: setUsername } # Correspond au userID du ldap, j'y ai mis le username
    #           - { ldap_attr: cn,   user_method: setName }     # Optional
                - { ldap_attr: mail, user_method: setEmail }         # Le champ email de la table user ne peut pas être null
    #   service:
    #       user_manager: fos_user.user_manager          # Overrides default user manager
    #       ldap_manager: fr3d_ldap.ldap_manager.default # Overrides default ldap manager
    Sinon, pour être sûr, regarde si le ldap est bien activé dans php avec phpinfo()

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    alors j'ai ajouté les attributs

    ça marche toujours pas

    j'ai vérifié mon phpinfo : j'ai eu ça

    LDAP Support enabled
    RCS Version $Id$
    Total Links 0/unlimited
    API Version 3001
    Vendor Name OpenLDAP
    Vendor Version 20343
    SASL Support Enabled

    Directive Local Value Master Value
    ldap.max_links Unlimited Unlimited

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Si tu as toujours le message d'erreur "Bad credentials", c'est soit qu'il ne se connecte pas, soit qu'il ne trouve pas l'utilisateur.

    Verifie que le User ID correspond bien au username que tu entre pour te loguer, ainsi que le mot de passe.

    Sinon, re-vérifie tes données de config de fr3dldapbundle.

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    En fait je n'ai pas le message de "bad credentials", je l'avais déjà eu mais j'ai changé les paramètre de ma config Ldap : username et password , et la connexion au serveur LDAP a été établie

    mon pb c'est lors de l'authentification via le formulaire de login quand j'entre des identifiants qui figure dans la base l'authentification réussie , mais quand je rentre les identifiants récupéres de LDAP j'ai le controlleur me renvoie le message d'erreur disant que les identifiants entrés ne sont pas valides

    j'uilise un chaine_provider :
     chain_provider:
                providers: [fos_userbundle, fr3d_ldapbundle]
            fr3d_ldapbundle:
                id: fr3d_ldap.security.user.provider
            fos_userbundle:
                id: fos_user.user_manager
    
    et voci mon firewall :
     main:
                pattern: ^/                         # ^/ = tout ce qui commence par / = tout notre site
                fr3d_ldap:  ~
                form_login:                          # On définit notre méthode d'authentification
                    provider:    chain_provider    # On lit l'authentification au provider définit plus haut
                    remember_me: true              # On active la possibilité du "Se souvenir de moi" (désactivé par défaut)
                    success_handler: mysuccess_handler
                remember_me:
                    key:         %secret%        # On définit la clé pour le remember_me (%secret% est un parametre de parameters.ini)
                anonymous:       false            # On autorise les utilisateurs anonymes (non identifiés)
                logout:          true                # On autorise la déconnexion manuelle

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Montre ta config fr3dldapbundle stp

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    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
    #  Ldap configuration
    fr3d_ldap:
        client:
            host:         ma_machine
            port:         389    # Optional
            version:        3    # Optional
            username:     uid=tempo,o=organisme,c=domaine    # Optional
            password:     password    # Optional
    #       optReferrals: false  # Optional
    #       useSsl:       true   # Enable SSL negotiation. Optional
    #       useStartTls:  true   # Enable TLS negotiation. Optional
        user:
            baseDn: o=organisme,c=domaine
            filter: (ou=PersonOrganisme)
            attributes:          # Specify ldap attributes mapping [ldap attribute, user object method]
                - { ldap_attr: uid,  user_method: setUsername  } # Default
                - { ldap_attr: mail,   user_method: setEmail  }     # Optional
    #           - { ldap_attr: c,  user_method: com }         # Optional
    #            - { ldap_attr: magic_password,  user_method: spank!bitch }         # Optional
        service:
    #        user_manager: fos_user.user_manager          # Overrides default user manager
            ldap_manager: fr3d_ldap.ldap_manager.default # Overrides default ldap manager

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 116
    Points : 85
    Points
    85
    Par défaut
    Je n'utilise pas openLDAP , ma config est différente, pour le username, j'ai juste cn=username au lieu de uid=...

    Ton ldap_manager sert à hydrater la table User ? Essaye en commentant cette ligne.

    Sinon, je ne vois pas d’où peut venir ton problème, dsl

  12. #12
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 67
    Points : 61
    Points
    61
    Par défaut aide
    Bonjour,
    Je vous expose mon problème,
    J'aimerais sur mon application sur symfony2 sur debian squeeze que les utilisateurs se connecte avec leur compte Active Directorie server 2008


    J'utilise le bundle de MAKS3W FR3D LDAP BUNDLE.
    j'aimerais savoir quels sont les fichiers que vous vous aviez eu à modifier et si possibles avoir leur contenu cela m'aiderai réelement car j'ai trop duré au point ou j'en suis.
    votre aide me serait d'un trait grand secours.

    merci d'avance

  13. #13
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 67
    Points : 61
    Points
    61
    Par défaut aide
    Jette un coup d'oeil ici ca peut tètre t'aider

    https://github.com/Maks3w/FR3DLdapBundle/issues/10

  14. #14
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 24
    Points : 28
    Points
    28
    Par défaut ldap filtrer
    Bonjour à tous

    SVP quelqu'un pourrait me dire c'est quoi la fonction pour filtrer les utilisateurs (uid) en leur indiquant que le code doit commence par A +6 numéros exemple ( A342344 )
    2eme question mon code n'affiche rien pouvez vous me dire pourquoi !

    Merci d'avance !

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut utilisation d'un service ldap
    bonjour je travaille sur un projet symfony 2 utilisant l'authentification avec fosUserBundle et le service ldap
    je voudrai savoir comment utiliser l'authenfication
    du service ldap .

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/09/2009, 17h27
  2. Authentification avec LDAP sur Apache
    Par NeqO55 dans le forum Apache
    Réponses: 2
    Dernier message: 17/08/2009, 07h44
  3. Authentification avec LDAP / Jboss
    Par otterley dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 11/04/2008, 12h10
  4. Réponses: 0
    Dernier message: 26/03/2008, 08h36
  5. [LDAP] authentification domaine avec LDAP
    Par Thylia dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/07/2006, 16h59

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