README

# Courier Authentication Library

This is the Courier authentication library. Copies of this library code used to exist in other tarballs: Courier, Courier-IMAP, and SqWebMail. Building and installing any of these packages would've automatically installed this authentication code.

The authentication library is now a separate, standalone package. This authentication library must now be installed, separately, before upgrading to the following builds (or if installing them for the first time): Courier 0.48, Courier-IMAP 4.0, and SqWebMail 5.0. See NEWS for more information.

Download: http://www.courier-mta.org/download.php#authlib

## Overview

The Courier authentication library provides authentication services for other Courier applications. In this context, the term "authentication" refers to the following functions:

1. Take a userid or a loginid, and a password. Determine whether the loginid and the password are valid.
2. Given a userid, obtain the following information about the userid:
   1. The account's home directory.
   2. The numeric system userid and groupid that owns all files associated with this account.
   3. The location of the account's maildir.
   4. Any maildir quota defined for this account. See the Courier documentation for more information on maildir quotas.
   5. Other miscellaneous account-specific options.
3. Change the password associated with a loginid.
4. Obtain a complete list of all loginids.

The Courier authentication library provides alternative implementations of these authentication services:

1. Use the traditional system password files: `/etc/passwd` and `/etc/shadow`, possibly in conjunction with the PAM library.
2. Maintain all this information in a GDBM or a DB database. The GDBM or the DB database is compiled from plain text files. Perl scripts provide a simple interface for creating and editing the authentication information, then a script compiles the plain text files into a database.
3. Use an LDAP server for authentication.
4. Use a table in a MySQL database for authentication.
5. Use a table in a PostgreSQL database for authentication.

All Courier components that use this authentication library, therefore, will be able to authenticate E-mail accounts using any of the above methods.

Additional information can be found in the INSTALL file.

The authentication API is documented.

## Further resources

Subscribe to the courier-users mailing list. Go to `http://lists.sourceforge.net/mailman/listinfo/courier-users` to subscribe to courier-users, or send a message to `<courier-users-request``@lists.sourceforge.net>` and put "subscribe" in the subject line. Search the list archives at http://markmail.org/browse/net.sourceforge.lists.courier-users.