ikiwiki/ plugins/ httpauth

Plugin: httpauth
Author: Alec Berryman
Included in ikiwiki: yes
Enabled by default: no
Included in goodstuff: no
Currently enabled: yes

This plugin allows HTTP basic authentication to be used to log into the wiki. In this mode, the web browser authenticates the user by some means, and sets the `REMOTE_USER CGI` environment variable. This plugin trusts that if that variable is set, the user is authenticated.

## fully authenticated wiki

One way to use the plugin is to configure your web server to require HTTP basic authentication for any access to the directory containing the wiki (and `ikiwiki.cgi`). The authenticated user will be automatically signed into the wiki. This method is suitable only for private wikis.

## separate cgiauthurl

To use httpauth for a wiki where the content is public, and where the `ikiwiki.cgi` needs to be usable without authentication (for searching, or logging in using other methods, and so on), you can configure a separate url that is used for authentication, via the `cgiauthurl` option in the setup file. This url will then be redirected to when a user chooses to log in using httpauth.

A typical setup is to make an `auth` subdirectory, and symlink `ikiwiki.cgi` into it. Then configure the web server to require authentication only for access to the `auth` subdirectory. Then `cgiauthurl` is pointed at this symlink.

## using only httpauth for some pages

If you want to only use httpauth for editing some pages, while allowing other authentication methods to be used for other pages, you can configure `httpauth_pagespec` in the setup file. This makes Edit links on pages that match the PageSpec automatically use the `cgiauthurl`, and prevents matching pages from being edited by users authentication via other methods.

## Using httpauth with nginx

You have to pass the $remote_user variable to the CGI:

    location /ikiwiki.cgi {
        fastcgi_param REMOTE_USER $remote_user if_not_empty;
        ....
    }