|
||||||
| ▲IT関連情報へ戻る | ||||||
|
▼番外編(mod_auth_pgsql) (2004/10/07)
今回はちょっとネットワークとは直接関係のない話です。ですが、まったく関係がないわけでもなく、また、個人的にとても重要なことなので、ここに掲載いたしました。
●mod_auth_pgsql
「mod_auth_pgsql」をみなさんご存知でしょうか。apacheのbasic認証をhtpasswdで作成したファイルではなく、PostgresのDBの情報を元に行うというものです。認証IDが多い場合や、DBに入っている情報を元に認証の条件をより複雑なものにしたい場合などに重宝します。
大変便利なのですが、サーバがapache2になった場合に苦労する点があります。今回はその点について解説します。つまり「apache2を使っている」人で「Postgres」のDBを入れていて、認証に「mod_auth_pgsqlを利用」していてさらに「困っている」人限定ページです。実はその使い方によって、さらに少数の人間に絞り込まれるのですが、ここまで来るとこのページが有効である人の数は壊滅状態に近いです。どのぐらい壊滅的かについても一緒に解説していきましょう。 まず、今回覚えていただきたいことは次の2点です。
順番に一つずつ見ていきましょう。
●「Auth_PG_gid_field」が「Auth_PG_grp_group_field」に変更された
apacheのmod_auth_pgsqlでグループ認証を行っていた方ならご存知かと思いますが、「Auth_PG_gid_field」というdirectiveがあります。ところがapache2のモジュールではこれが「Auth_PG_grp_group_field」という名前に変更になっています。
Home Page http://www.giuseppetanzilli.it/mod_auth_pgsql2/ 上記が公式のページらしいのですが、「Directives」には「Auth_PG_grp_group_field」がありません(ように思います:2004年10月7日現在)。「Auth_PG_gid_field」が掲載されています。 ではなぜ変更になったことがわかるのか。 このページの下の方で更新履歴(「Changelog」)があります。 「 - renamed Auth_PG_gid_field to Auth_PG_grp_group_field」 ありました。1行だけです。というわけで、apacheからapache2へ移行して、mod_auth_pgsqlのグループ認証で困っていた人、これで解決です。 この情報がどれほど役に立つ情報かと言うと、 ・「Auth_PG_grp_group_field」をgoogleで検索(日本語のみ:2004年10月7日現在) →3件中似たページを除いて1件 日本ではほとんど使われていないのでしょうか。 ●グループテーブルの方の個別認証IDは「Auth_PG_grp_user_field」で指定する
個別認証IDという呼称が正しいのかどうかわかりませんが、「Auth_PG_uid_field」で指定したフィールドのことです。apacheのmod_auth_pgsqlではグループテーブルの方の個別認証IDは「Auth_PG_uid_field」で指定したフィールドと同じ名称ということになっていました。
ところがapache2の方のモジュールではこのままほっておくと、「PG: Missing parameters for password lookup: Group table user field name」というようなエラーが出て、認証されません。どうやらグループテーブルと認証テーブルとがうまく連携していないようです。そこで次のdirectiveが登場します。 「Auth_PG_grp_user_field」 ここにグループテーブルの方の個別認証IDを指定すると、グループテーブルと認証テーブルが同期を取るようになるようです。 さて、前述の公式ページですが、「Directives」には「Auth_PG_grp_user_field」がありません(ように思います:2004年10月7日現在)。 ではなぜ追加されたことがわかるのか。 このページの下の方で更新履歴(「Changelog」)があります。 「- added Auth_PG_grp_user_field」 ありました。1行だけです。これについてはどう使うのかの説明すらありません。勘です。というわけで、apacheからapache2へ移行して、mod_auth_pgsqlのグループ認証でさらに困っていた人、これで解決です。 この情報がどれほど役に立つ情報かと言うと、 ・「Auth_PG_grp_user_field」をgoogleで検索(日本語のみ:2004年10月7日現在) →ヒットしません。 ・「Auth_PG_grp_user_field」をgoogleで検索(世界全体:2004年10月7日現在) →14件中似たページを除いて8件。 世界でもほとんど使われていないのでしょうか。 ●サンプル
最後に「httpd.conf」への記述サンプルを掲載しておきます。
-------------------------------- Auth_PG_host localhost Auth_PG_port 5432 Auth_PG_database bakadb Auth_PG_user bakamaster Auth_PG_pwd bakapass Auth_PG_pwd_table usertbl Auth_PG_uid_field userid Auth_PG_pwd_field userpass Auth_PG_grp_table grouptbl Auth_PG_grp_group_field groupid Auth_PG_grp_user_field userid Auth_PG_encrypted off AuthName "bakasection1" Authtype Basic Require group sec1 -------------------------------- こんな感じで設定したらどうでしょうか。 「Auth_PG_encrypted」はパスワードの保存状況次第で変えてください。
|
||||||
|
ご意見・お問合せはinfo@satram.jpまで Copyright 2003 Satellite RAMBLING. All rights reserved. |
||||||