mysql:8860
From: 杉本誠 <杉本誠 <sugimoto@xxxxxxxxxx>>
Date: Mon, 23 Feb 2004 10:34:25 +0900
Subject: [mysql 08860] mod_auth_mysql のパスワード暗号化について
お世話になります。はじめて投稿します。
すぎもとといいます。よろしくお願いします。
早速ですが、ご教授いただければ幸いです。
社内イントラで、mod_auth_mysqlを使用し、MySQL上で暗号化パスワードの利用を
考えています。
しかし、通常のテキストなら認証OKなのですが、パスワードフィールドを暗号化する
と認証できなくなってしまいます。
環境は以下の通りです。
OS: WindowsNT4.0SP6a
WebServer: Apache1.3.24
MySQL :3.23.55
使用データベースとテーブル authdb 、authtable
●Apache httpd.confのmod_auth_mysql関係部分抜粋
LoadModule mysql_auth_module modules/mod_auth_mysql.so
<IfModule mod_auth_mysql.c>
<Location /restricted>
AuthName "MySQL Secured Place"
AuthType Basic
require valid-user
AuthMySQLHost localhost
AuthMySQLDB authtdb
AuthMySQLUser apache
AuthMySQLPassword PaSsWorD
AuthMySQLUserTable authtable
AuthMySQLNameField username
AuthMySQLPasswordField password
AuthMySQLCryptedPasswords On
</Location>
</IfModule>
●認証対象のディレクトリの.htaccess
AuthName "このページはパスワード制限されています"
AuthType Basic
require valid-user
AuthMySQLHost localhost
AuthMySQLDB authdb
AuthMySQLUser apache
AuthMySQLPassword PaSsWorD
AuthMySQLUserTable authtable
AuthMySQLNameField username
AuthMySQLPasswordField password
AuthMySQLCryptedPasswords On
これら2つの設定は、mod_auth_mysqlの付属サンプルほぼそのままです。
●authtableにユーザーを追加するSQL
INSERT INTO authtable (username, password) VALUES('sugimoto', password('abcd'));
password()関数で、確かに暗号化されますが、それを正しくBasic認証することが出来ません。
password()を使用せずにBasic認証すると、OKとなります。
AuthMySQLCryptedPasswords Onで暗号化対応だと思うのですが、プレーンテキストで
認証してしまいます。
いろいろ調べて、暗号化がpassword()関数ではなく、encrypt()関数を使用するという記
述に行き当たりましたが、WinNT用MySQLでは使用できないとの事でした。
mod_auth_mysqlはバージョンによって、設定方法がかなり違うようで、試行錯誤しています。
何かヒントでもいただければ幸いです。
以上、よろしくお願いいたします。
-> 8860 2004-02-23 10:34 [杉本誠 <sugimoto@xxx] mod_auth_mysql のパスワード暗号化について 8862 2004-02-23 22:31 ┣["A.K.I." <aki@xxxxxx] 8865 2004-02-24 10:31 ┃┗[杉本誠 <sugimoto@xxx] 8863 2004-02-23 23:04 ┗[tateyan <tateyan@xxx] 8864 2004-02-23 23:35 ┣[tateyan <tateyan@xxx] 8867 2004-02-24 11:06 ┃┗[杉本誠 <sugimoto@xxx] 8866 2004-02-24 10:43 ┗[杉本誠 <sugimoto@xxx]