この文書は、 ftp://ftp.eurolink.it/pub/linux/www/mod_auth_pgsqlから ダウンロードできる auth_pgsql_0.6.tgz に添付されている mod_auth_pgsql.html ファイルを翻訳したものです。文中で postgre95 となっている箇所は、訳者の判断で PostgreSQL に対応したものに 置き換えてあります。当然無保証ですので、 At your own risk でお使い下さい。
翻訳者:堀田 倫英(hotta@net-newbie.com) 1998/08/19
(2000/10/18) ダウンロード先の URL を変更しました。 文章の変更には追随できていません。
このモジュールにより、PostgreSQL に格納されている情報に対してユーザ認証を行うことができるようになります。 PostgreSQL はパブリック・ドメインの SQL データベースです。
1 つのデータベース、および 1 つ(または 2 つ)のテーブルが必要です。 1 つのテーブルにはユーザ名と暗号化されたパスワードを保持して います。もう 1 つのテーブルはユーザ名、およびユーザが属するグループ名 を保持しています。ユーザ名、グループ名およびパスワードを同じテーブルに 持つこともできます。
このページは、mod_auth_pgsql.c の version 0.6 (July 1998) に関する ドキュメントです。
例 | 技術情報 | コンパイル情報 | ユーティリティ・プログラム
postmasterが動作しているホストを指定します。
postmasterに接続するための TCP/IP ポート番号を指定します。
PostgreSQL バックエンド・プロセスへ渡されるオプション文字列を 指定します。使用できるオプションについては、PostgreSQL のユーザーズ・ マニュアルを参照して下さい。
認証情報が格納されているデータベースの名前を指定します。
ユーザ名とパスワード情報が入っているリレーションの名前を 指定します。
ユーザ名とグループ情報が入っているリレーションの名前を 指定します。これは Auth_PGpwd_table と同じテーブル名を指定 することができます。このディレクティブは、ユーザ名/グループ名 で認証を行いたい場合のみ必要となります。
Auth_PGpwd_table リレーションの中の、ユーザ名を保持する フィールドの属性名を指定します。
Auth_PGpwd_table リレーションの中の、暗号化されたパスワードを 保持するフィールドの属性名を指定します。
Auth_PGgrp_table リレーションの中の、グループ名を保持する フィールドの属性名を指定します。
このオプションはデフォルトでは off です。これを on にすると、 パスワード・フィールドが空であるユーザも有効となります。入力 されたパスワードは無視されます。on にする場合は運用に注意して下さい。
このオプションはデフォルトでは on です。これを off にすると、 ユーザが見つからないとか単純な構成エラーなどの低レベルのエラー が発生した場合、ここのエリアをスキップして、別の認証ディレクティブ を評価するようにすることができます。 たとえば、親ディレクトリが別の認証機構を持っていて、ユーザ名が PostgreSQL 機構で見つからない場合、親ディレクトリの認証機構に制御が 移り、そこで改めてユーザ認証が行われます。このオプションを off にする 場合は運用に注意して下さい。セキュリティ・リスクになり得ます。
デフォルトは on です。データベース中の、このモジュールが期待する パスワードが暗号化されているかどうかを制御します。off にすると、 暗号化されてないパスワードをデータベース中で使用することができます。 off にする場合は運用に注意して下さい。
このオプションは、データベースからユーザ名とパスワードを取り出す 際に使われる SQL コードに対して、重要な制御を行うことができるように するものです。これを利用すると、ユーザ名を検索する際に、データベース 中のパスワード・フィールドに加えて、より多くの属性を使うことができる ようになります。
検査するためのユーザのパスワードを取り出すのに使われる、基本的な SQL ステートメントは以下のようになっています。
pwd_whereclause はこのステートメントの末尾に付加されます。 また、これは論理的に整合が取れていなければなりません。
このオプションは、データベースからグループ名とそれに対応するユーザ名 を取り出す際に使われる SQL コードに対して、重要な制御を行うことができる ようにするものです。これを利用すると、グループ名を検索する際に、 データベース中のグループ ID フィールドに加えて、より多くの属性を使う ことができるようになります。
検査するためのグループ名とユーザ名を取り出すのに使われる、 基本的な SQL ステートメントは以下のようになっています。
gid_whereclause は、このステートメントの末尾に付加されます。 また、これは論理的に整合が取れていなければなりません。
これは、PostgreSQL 認証を有効にするために使う、 .htaccess ファイルの例です。
Auth_PGhost localhost Auth_PGport 5432 Auth_PGdatabase www Auth_PGpwd_table valid_users Auth_PGuid_field user Auth_PGpwd_field password AuthName My Postgres95 Authenticator AuthType basic <LIMIT GET POST> require valid-user </LIMIT>
このモジュールをコンパイルしてあなたのサーバに組み込む場合は、 インストール済みの PostgreSQL ライブラリが必要です。これは一般的には /usr/local/pgsql にあります。以下の記述をあなたの構成ファイルに 追加する必要があるでしょう。
Module pg95_auth_module mod_auth_pg95.o
PostgreSQL の認証モジュールには、 David H. Bennett (dave@bensoft.com) によって書かれた Perl スクリプトのコマンドライン・ユーティリティが 含まれています。これを使えば、あなたの認証データベースにユーザを追加 したりパスワードを変更したりすることができます。これを使うには、 pg95perl が必要ですが、これは PostgreSQL ホームページで入手可能です。
必要に応じて、スクリプトの先頭にいくつかの変数を設定することが できます。