Authentification | Utilisateurs | Mot-de-passe |
---|---|---|
✔ | ✔ |
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…
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/'
DBI;LDAP
”, si DBI échoue pour l'authentification, Multi essaie d'utiliser LDAP comme base d'utilisateurs.
Le système Multiple
peut :
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))'}}
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
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.