(翻訳者より)

この文書は、 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 を変更しました。 文章の変更には追随できていません。

mod_auth_pgsql モジュール

PostgreSQL 認証

このモジュールにより、PostgreSQL に格納されている情報に対してユーザ認証を行うことができるようになります。 PostgreSQL はパブリック・ドメインの SQL データベースです。

1 つのデータベース、および 1 つ(または 2 つ)のテーブルが必要です。 1 つのテーブルにはユーザ名と暗号化されたパスワードを保持して います。もう 1 つのテーブルはユーザ名、およびユーザが属するグループ名 を保持しています。ユーザ名、グループ名およびパスワードを同じテーブルに 持つこともできます。

このページは、mod_auth_pgsql.c の version 0.6 (July 1998) に関する ドキュメントです。

| 技術情報 | コンパイル情報 | ユーティリティ・プログラム

ディレクティブ


Auth_PGhost

書式: Auth_PGhost ホスト名
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

postmasterが動作しているホストを指定します。

Auth_PGport

書式: Auth_PGport ポート番号
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

postmasterに接続するための TCP/IP ポート番号を指定します。

Auth_PGoptions

書式: Auth_PGoptions オプション文字列
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

PostgreSQL バックエンド・プロセスへ渡されるオプション文字列を 指定します。使用できるオプションについては、PostgreSQL のユーザーズ・ マニュアルを参照して下さい。

Auth_PGdatabase

書式: Auth_PGdatabase データベース名
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

認証情報が格納されているデータベースの名前を指定します。

Auth_PGpwd_table

書式: Auth_PGpwd_table リレーション名
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

ユーザ名とパスワード情報が入っているリレーションの名前を 指定します。

Auth_PGgrp_table

書式: Auth_PGgrp_table リレーション名
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

ユーザ名とグループ情報が入っているリレーションの名前を 指定します。これは Auth_PGpwd_table と同じテーブル名を指定 することができます。このディレクティブは、ユーザ名/グループ名 で認証を行いたい場合のみ必要となります。

Auth_PGuid_field

書式: Auth_PGuid_field 属性名
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

Auth_PGpwd_table リレーションの中の、ユーザ名を保持する フィールドの属性名を指定します。

Auth_PGpwd_field

書式: Auth_PGpwd_field 属性名
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

Auth_PGpwd_table リレーションの中の、暗号化されたパスワードを 保持するフィールドの属性名を指定します。

Auth_PGgid_field

書式: Auth_PGgid_field 属性名
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

Auth_PGgrp_table リレーションの中の、グループ名を保持する フィールドの属性名を指定します。

Auth_PG_nopasswd

書式: Auth_PG_nopasswd on または off
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

このオプションはデフォルトでは off です。これを on にすると、 パスワード・フィールドが空であるユーザも有効となります。入力 されたパスワードは無視されます。on にする場合は運用に注意して下さい。

Auth_PG_authorative および Auth_PG_authoratative

書式: Auth_PG_authorative on または off
書式: Auth_PG_authoratative on または off
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

このオプションはデフォルトでは on です。これを off にすると、 ユーザが見つからないとか単純な構成エラーなどの低レベルのエラー が発生した場合、ここのエリアをスキップして、別の認証ディレクティブ を評価するようにすることができます。 たとえば、親ディレクトリが別の認証機構を持っていて、ユーザ名が PostgreSQL 機構で見つからない場合、親ディレクトリの認証機構に制御が 移り、そこで改めてユーザ認証が行われます。このオプションを off にする 場合は運用に注意して下さい。セキュリティ・リスクになり得ます。

Auth_PG_encrypted

書式: Auth_PG_encrypted on または off
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

デフォルトは on です。データベース中の、このモジュールが期待する パスワードが暗号化されているかどうかを制御します。off にすると、 暗号化されてないパスワードをデータベース中で使用することができます。 off にする場合は運用に注意して下さい。

Auth_PGpwd_whereclause

書式: Auth_PGpwd_whereclause SQL 文の一部
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

このオプションは、データベースからユーザ名とパスワードを取り出す 際に使われる SQL コードに対して、重要な制御を行うことができるように するものです。これを利用すると、ユーザ名を検索する際に、データベース 中のパスワード・フィールドに加えて、より多くの属性を使うことができる ようになります。

検査するためのユーザのパスワードを取り出すのに使われる、基本的な SQL ステートメントは以下のようになっています。

pwd_whereclause はこのステートメントの末尾に付加されます。 また、これは論理的に整合が取れていなければなりません。

Auth_PGgrp_whereclause

書式: Auth_PGgrp_whereclause SQL 文の一部
Context: directory, .htaccess
Override: AuthConfig
Status: Extension

このオプションは、データベースからグループ名とそれに対応するユーザ名 を取り出す際に使われる 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>

技術情報

  • ユーザ名またはグループ名を取り出すために使われる SQL ステートメントが 2 つ以上のタプルを返した場合、それはエラーと見なされます。これが起こる 可能性があるのであれば、Auth_PGpwd_whereclause や Auth_PGgrp_whereclause を使って、タプルを 1 つだけしか返さないようなクエリーを作るようにします。
  • コンパイル情報

    このモジュールをコンパイルしてあなたのサーバに組み込む場合は、 インストール済みの PostgreSQL ライブラリが必要です。これは一般的には /usr/local/pgsql にあります。以下の記述をあなたの構成ファイルに 追加する必要があるでしょう。

    ユーティリティ・プログラム

    PostgreSQL の認証モジュールには、 David H. Bennett (dave@bensoft.com) によって書かれた Perl スクリプトのコマンドライン・ユーティリティが 含まれています。これを使えば、あなたの認証データベースにユーザを追加 したりパスワードを変更したりすることができます。これを使うには、 pg95perl が必要ですが、これは PostgreSQL ホームページで入手可能です。

    必要に応じて、スクリプトの先頭にいくつかの変数を設定することが できます。