Introduction
------------

This package contains the Apache module for user authentication using the
WebAuth authentication system.  It is not useful by itself; your site also
needs to be running a WebAuth infrastructure including a separate WebKDC
and weblogin server.  See the libapache2-mod-webkdc and webauth-weblogin
packages for the WebKDC server and weblogin server.

There is always a closely-related module to do attribute lookup in LDAP
after a successful WebAuth authentication and put that information in the
environment or use it for authorization.  For that module,
mod_webauthldap, install the libapache2-mod-webauthldap package.

You can install the webauth-tests package to get a test suite that you can
use to verify that your installation is working.  See the documentation of
that package for more information.

mod_webauth.html.en has the formatted manual, but it expects to be viewed
as part of the Apache documentation tree.  If you wish, you can install
the apache2-doc package and copy this file to:

    /usr/share/doc/apache2-doc/manual/mod

and you will then be able to read it as intended.

See:

    <http://webauth.stanford.edu/>

for more information about WebAuth, including copies of the module manuals
and places to contact to get help with the installation.


Configuring WebAuth
-------------------

There are several steps in configuring WebAuth that cannot (easily) be
automated, so this module is not active and available immediately after
installing this package.  You must also do the following:

 1. Determine your local site WebAuth configuration.  You need to know
    three pieces of information:  the URL of the WebKDC service, the URL
    of the WebLogin service, and the Kerberos principal used by the
    WebKDC.  These should be part of your local WebAuth documentation.

    If you are setting up a new WebAuth installation from scratch, install
    the libapache2-mod-webkdc and webauth-weblogin packages on the system
    that will serve as the WebKDC and weblogin server, follow their
    installation instructions, and then return to here.

 2. Obtain a Kerberos keytab for your WebAuth server.  How to obtain a
    keytab varies greatly from one Kerberos site to the next; contact your
    local Kerberos administrator for more information.  Normally, the
    principal for the WebAuth service on www.example.com would be named
    webauth/www.example.com (in your local realm), but this may vary at
    your site.

    However you get this keytab, install it in /etc/webauth/keytab and
    then make sure that it is readable by the web server:

        chgrp www-data /etc/webauth/keytab
        chmod 640 /etc/webauth/keytab

 3. Enable the WebAuth module and the generic user authorization module:

        a2enmod authz_user
        a2enmod webauth

    You can skip enabling authz_user if you won't be using directives of
    the form "Require user" or "Require valid-user", but since these
    directives are used in WebAuth tests and in much of the documentation,
    I recommend enabling that module to avoid confusion.

    The WebAuth module will now be loaded the next time you restart your
    Apache server.  Don't restart the server yet; you still need to
    configure the module.

 4. Add the following configuration to:

        /etc/apache2/conf-available/webauth.conf

    (or wherever you prefer to put local Apache configuration):

        WebAuthLoginURL <weblogin-url>
        WebAuthWebKdcURL <webkdc-url>
        WebAuthWebKdcPrincipal <webkdc-principal>

    where <weblogin-url>, <webkdc-url>, and <webkdc-principal> are the
    local configuration values that you obtained in step 1.  Then enable
    that configuration file with:

        a2enconf webauth

 5. Restart Apache:

        apache2ctl graceful

At this point, WebAuth authentication is available.  In order to protect a
section of your web site with WebAuth, just add something like:

    AuthType WebAuth
    require user example

to a <Location>, <Directory>, or <Files> block or a .htaccess file.  For
more complex access control using LDAP, see libapache2-mod-webauthldap.

 -- Russ Allbery <rra@debian.org>, Sun,  2 Jun 2013 10:19:38 -0700
