Lemonldap::NG gère les applications par leurs noms d'hôtes(hôtes virtuels d'Apache). Les règles sont utilisées pour protéger les applications, les en-têtes sont des en-têtes HTTP ajoutés pour transmettre des données à l'application (pour les journaux, profils,…).
Une règle associe une expression régulière à une expression booléenne Perl ou un mot-clef.
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 |
Rendre l'authentification optionnelle, mais les utilisateurs authentifiés sont vus comme tel (ce qui signifie que les données utilisateurs sont envoyées via les en-têtes HTTP) | ^/forum/ | unprotect |
Restreindre l'accès à tout le site aux utilisateurs dont le champ description LDAP contient “LDAP administrator” (doit être déclaré dans les variables exportées) | 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