]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/plugins/httpauth.mdwn
httpauth: Recommend if_not_empty parameter for REMOTE_USER
[git.ikiwiki.info.git] / doc / plugins / httpauth.mdwn
index 11ed223e7f7f083c537042fbbc1fe4ebaeb4ce67..b2f789b8e6ad27f30e288cf0c38e22396c9ca63f 100644 (file)
@@ -2,8 +2,45 @@
 [[!tag type/auth]]
 
 This plugin allows HTTP basic authentication to be used to log into the
 [[!tag type/auth]]
 
 This plugin allows HTTP basic authentication to be used to log into the
-wiki. To use the plugin, your web server should be set up to perform HTTP
-basic authentiation for at least the directory containing `ikiwiki.cgi`. 
-The authenticated user will be automatically signed into the wiki.
+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.
 
 
-This plugin is included in ikiwiki, but is not enabled by default.
+## 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 [[ikiwiki/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;
+        ....
+    }