Mod_auth_citadel is an Apache Web Server authentication module for the Citadel Groupware Server. This module allows system administrators to provide seamless authentication against the Citadel user database for apache-served content. This is invaluable for providing user-facing control panels for spam management, wiki authentication, and intranet services in a Citadel environment.
Mod_auth_citadel is founded upon an extraordinarily clean and well documented code base, which serves as an excellent tutorial for developers wishing to learn the structure and implementation of custom authentication modules for the Apache Web Server.
The module has been compiled and tested on various Linux distributions (Debian, Ubuntu, Centos, Red Hat Enterprise, Fedora, OpenSUSE) as well as FreeBSD.
The following libraries and includes must be available to compile the module. Primary dependencies include the Apache Portal Runtime (both apr and apr_util) as well as the OpenSSL libraries.
Autoconf is used to configure the build system. On many systems, the package may be built and installed (under /usr/local) using:
./configure && make && make install
to install the module in the default location (typically /usr/local). The build scripts will attempt to auto-resolve all dependency locations.
A list of options may be viewed by running:
./configure --help
Interesting options specifically related to the build of this module include:
--with-ssl --with-apr --with-apr-util --with-apache-headers
The module must be loaded before use. Example:
LoadModule authn_citadel_module /usr/local/lib/libmod_authn_citadel.so
The path to the module on your system may vary, and should be adjusted accordingly. The following configuration directives are used to configure Citadel authentication in a valid Apache configuration block (i.e. location or directory):
As this is a basic authentication module, The AuthType should be set to "basic" within the configuration block. The AuthBasicProvider is "citadel".
<Directory /var/www/> AuthType basic AuthBasicProvider citadel AuthName Citadel Server Require valid-user CitadelServer 127.0.0.1 CitadelPort 504 CitadelTimeout 2 CitadelUseSSL Yes CitadelMinLevel 2 Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>