※ ChatGPTを利用し、要約された質問です(原文:データベース(GDBM)を使ったBasic認証)
データベースを使ったBasic認証でセキュリティを強化しよう
このQ&Aのポイント
違うサーバーで正常に稼働していたBasic認証の環境をそのまま別のサーバーで再現したいのですが、うまくいきません。
旧環境では、あるWEBページにアクセスするとBasic認証が行われて、正しいIDとパスワードを入れればページを閲覧できます。しかし、新環境ではすべてのIDとパスワードが拒否されてしまいます。
初心者なので要領が悪い質問になっているかもしれませんが、手がかりだけでもつかみたいと思います。補足すべき情報などがありましたらご教示ください。
違うサーバーで正常に稼働していたBasic認証の環境をそのまま別のサーバーで再現したいのですが、うまくいきません。旧環境では、あるWEBページにアクセスするとBasic認証が行われて、正しいIDとパスワードを入れればページを閲覧できます。新環境ではすべてのIDとパスワードが拒否されてしまいます。
旧環境 → RHEL+Apache(バージョン不明ですがかなり古いです)
新環境 → CentOS6.0 + Apache2.3
この認証環境ではユーザー情報のファイルにデータベースを使用しています。
fileコマンドでこのファイルを調べたところ、以下のようになっていました。
.userfiledb.dbm: GNU dbm 1.x or ndbm database, little endian
httpd.confの設定は以下のようになっており、新環境でも同じ設定にしてあります。
<Directory /path>
AllowOverride AuthConfig
Order allow,deny
Allow from all
AuthType Basic
AuthDBMType GDBM
AuthName "TEST"
AuthDBMUserFile /path/.userfiledb.dbm
Require valid-user
</Directory>
ただし、旧環境では mod_auth_dbm.so がロードされているところ、新環境では mod_authn_dbm.so がロードされています。
新環境でも通常の .htpasswd を使った認証はきちんと動作します。
CGIなどの動作もまったく問題ありません。
初心者なので要領が悪い質問になっていると思いますが、手がかりだけでもつかみたいと思います。補足すべき情報などがありましたらご教示ください。
よろしくお願いします。
お礼
ご回答ありがとうございます。 原因は違うようですが、参考になりました。