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