ユーザ認証機能を提供します。 現在、モジュールは mod_auth.so と mod_auth_db.so と mod_auth_dbm.so および mod_auth_sqlite.so と mod_auth_pgsql.so の5種類存在します。 これらの違いは、パスワードデータの管理方法だけです。 mod_auth.so は XML形式のテキストファイルで記述し、 mod_auth_db.so は Berkeley-DB を利用し、mod_auth_dbm.so は伝統的な Unix-NDBM を利用します。mod_auth_sqlite.so は、 SQLiteデータベースを利用します。 mod_auth_pgsql.so は、 PostgreSQLデータベースを利用します。
いずれのモジュールも Basic/Digest認証に対応していますが、 パスワードデータはすべて平文(非暗号化)で保存されます。 これは、Basic/Digest認証ともに共通のデータベースで管理する仕様が原因です。 Wyvern-2.1 までは、パスワードは MD5 で符号化され保存されていました。 なお、認証モジュールを利用する場合は、 libauth.so を同時に読み込む必要があります。
サーバホスト側のユーザ認証は、設定ファイル(wyvern.conf)中の <server-root> で指定したディレクトリの下の conf ディレクトリに wauth.conf ファイルを作成することで可能です。 パスワードファイルは、 wpasswd コマンドを利用して作成します。
パス例:
/usr/local/wyvern/conf/wauth.conf
/usr/local/wyvern/etc/wpasswd.db
ユーザ側のユーザ認証は、設定ファイル(wyvern.conf)中の <user-dir> で指定したディレクトリの下の .wyvern ディレクトリに wauth.conf と パスワードファイルを置くことによってユーザ認証が可能となります。
パス例:
/home/kouichi/public_html/.wyvern/wauth.conf
/home/kouichi/public_html/.wyvern/wpasswd.db
wauth.conf ファイルは、XML形式の次の構造をとります。
<wyvern-authentication> <limit directory="/link"> <auth type="Basic"> <user>kouichi</user> <user>guest</user> </auth> </limit> <limit directory="/FreeBSD"> <auth type="Digest"> <user>kouichi</user> </auth> </limit> </wyvern-authentication>
上記の例では、/link 以下にアクセスできるのは kouichi と guestであり、 /FreeBSD 以下にアクセスできるのは kouichi だけとなります。 また、/link 以下へのアクセスでは Basic認証を、 /FreeBSD 以下へのアクセスでは Digest認証が行われます。
認証用パスワードファイルは、 wpasswd コマンドを用いて作成します。 簡単導入で Wyvern をインストールした場合は、 /usr/local/wyvern/bin/wpasswd にインストールされます。
wpasswd コマンドの書式は次のとおりです。
wpasswd [ db | dbm | sqlite ] passwordfile username
passwordfile は作成するパスワードファイル名を、 username はユーザ名を指定します。 また、認証モジュールとして mod_auth_db.so を利用する場合は "db" オプションを、mod_auth_dbm.so を利用する場合は "dbm" オプションを指定します。"sqlite" 引数は、mod_auth_sqlite.so を利用する場合に指定します。なお、SQLite3 を利用する場合は、 引数は "sqlite3" となります。
たとえば、mod_auth_db.so を利用して、 ユーザ「kouichi」をパスワードファイル「wpasswd.db」で管理する場合は、 次のように入力します。 コマンド入力後、パスワードと確認用のパスワードの入力があります。
入力例: user% /usr/local/wyvern/bin/wpasswd db wpasswd.db kouichi
同様に、mod_auth_sqlite.so を利用する場合は、 はじめにデータベースのテーブル作成をする必要があります。 これは、次のようにして簡単に作成できます。
入力例: user% sqlite ~/.wyvern/wpasswd.sqlite < /usr/local/wyvern/examples/sqlite_auth.sql
データベースへの登録は、次のように入力します。 コマンド入力後、パスワードと確認用のパスワードの入力があります。
入力例: user% /usr/local/wyvern/bin/wpasswd sqlite ~/.wyvern/wpasswd.sqlite kouichi
設定ファイルへの記述例: <wyvern> ... <module> ... <path>/usr/local/wyvern/modules/libauth.so</path> <path>/usr/local/wyvern/modules/mod_auth.so</path> <path>/usr/local/wyvern/modules/mod_auth_db.so</path> <path>/usr/local/wyvern/modules/mod_auth_dbm.so</path> <path>/usr/local/wyvern/modules/mod_auth_sqlite.so</path> ... </module> ... </wyvern>