Connexion LDAP ou AD

De Wiki de Jordan LE NUFF
Sauter à la navigation Sauter à la recherche
(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 comment interfacer Symfony avec une authentification LDAP ou AD.
+
Cette page a pour objet de décrire une procédure pour interfacer Symfony avec une authentification LDAP ou AD.
  
Le contenu de cette page est majoritairement inspiré de la documentation officielle de Symfony :
+
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 page s'est inspirée de la solution de [https://medium.com/@devstan Stanislav Drozdov] de ré-écriture du fournisseur d'utilisateurs LDAP :
+
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 marche à suivre. Si Symfony a été installé avec l'option <code>--full</code>, elle n'est pas nécessaire.
+
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 ==
C'est ici que la marche à suivre bifurque de la documentation officielle.
+
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

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 :

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 :

  1. 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
  2. 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é

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 :

Putty icon.png Console SSH

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 :

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.