phpMyAdminを動かす」の派生記事です。phpMyAdminをインストールしたディレクトリにDigest認証をかけます。

スポンサードリンク

Digest認証について

ブラウザから見るとBasic認証と同様の認証方式だが、認証に使うユーザー名、パスワードをMD5形式でサーバに送り認証を行う形式。

通信経路の盗聴によってユーザー名とパスワードを盗まれにくくしている。(盗まれても解読しないと使えない)

httpd.confの編集

モジュールの有効化

「mod_auth_digest」、「mod_authn_file」、「mod_authz_user」が必要になるためモジュールの有効化を行います。

設定ファイルの「/etc/httpd/conf/httpd.conf」を編集します。

・・・(略)・・・
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so ・・・・・・(1)
LoadModule authn_file_module modules/mod_authn_file.so ・・・・・・ (2)
・・・(略)・・・
LoadModule authz_user_module modules/mod_authz_user.so ・・・・・・ (3)

(1)~(3) コメントアウト(先頭に#)が付いている場合は外します。

アクセス制御の追加

phpMyAdminがインストールされているディレクトリのアクセス制限の設定をファイルの末尾に追加します。

・・・(略)・・・
<Directory "/usr/share/phpMyAdmin">
  Options none ・・・・・・ (4)
  AllowOverride AuthConfig ・・・・・・ (5)
  Order Allow,Deny ・・・・・・ (6)
  Allow from 192.168.1.
</Directory>

(4) オプションは特に設定しません。

(5) .htaccessによって認証が使えるように設定。

(6) 内部からのアクセス以外は禁止(環境によって適宜変更してください)。

サーバーの再起動

設定ファイルの変更が完了した後、サーバーを再起動します。

# service httpd restart

制御ファイルの作成

認証に用いるユーザーとパスワードを格納したファイルの作成を行います。

# htdigest -c /usr/share/phpMyAdmin/.htdigest "phpMyAdmin Access" <ユーザー名> ・・・・・・ (7)
Adding password for <ユーザー名> in realm phpMyAdmin Access.
New password: <パスワードを入力>
Re-type new password: <パスワードを再入力>

(7) “phpMyAdmin Access”と記載している部分はレルム(realm)でアクセス領域の事です。ここは何を記載しても構いませんが、次に出てくる「AuthName」の内容と一致している必要があります。

 

「.htaccess」を作成します。

# vi /usr/share/phpMyAdmin/.htaccess

以下ファイルの内容

AuthType Digest
AuthName "phpMyAdmin Access" ・・・・・・ (8)
AuthUserFile /usr/share/phpMyAdmin/.htdigest
Require valid-user ・・・・・・ (9)

(8) htdigest によって作成した時に指定したレルムを指定します。

(9) 複数ユーザーでの管理を目的としていないため「valid-user」を指定しています。
複数ユーザーでの管理を行う場合は「Require user <ユーザー名1> <ユーザー名2>」と記載します。

動作確認

ブラウザからphpMyAdminへアクセスします。

google Chomeの場合以下のようなダイアログが表示されれば成功です。

digest_01

先ほど設定したユーザー名とパスワードを使ってログインできるはずです。

 

躓いたところ

認証ダイアログが表示されない場合

phpMyAdminをyumでインストールするとディレクトリは「/usr/share/phpMyAdmin」になります。

そのためhttpd.conf に「<Directory “/usr/share/phpMyAdmin/”>~</Directory>」の中に「AllowOverride AuthConfig」を記載しているか確認してください。

ログインできない場合

私の場合はLoadModuleで「mod_authz_user」をコメントアウトしていたため、Digest認証を通らない状態になっていました。

/var/log/httpd/error_log に「Digest: invalid nonce xxxxxxxxxxx received – length is not 52」のようなログが出ていた場合は「httpd.conf」の設定を確認してみてください。

トラックバック

トラックバックURL:

トラックバック & ピンバック

コメントはまだありません。

作ったもの

種牡馬メモサイト

フリーダムウォーズ素材メモサイト

月別アーカイブ

つぶやき

更新記録カレンダー

2019年8月
« 1月    
 1234
567891011
12131415161718
19202122232425
262728293031  

参考書籍

XHTML/HTML+CSSスーパーレシピブックXHTML/HTML+CSSスーパーレシピブック
エ・ビスコム・テック・ラボ

毎日コミュニケーションズ
売り上げランキング : 74419

Amazonで詳しく見る
現場のプロから学ぶXHTML+CSS現場のプロから学ぶXHTML+CSS
益子 貴寛,堀内 敬子,小林 信次,千貫 りこ,伊藤 学,山田 あかね,西畑 一馬,CSS Nite

毎日コミュニケーションズ
売り上げランキング : 39400

Amazonで詳しく見る