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 :

FOSUserBundle et FR3DLdapBundle.


Sujet :

Symfony PHP

  1. #1
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut FOSUserBundle et FR3DLdapBundle.
    Bonjour,

    Je m'arrache les cheveux à cause de l'authentification LDAP sur Symfony2.
    Voilà ma configuration :

    #config.yml
    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
     
     
    # FOSuser : Gestion d'utilisateur
    fos_user:
        db_driver: orm
        firewall_name: main
        user_class: Exp\CommunBundle\Entity\Utilisateur
     
    fr3d_ldap:
        driver:
           host:     192.168.1.1
           port:     389
           username: moi@societe.fr
           password: pass
           bindRequiresDn:  true
           baseDn:  OU=SBSUsers,OU=Users,OU=MyBusiness,DC=societe,DC=fr
    #       useSsl:   false
        user:
            baseDn: OU=SBSUsers,OU=Users,OU=MyBusiness,DC=societe,DC=fr
            filter: (&(ObjectClass=Person))
            attributes:
               - { ldap_attr: samaccountname,  user_method: setUsername } # champ login
               - { ldap_attr: sn, user_method: setName }
               - { ldap_attr: preferredlanguage, user_method: setLanguage }
               - { ldap_attr: mail, user_method: setEmail } # setter dans BaseUser
    #security.yml
    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
     
    security:
        encoders:
            Exp\CommunBundle\Entity\Utilisateur: plaintext
     
        role_hierarchy:
            ROLE_ADMIN:       ROLE_USER
            ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN]
     
        providers:
            chain_provider:
                chain:
                    providers: [fos_userbundle, fr3d_ldapbundle]
            fr3d_ldapbundle:
                id: fr3d_ldap.security.user.provider
            fos_userbundle:
                id: fos_user.user_manager
     
        firewalls:
            dev:
                pattern:  ^/(_(profiler|wdt)|css|images|js)/
                security: false
            main:
                pattern: ^/
                fr3d_ldap: ~
                form_login:
                    provider: fos_userbundle
                    csrf_provider: form.csrf_provider
                    always_use_default_target_path: true
                    default_target_path: /profile
                logout: true
                anonymous: true
        access_control:
            - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    Entity\utilisateur
    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
     
    ?php
     
    namespace Exp\CommunBundle\Entity;
     
    use FOS\UserBundle\Model\User as BaseUser;
    use FR3D\LdapBundle\Model\LdapUserInterface;
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * Utilisateur
     *
     * @ORM\Table(name="utilisateur")
     * @ORM\Entity
     * @ORM\HasLifecycleCallbacks()
     */
    class Utilisateur extends BaseUser implements LdapUserInterface
    {
        /**
         * @var integer
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        protected $id;
     
        /**
         * Ldap Object Distinguished Name
         * @var string $dn
         */
        private $dn;
     
        /**
         * @var string
         *
         * @ORM\Column(name="nomComplet", type="string", length=100, nullable=true)
         */
        private $nomComplet;
     
        /**
         * @var \DateTime
         *
         * @ORM\Column(name="dateCreate", type="datetime", nullable=true)
         */
        private $createAt;
     
        /**
         * @var \DateTime
         *
         * @ORM\Column(name="dateUpdate", type="datetime", nullable=true)
         */
        private $updatedAt;
     
        /**
         * @var \DateTime
         *
         * @ORM\Column(name="dateDelete", type="datetime", nullable=true)
         */
        private $deletedAt;
     
        public function __construct()
        {
        	parent::__construct();
        	if (empty($this->roles)) {
        		$this->roles[] = 'ROLE_USER';
        	}
        }
    L'authentification avec les utilisateurs enregistré via fos:user:create fonctione
    Par contre, j'ai systématiquement le message "Nom d'utilisateur ou mot de passe incorrect" à chaque tentative de connexion sur l'annuaire LDAP.

    Est ce que vous voyez une erreur dans ma conf ?
    Merci d'avance et bonne soirée,

    Gilles

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    sur google tu ne trouve pas d'info comme ici par exemple :
    http://blog.henriet.eu/authentificat...serbundle.html

    parceque là ton "usessl false" est commenté.
    faut le decommenter

  3. #3
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    Bonjour,

    Je me suis basé en partie sur la page dont tu parles (avec quelques changement liés à la version de fr3d_ldap) et celle là https://github.com/Maks3w/FR3DLdapBu...s/doc/index.md... Sans succès :-(

    Dans config.yml, l'attribut driver.utilisateur doit être sous la forme "username@domaine.com" ou "domaine\username" ou "CN=username"

    A quoi correspond l'attribut driver.bindRequiresDn ?

    Merci.

  4. #4
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    désolé je ne connais pas LDAP, je n'en ai jamais fais
    ça ne serait pas un problème de communication de port bloqué par exemple.(port 389)

  5. #5
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    Il n'y a pas de probleme de communication, puisque l'authentification fonctionne avec la class php adLDAP ; mais je préfèrerais utiliser des bundles Symfony, plutôt que de réinventer la roue.

    Une autre idée ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/07/2014, 15h38
  2. [2.x] FR3DLdapBundle et FOSUserBundle
    Par LeGilou dans le forum Symfony
    Réponses: 0
    Dernier message: 27/11/2013, 22h20
  3. [2.x] [FR3DLdapBundle] [FOSUserBundle] - 1062 Duplicate entry
    Par bennyatwork dans le forum Symfony
    Réponses: 1
    Dernier message: 24/07/2013, 17h05
  4. [2.x] [FOSUserBundle] Comment s'en servir ?
    Par Bleys dans le forum Symfony
    Réponses: 31
    Dernier message: 15/09/2011, 01h21

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