Bonjour,
Je m'arrache les cheveux à cause de l'authentification LDAP sur Symfony2.
Voilà ma configuration :
#config.yml
#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 # 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
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 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 }
L'authentification avec les utilisateurs enregistré via fos:user:create fonctione
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'; } }
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
Partager