ダイジェスト認証とは?#

サイトへのアクセスを限られた人だけに許したい場合はベーシック認証が簡単ですが、ログインアカウントとパスワードが平文で流れてしまいます。
この危険性を軽減するために、MD5によってパスワードをハッシュ化して認証するのがダイジェスト認証です。
Apache2.2では、このダイジェスト認証の設定がApache2.0の時とは一部換えられているので注意が必要です。

コンパイル#

Apache2.2でダイジェスト認証を利用するためには以下のモジュールが必要になります。
上記のモジュールが有効になっていない場合は、Apacheのエラーログに次のようなメッセージが出力されます。
access to /digest/ failed, reason: verification of user id '<null>' not configured
必要なモジュールを有効にするためのコンパイルは次です。
$ ./configure --enable-modules="so auth_digest authn_file authz_user authz_owner"
$ make
$ make install
この設定では、デフォルトフォルダである '/usr/local/apache2' にインストールされます。インストールフォルダを換えたい場合は '--prefix=/好きなフォルダ' をconfigureに追加します。

※1: テキストファイルを使用した認証にはauthn_file_moduleが必要であるとマニュアルには確かに書いてありますが、私が試したところこれを指定しなくてもAuthUserFileディレクティブが有効になっていました。勘違い?

パスワードファイルの作成#

認証で使用するパスワードファイルは次のように作成します。日本語で書いた部分はいずれも任意の値を指定できます。2回目以降にユーザを追加する場合は '-c' オプションが不要です。
htdigest -c /フォルダ/ファイル名 レルム名 ユーザ名
作成されたファイルをApache実行ユーザ(デフォルトではdaemon)が読めるようにパーミッションを適宜設定して下さい。

httpd.confの設定例#

<Directory "/home/www/digest">
    AllowOverride None
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all

    AuthType Digest
    AuthName レルム名                  ← htdigestにて指定した値
    AuthUserFile "/フォルダ/ファイル名" ← htdigestにて指定した値 (Apache2.0ではAuthDigestFileだった)
    AuthDigestProvider file
    Require valid-user
    # Require user ユーザ名            ← 特定のユーザだけに限定したい場合(htdigestにて指定した値)
</Directory>
設定後、'service httpd restart' などでApacheを再起動して下さい。

添付ファイルの追加

ログイン済のユーザのみが添付ファイルをアップロード出来ます。
« This page (revision-6) was last changed on 06-5-2011 14:15 by ytp