Lemonldap::NG manage applications by their hostname (Apache's virtualHosts). Rules are used to protect applications, headers are HTTP headers added to the request to give datas to the application (for logs, profiles,…).
A rule associates a regular expression to a Perl boolean expression or a keyword.
Examples:
Goal | Regular expression | Rule |
---|---|---|
Restrict /admin/ directory to user bart.simpson | ^/admin/ | $uid eq "bart.simpson" |
Restrict /js/ and /css/ directory to authenticated users | ^/(css|js)/ | accept |
Deny access to /config/ directory | ^/config/ | deny |
Do not restrict /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" |
The “default” access rule is used if no other access rule match the current URL.
Rules can also be used to intercept logout URL:
Goal | Regular expression | Rule |
---|---|---|
Logout user from Lemonldap::NG and redirect it to http://intranet/ | ^/index.php\?logout | logout_sso http://intranet/ |
Logout user from current application and redirect it to the menu | ^/index.php\?logout | logout_app https://auth.example.com/ |
Logout user from current application and from Lemonldap::NG and redirect it to http://intranet/ | ^/index.php\?logout | logout_app_sso http://intranet/ |
Headers are associations between an header name and a perl expression that returns a string. Headers are used to give user datas to the application.
Examples:
Goal | Header name | Header value |
---|---|---|
Give the uid (for accounting) | Auth-User | $uid |
Give a static value | Some-Thing | “static-value” |
Give display name | Display-Name | $givenName.” ”.$surName |
Give a non ascii data | Display-Name | encode_base64($givenName." ".$surName) |
As described in performances chapter, you can use macros, local macros,…
Session-ID => $_session_id