Lemonldap::NG gère les applications par leurs noms d'hôtes(hôtes virtuels d'Apache). Rules are used to protect applications, headers are HTTP headers added to the request to give datas to the application (for logs, profiles,…).
See also extended functions.
A rule associates a regular expression to a Perl boolean expression or a keyword.
Exemples :
But | Expression régulière | Règle |
---|---|---|
Restreindre le répertoire /admin/ à l'utilisateur bart.simpson | ^/admin/ | $uid eq "bart.simpson" |
Restreindre les répertoires /js/ et /css/ aux utilisateurs authentifiés | ^/(css|js)/ | accept |
Interdire l'accès au répertoire /config/ | ^/config/ | deny |
Ne pas restreindre /public/ | ^/public/ | skip |
Makes authentication optional, but authenticated users are seen as such (that is, user data are sent to the app through HTTP headers) | ^/forum/ | unprotect |
Restrict access to the whole site to users that have the LDAP description field set to “LDAP administrator” (must be set in exported variables) | default | $description eq "LDAP administrator" |
La règle d'accès “default” est utilisée si aucune règle ne correspond à l'URL courante.
Les règles peuvent également être utilisées pour intercepter les URL de déconnexion :
But | Expression régulière | Règle |
---|---|---|
Déconnecte l'utilisateur de Lemonldap::NG le redirige vers http://intranet/ | ^/index.php\?logout | logout_sso http://intranet/ |
Déconnecte l'utilisateur de l'application courante et le redirige vers le menu | ^/index.php\?logout | logout_app https://auth.example.com/ |
Déconnecte l'utilisateur de l'application courante et de Lemonldap::NG le redirige vers http://intranet/ | ^/index.php\?logout | logout_app_sso http://intranet/ |
Les en-têtes sont des associations entre un nom d'en-tête et une expression perl qui retourne une chaîne. Les en-têtes sont utilisés pour donner aux applications les données utilisateurs.
Exemples :
But | Nom d'en-tête | Valeur d'en-tête |
---|---|---|
Donne l'uid (pour la traçabilité) | Auth-User | $uid |
Donne une valeur statique | Some-Thing | “static-value” |
Donne le nom à afficher | Display-Name | $givenName.“ ”.$surName |
Done une valeur non-ascii | Display-Name | encode_base64($givenName." ".$surName) |
Comme indiqué au chapître performances, on peut utiliser des macros, macros locales,…
Session-ID => $_session_id