A system for handling single-signon authentication across multiple web apps under apache.
You create a simple signin system that take your user's authentication credentials (username, password, whatever) and compares it to your user database. It then mints a signed cookie containing the username and a list of 'roles'. A mod_perl layer then checks this cookie for every request, allowing or denying it based on a set of rules where different URL regexps require different users or roles. It then exposes the username and roles of the authenticated user to the underlying applications via environment variables and request headers.
Because it sits in the Apache layer, you can use it to control access to multiple applications - svn browsers, wikis, bug trackers, database admin tools, deploy tools, monitoring, pastebins, logs, etc.
- Copy all the files in the
mod_perl
folder to somewhere on your server that Apache can read from. - Adjust values in
GodAuthConfig.pm
to match your setup. - Modify the path in
GodAuthInit.pl
. - Modify the config path at the bottom of
GodAuth.pm
. - Modify the path in
god_auth.conf
. - Symlink
god_auth.conf
into/etc/httpd/conf.d
(or your local equivalent).
Patches to make this less path-edity are welcome. Setting an environment variable in GodAuthInit.pl
is probably a good approach.
- Setup the login webapp.
- But it's not done yet...