Tech Blog

ApacheでDigest認証を設定する

2021-02-07

ダイジェスト認証は、Basic認証に比べてより安全な認証方式です。 Digest認証の設定方法を説明します。

前提

  • CentOS7
  • Apache2.4

Digest認証を設定するには、.digestというファイルにユーザー名・realm(領域)・パスワードを設定します。

また、ファイルへの書き込みはhtdigestというコマンドで行います。

必要な手順は、httpd.confファイルの編集と、.digestファイルの作成です。

Apacheの設定ファイル(httpd.conf)の編集

例えば、/var/www/htmlにドキュメントルートが設定されている場合、

http://ホスト名/digestのURLにアクセスした場合にDigest認証を設定するには、

httpd.confに以下のような設定を追記します。

vim /etc/httpd/conf/httpd.conf
<Directory /var/www/html/digest>
    AuthType Digest
    AuthName "digest test"
    AuthUserFile "/etc/httpd/.digest"
    Require valid-user
</Directory>

AuthTypeディレクティブにはDigestと設定します。

AuthNameにrealm(領域)を設定します。

RequireディレクティブにRequire user junpekoのようにユーザー名を指定することもできますが、

今回は、Require valid-userと設定して登録ユーザーすべてにアクセスを許可しています。

設定を反映させるため再起動しましょう。

apachectl restart

パスワードファイル.digestの作成・追加

AuthUserFileに設定したパスに.digestファイルを作成します。

htdigest -c /etc/httpd/.digest "digest test" junpeko

第2引数にrealmを指定しています。

-cは新規ファイル作成のオプションのため、 追加する場合は-cオプションは不要です。

htdigest /etc/httpd/.digest "digest test" takuya

確認

http://ホスト名/digestのURLにアクセスすると、

ユーザー名とパスワードを入力する認証ダイアログが表示されます。

ユーザー名・パスワードを正しく入力するとログインできます。

ログアウトについて

ログアウトという機能はダイジェスト認証にはありません。

ブラウザのログイン情報を消去するか、ブラウザを終了させると、

再アクセスした際に認証ダイアログが再表示されます。