Connexion LDAP ou AD
(Page créée avec « == Présentation == Cette page a pour objet de décrire comment interfacer Symfony avec une authentification LDAP ou AD. Le contenu de cette page est majoritairement insp… ») |
|||
Ligne 1 : | Ligne 1 : | ||
== Présentation == | == Présentation == | ||
− | Cette page a pour objet de décrire | + | Cette page a pour objet de décrire une procédure pour interfacer Symfony avec une authentification LDAP ou AD. |
− | Le contenu de cette | + | Le contenu de cette procédure est majoritairement inspiré de la documentation officielle de Symfony : |
*[https://symfony.com/doc/current/security.html Mise en place de la sécurité] | *[https://symfony.com/doc/current/security.html Mise en place de la sécurité] | ||
+ | *[https://symfony.com/doc/current/security/user_provider.html Fournisseurs d'utilisateurs] | ||
*[https://symfony.com/doc/current/security/ldap.html Méthodes d'interfaçage avec un LDAP] | *[https://symfony.com/doc/current/security/ldap.html Méthodes d'interfaçage avec un LDAP] | ||
*[https://symfony.com/doc/current/security/guard_authentication.html Utiliser Guard pour s'authentifier] | *[https://symfony.com/doc/current/security/guard_authentication.html Utiliser Guard pour s'authentifier] | ||
− | Une partie de cette | + | Une autre partie de cette procédure s'est inspirée de la solution de [https://medium.com/@devstan Stanislav Drozdov] de ré-écriture du fournisseur d'utilisateurs LDAP : |
*[https://medium.com/@devstan/extended-ldap-with-symfony-3-30be6f1a36b1 Comment manipuler toutes les informations d'un utilisateur LDAP] | *[https://medium.com/@devstan/extended-ldap-with-symfony-3-30be6f1a36b1 Comment manipuler toutes les informations d'un utilisateur LDAP] | ||
+ | |||
+ | Ainsi, cette procédure a deux objectifs : | ||
+ | #Rassembler dans une unique page les informations nécessaires à l'interfaçage avec un LDAP ou AD | ||
+ | #*En effet, pour ce type de besoin, les informations sont dispersées au sein de la documentation officielle de Symfony | ||
+ | #Aller au-delà des limitations du composant natif LDAP de Symfony | ||
+ | #*Bien que le composant LDAP simplifie énormément la mise en place de l'interfaçage avec Symfony, il n'embarque pas nativement d'option permettant la récupération automatique de certains champs. Il faut donc le surcharger en fonction des besoins | ||
== Marche à suivre == | == Marche à suivre == | ||
Ligne 20 : | Ligne 27 : | ||
== Installer le module de sécurité == | == Installer le module de sécurité == | ||
− | Cette partie est la plus simple de la | + | Cette partie est la plus simple de la procédure. Si Symfony a été installé avec l'option <code>--full</code>, elle n'est pas nécessaire. |
Pour installer le module de sécurité, lancer la commande suivante à la racine du projet : | Pour installer le module de sécurité, lancer la commande suivante à la racine du projet : | ||
Ligne 27 : | Ligne 34 : | ||
== Créer la gestion des utilisateurs == | == Créer la gestion des utilisateurs == | ||
− | + | Le module <code>security</code> s'appuie sur des ''fournisseurs d'utilisateurs'' pour gérer les utilisateurs. | |
+ | |||
+ | Comme indiqué dans la [https://symfony.com/doc/current/security/user_provider.html documentation à propos des fournisseurs d'utilisateurs], Symfony embarque nativement les fournisseurs suivants : | ||
+ | *[https://symfony.com/doc/current/security/user_provider.html#security-entity-user-provider Fournisseur d'utilisateurs de type "entité"] qui charge les utilisateurs depuis une base de données | ||
+ | *[https://symfony.com/doc/current/security/user_provider.html#security-ldap-user-provider Fournisseur d'utilisateurs de type "LDAP"] qui charge les utilisateurs depuis un serveur LDAP ou AD | ||
+ | *[https://symfony.com/doc/current/security/user_provider.html#security-memory-user-provider Fournisseur d'utilisateurs de type "mémoire"] qui charge les utilisateurs depuis un fichier de configuration | ||
+ | *[https://symfony.com/doc/current/security/user_provider.html#security-chain-user-provider Fournisseur d'utilisateurs de type "chaîne"] qui charge les utilisateurs depuis d'autres fournisseurs d'utilisateurs | ||
+ | |||
+ | Bien que la [https://symfony.com/doc/current/security.html documentation principale relative au module de sécurité] laisse entendre qu'il faut [https://symfony.com/doc/current/security.html#create-user-class créer une classe d'utilisateur], '''cette étape est inutile pour des utilisateurs LDAP''' (à moins de vouloir utiliser une classe d'utilisateur personnalisée). En effet, le composant <code>symfony/ldap</code> embarque nativement une classe d'utilisateur <code>LdapUser</code>. |
Version du 11 mars 2020 à 09:18
Sommaire
Présentation
Cette page a pour objet de décrire une procédure pour interfacer Symfony avec une authentification LDAP ou AD.
Le contenu de cette procédure est majoritairement inspiré de la documentation officielle de Symfony :
- Mise en place de la sécurité
- Fournisseurs d'utilisateurs
- Méthodes d'interfaçage avec un LDAP
- Utiliser Guard pour s'authentifier
Une autre partie de cette procédure s'est inspirée de la solution de Stanislav Drozdov de ré-écriture du fournisseur d'utilisateurs LDAP :
Ainsi, cette procédure a deux objectifs :
- Rassembler dans une unique page les informations nécessaires à l'interfaçage avec un LDAP ou AD
- En effet, pour ce type de besoin, les informations sont dispersées au sein de la documentation officielle de Symfony
- Aller au-delà des limitations du composant natif LDAP de Symfony
- Bien que le composant LDAP simplifie énormément la mise en place de l'interfaçage avec Symfony, il n'embarque pas nativement d'option permettant la récupération automatique de certains champs. Il faut donc le surcharger en fonction des besoins
Marche à suivre
La marche à suivre est plutôt bien présentée dans la documentation officielle.
Elle se présente sous la forme suivante :
- Installer le module de sécurité
- Créer la gestion des utilisateurs
- Mise en place de l'authentification
- Mise en place du filtrage et des rôles
Installer le module de sécurité
Cette partie est la plus simple de la procédure. Si Symfony a été installé avec l'option --full
, elle n'est pas nécessaire.
Pour installer le module de sécurité, lancer la commande suivante à la racine du projet :
Créer la gestion des utilisateurs
Le module security
s'appuie sur des fournisseurs d'utilisateurs pour gérer les utilisateurs.
Comme indiqué dans la documentation à propos des fournisseurs d'utilisateurs, Symfony embarque nativement les fournisseurs suivants :
- Fournisseur d'utilisateurs de type "entité" qui charge les utilisateurs depuis une base de données
- Fournisseur d'utilisateurs de type "LDAP" qui charge les utilisateurs depuis un serveur LDAP ou AD
- Fournisseur d'utilisateurs de type "mémoire" qui charge les utilisateurs depuis un fichier de configuration
- Fournisseur d'utilisateurs de type "chaîne" qui charge les utilisateurs depuis d'autres fournisseurs d'utilisateurs
Bien que la documentation principale relative au module de sécurité laisse entendre qu'il faut créer une classe d'utilisateur, cette étape est inutile pour des utilisateurs LDAP (à moins de vouloir utiliser une classe d'utilisateur personnalisée). En effet, le composant symfony/ldap
embarque nativement une classe d'utilisateur LdapUser
.