4月 7th, 2008at 12:08

Tags:

Apache2.0.55でBasic認証を設定する

Basic認証は「基本認証」とも呼ばれる。HTTPプロトコルが備える、もっとも基本的なユーザ認証方式のため、こう呼ばれる。

注意としては、ユーザ名、パスワードは暗号化されずクリアテキストで送受信される。よって、簡単に盗聴や改ざんが可能というわけだ。どのWebブラウザ、Webサーバでも利用できるのがウリ。

参考:IT用語辞典

Basic認証の設定

Apacheには2種類の設定方法があるらしい。

httpd.confによる設定

このファイルは以下のフォルダにあるはず。

Apache_home\conf

その364行目あたりに以下の行を追加する。

## Control access to UserDir directories.  The following is an example# for a site where these directories are restricted to read-only.##<Directory "C:/Program Files/Apache Group/Apache/users">#    AllowOverride FileInfo AuthConfig Limit#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec#    <Limit GET POST OPTIONS PROPFIND>#        Order allow,deny#        Allow from all#    </Limit>#    <LimitExcept GET POST OPTIONS PROPFIND>#        Order deny,allow#        Deny from all#    </LimitExcept>#</Directory>

#ここからが追加分です<Directory "C:\website">    AuthUserFile "C:\apache\.htpasswd"    AuthName "あなたは誰?私はナウシカ・・・"    AuthType Basic    Require valid-user</Directory>
  • Directory
    Basic認証をかけるフォルダ。ルートフォルダを指定してあげる。

AuthUserFile
下で作成するユーザ名とパスワードが記入されたファイルの場所。

AuthName
認証ダイアログで表示する文字列。文字化けする場合はhttpd.confの文字コードがShift-JISになっているか確認。

AuthType
Basic認証なら「Basic」。「Digest」と指定してダイジェスト認証にすることも可能。ただダイジェスト認証ができないブラウザがあるかもしれないらしい。

Require valid-user
.htpasswdに書かれているユーザを認証するという意味。

もっと詳しく知りたいならミケネコの htaccess リファレンスがとても詳しく書かれている。

さらに上で書かれている「.htpasswd」ファイルを作成する。
コマンドプロンプトを開いて以下を打ち込む。

>cd C:\Apache Group\Apache\bin>htpasswd.exe -c c:\.htpasswd ユーザ名Automatically using MD5 format on Windows.New password: ***********Re-type new password: ***********Adding password for user ユーザ名

「-cオプション」をつけてhtpasswd.exeを利用すれば、MD5でハッシュかけてくれるみたいだ。あとはパスワードを2回打ち込めば、指定した場所に「.htpasswd」が作成されているはず。そうしたら、そのファイルを上のhttpd.confのAuthUserFileと同じ場所においてあげればいい。

.htaccessによる設定

できなかった。成功したら記述する。