Table of Contents

Apache Module for Citadel Authentication

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.

Quick Links

Features

Dependencies

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.

Compilation and Installation

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

Usage

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”.

Example configuration

<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>

To-Do

Developer

Stuart Cianos scianos@alphavida.com