Gentoo Linuxな生活​/サーバ設定関連

もともとユーザ認証が無いページに認証を追加する anchor.png

ログイン画面がないページだけど、ユーザ認証させたいようなときってありますよね。これを実現してみたいと思います。方法は2種類あります。

  • htpasswdという平文認証を用いるパターン
  • htdigestというMD5暗号化認証を用いるパターン

htpasswdだとネット上を平文でパスワードが流れるため、結構危険です。これはいやなので、MD5ダイジェスト認証を用いる方法で行ってみます。

Page Top

まずパスワードファイルを作る。 anchor.png

パスワードファイルを作ってみましょう。このパスワードは、基本的にapacheからアクセスできるコンテンツの中に入れるのはセキュリティ上好ましくないので、/etc/apache2に下においてみます。

# htdigest2 -c /etc/apache2/userpasswd "User Only" testuser  (パスワードファイルを新たに作成する場合)
# htdigest2 /etc/apache2/userpasswd "User Only" testuser      (すでにあるパスワードファイルに、エントリを追加する場合)
Adding password for a in realm User Only.
New password: パスワード
Re-type new password: パスワード

これでtestuserさんのパスワードがこのファイルに設定されました。で、このパスワードファイルの情報を使って認証させたいページを、先ほど登場したhttp://foo.bar.com/boardにしたいとします。

Page Top

apacheの設定を変更する anchor.png

ここで、/etc/apache2/conf/commonapache2.confを開きます。

<Directory /home/var/www/localhost/htdocs/board>
   Options -Indexes FollowSymLinks MultiViews
   AllowOverride All
   SSLRequireSSL   ←SSLしかゆるしません(一つ前の設定が残ってるのね)
   AuthType Digest  ←MD5ダイジェスト認証を要求 
   AuthName "User Only" ポップアップするパスワード入力窓に表示させるメッセージ
   AuthDigestFile /etc/apache2/userpasswd ←パスワードファイルの指定
   require valid-user       ←パスワードファイルに記述されている全てのユーザが参照できる
  <IfModule mod_access.c>
         Order deny,allow
         Allow from all
   </IfModule>
</Directory>

で、apacheを再起動します

# /etc/init.d/apache2 restart

この設定ですと、http://foo.bar.com/boardだとForbiddenですね。https://foo.bar.com/boardだと、パスワード入力窓がポップアップします。ユーザ名、パスワードを入力してOKだと画面が参照できます。NGだと、アクセスがはじかれますよね?これで完成っす♪


トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 3708, today: 1, yesterday: 0
初版日時: 2009-08-19 (水) 01:12:17
最終更新: 2010-05-05 (水) 20:02:30 (JST) (2581d) by maruo
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード