basic認証

muramatsu 45views 更新:2016年9月14日

ページに飛んだ時にそのページに鍵をかけられるbasic認証
apacheのbasic認証したい時の手順を軽く説明します。 まずそのbasic認証を通したいユーザーを作成します

htpasswd -bc /etc/httpd/.htpasswd 任意のユーザー名 任意のパスワード
#-b オプションは引数にユーザーとパスワードを指定することでそのまま作れる
#-c オプションは新しいユーザーの作成の時に使うオプション(元々あった場合は上書き)

これでユーザーが作れます
apacheの設定です。
/etc/httpd/conf/httpd.conf(デフォルトの設定で)を編集します

#ページの最初にbasic認証したい場合は<Directory /var/www/html>から</Directory>の間にもしページごとにしたい場合はページのファイルにbasic認証の設定必要があるかもしれないです(例えば/var/www/html/index.phpのページに作りたい場合はhttpd.confのどっかにそれ用のディレクティブをつくって上げる感じです 後述参照 でbasic認証を設定する形だと思います)
<Directory "/var/www/html">
#認証のタイプ 今回はbasicなのでBasicと指定
       AuthType Basic

#どこに対する認証なのか
    AuthName "Please enter ID and password"

#認証に必要なモジュールを指定する(今回は htpasswdコマンドでユーザーを指定しているのでそのモジュールは mod_authn_file なのでfileと指定 他にも dbd dbm defulat などがあるがそれぞれモジュールが必要 dbd なら mod_authn_dbd というモジュールが必要 デフォルトでは mod_authn_fileを指定されている 
#またモジュールが入ってるはずなのに動かない場合はhttpd.confでモジュールを読み込んでいない可能性がありますそのときは httpd.conf に Loadmodule hogehoge.module な感じで読み込ませるか Include *.conf(デフォルト)で読み込ませる感じでもしかしたら行けるかもしれません)
    AuthBasicProvider file

#パスワードファイルがどこに有るか(/etc/httpd/.htpasswd でユーザーを作ったのでそこを指定)
    AuthUserFile /etc/httpd/.htpasswd

#認証が通ったユーザーのアクセス許可するかできる(つまり認証が通ってもユーザーを指定すればアクセスを弾くことが出来る 今回は vaild-userという認証が通ったユーザー全てのアクセスを許可する設定)
    Require valid-user

という感じです あとはhttpdを再起動してあげれば設定完了だと思われます もしページを指定したいなら

<Directory "/var/www/html/hogehoge.php>

という感じに httpd.confに新しくディレクィブを作ってあげて上記と同じように認証形式やユーザーファイルの場所を指定あげて

</Directory>

で挟んであげればそこのページをbasic認証できるはずです

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません