Intégration LDAP

De SOS Paris
Aller à : navigation, rechercher

Le support LDAP est natif depuis la version 2.8 de Symfony.

Installation

Vérifier que le module LDAP est présent sur le serveur en affichant le phpinfo (http://<serveur>/phpinfo.php):

Debian

  • Installation module PHP5
sudo apt-get install php5-ldap
  • Redémarrage du service
/etc/init.d/apache2 restart

CentOS

  • Installation module PHP5
yum install php-ldap
  • Ajout de l'extension
vi /etc/php.ini
add extension=ldap.so
  • Redémarrage du service
service httpd restart

EasyPHP

  • Cliquer sur Config
  • Menu PHP (php.ini)
  • Décommenter php_ldap
extension=php_ldap.dll

Configuration

Les fichiers de configuration sont dans app/config.

Information Valeur Description
ldap_host ad.mon_domaine Nom du serveur LDAP ou Active Directory

parameters.yml

Il est préférable d'indiquer les paramètres propres au site dans le fichier parameters.yml:

parameters:
    ldap_host: adds.vaudoise.ch

services.yml

Créer un service qui va utiliser le client LDAP:

services:
    app.ldap:
        class: Symfony\Component\Ldap\LdapClient
        arguments: [ "%ldap_host%" ]

security.yml

Ajouter un nouveau fournisseur d'authentification:

Utiliser le service pour authentifier le parefeu:

security:
    providers:
        chain_provider:
            chain:
               providers: [fos_userbundle, app_users, in_memory]
       in_memory:
           memory:
               users:
                   user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                   admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
       fos_userbundle:
           id: fos_user.user_provider.username
           
       app_users:
           ldap:
               service: app.ldap
               base_dn: dc=vaudoise,dc=ch
               search_dn: CN=<COMPTE>,OU=Standard,OU=Users,OU=PRD,OU=HQ,DC=vaudoise,DC=ch
               search_password: <PASSWORD>
               filter: (sAMAccountName={username})
               default_roles: ROLE_USER

Ajouter l'authentification au portail:

        main:
            pattern:    ^/
            provider: app_users
            pattern:  ^/admin
            form_login_ldap:
                service: app.ldap
                dn_string: CN={username},OU=Standard,OU=Users,OU=PRD,OU=HQ,DC=vaudoise,DC=ch
                check_path: fos_user_security_check
                login_path: fos_user_security_login
            form_login:
                provider:    fos_userbundle
                remember_me: true
                login_path: fos_user_security_login
                check_path: fos_user_security_check
                default_target_path: arii_Home_index
            logout:
                path:   fos_user_security_logout
                target: fos_user_security_login
                # invalidate_session: true
            remember_me:
                key:      %secret%
                lifetime: 31536000