Apache 2.2.x でベーシック認証(1) ~ファイルを利用する~

Apache 2.2.x には、さまざまな認証モジュールがある。一般的なのはmod_authn_fileを使用して、テキストファイルで管理する方法だろう。

テキストファイルを利用した基本認証は、複数のモジュールを経由して行われる。

  1. AuthType Basic により mod_auth_basic が起動
  2. AuthBasicProvider file により mod_authn_file が起動し、AuthUserFile ディレクティブに指定されたファイルを読む
  3. Require の定義に従って、mod_authz_user が承認

テキストファイルを使ってベーシック認証を行っている場合、一般的には以下のような設定を行う。
検証環境は、Cent OS 6.4 と Apache 2.2.15、MySQL 5.1.69だ。

#基本認証
LoadModule auth_basic_module modules/mod_auth_basic.so
#ホスト名/IPアドレスによる制御
LoadModule authz_host_module modules/mod_authz_host.so
#ユーザー名による承認
LoadModule authz_user_module modules/mod_authz_user.so
#グループ名による承認
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#テキストファイルを用いたユーザ認証
LoadModule authn_file_module modules/mod_authn_file.so

...

<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride None
    
    AuthType Basic
    AuthBasicProvider file
    AuthUserFile /etc/httpd/conf/passwd
    AuthGroupFile /dev/null
    AuthName "Authentication Area"
    Require valid-user

    Order allow,deny
    Allow from all
</Directory>

「/etc/httpd/conf/passwd」ファイルは、ユーザー ID とパスワードの一覧を格納したファイルで、htpasswd で生成する。

htpasswd -c /etc/httpd/conf/passwd user1

ユーザーの追加や削除もできるため、ユーザー数が少ない場合はファイルを利用した方が楽だろう。逆にユーザー数が増えると、ユーザーの検索に時間がかかるようになり遅くなる。


One thought on “Apache 2.2.x でベーシック認証(1) ~ファイルを利用する~

  1. ピンバック: Apache 2.2.x でベーシック認証(2) ~ MySQL を利用する~ | UB Lab.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.