Table of Contents

Empiler de multiples backends

Authentification Utilisateurs Mot-de-passe

Présentation

Ce backend permet de chaîner des méthodes d'authentification, par exemple pour basculer sur une authentification LDAP si l'authentification amont a échouée…

Configuration

Il faut utiliser Multiple comme module d'authentification (celà force Multiple pour le module utilisateur). Aller ensuite dans les paramètres Multiple pour définir les modules à chaîner pour l'authentification et les utilisateurs. Les modules doivent être séparés par point-virgules/

Par exemple :

CAS;LDAP

Si CAS échoue, LDAP est utilisé.

Il est possibe d'ajouter une condition. Exemple :

Remote $ENV{REMOTE_ADDR}=~/^192/;LDAP $ENV{REMOTE_ADDR}!~/^192/'
Multiple essaiera d'utiliser le même module pour l'authentification et les utilisateurs. Exemple, en utilisant “DBI;LDAP”, si DBI échoue pour l'authentification, Multi essaie d'utiliser LDAP comme base d'utilisateurs.

Configuration avancée

Le système Multiple peut :

La surcharge n'est pas paramètrable dans le manager

Pour empiler plusieurs fois le même module, utiliser ”#nom” avec différents noms. Exemple :

LDAP#Openldap; LDAP#ActiveDirectory

Ensuite on peut avoir différents paramètres pour chacun, stockés dans une table de hachage <a1>Perl</a1> nommée multi :

multi => {
    'LDAP#Openldap' => {
      'ldapServer' => 'ldap1.example.com',
      'LDAPFilter' => '(uid=$user)',
    },
    'LDAP#ActiveDirectory' => {
      'ldapServer' => 'ldaps://ad.example.com',
      'LDAPFilter' => '(&(sAMAccountName=$user)(objectClass=person))',
    }
},

Cette clef doit être stockée directement dans lemonldap-ng.ini :

[portal]
multi = {'LDAP#Openldap'=>{'ldapServer'=>'ldap1.example.com','LDAPFilter'=>'(uid=$user)'},'LDAP#ActiveDirectory'=>{'ldapServer'=>'ldaps://ad.example.com','LDAPFilter'=>'(&(sAMAccountName=$user)(objectClass=person))'}}

Problèmes connus

Authentification AuthApache

En utilisant ce module, le portail LL::NG est appelé uniquement si Apache ne retourne pas “401 Authentication required”, aucune bascule n'est donc possible.

Pour outrepasser ceci, suivre la documentation du module AuthApache

Authentification SSL

Pour chaîner SSL, il est nécessaire de mettre “SSLRequire optional” dans le fichier de configuration Apache, sinon les utilisateurs ne seront authentifiés que par SSL.