Apache 2.4 のBASIC認証・Digest認証の設定

2021-07-12

BASIC認証の設定

BASIC認証は、ユーザーパ名とパスワードが一致すれば閲覧できる簡易的なユーザー制限ページです。
BASIC認証の方法はApacheの設定ファイル内に記述する方法と「.htaccess」による記述する方法があります。

今回はApacheの設定ファイル内に記載する方法で紹介しています。Apache のバージョンは、Apache 2.4 となります

$ sudo vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/data">
    AuthType Basic
    AuthName "Basic Auth"
    AuthUserFile /etc/httpd/conf/.htpasswd
    Require valid-user
</Directory>

上記では、「/var/www/html/data」の領域にBASIC認証をかけています。URLでは「http://xxxxx.com/data」となります。そのURLにアクセスするとユーザー名とパスワードを一致しないとアクセスできません

次に、htpasswd コマンドを使ってユーザー名とパスワードを設定します

書式:htpasswd -c <ユーザー名とパスワードの設定ファイルのパス> <username>

$ sudo htpasswd -c /etc/httpd/conf/.htpasswd testuser
New password: パスワード入力
Re-type new password: パスワード再入力
Adding password for user testuser

設定が終わったら、Apacheを再起動して設定を読み直します

$ sudo systemctl restart httpd

 

Digest認証の設定

BASIC認証では、パスワードをBase64エンコードして利用します。Base64エンコードの場合デコードすればパスワードがわかってしまうのでセキュリティーを考慮すれば、パスワードをMD5でハッシュ化した認証方式のDigest認証のほうが良いです。

$ sudo vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/data">
    AuthType Digest
    AuthName "Digest Auth"
    AuthUserFile /etc/httpd/conf/.htdigest
    Require valid-user
</Directory>

Digest認証でのユーザー名・パスワードを発行するには「htdigest」コマンドを利用します

書式:htdigest -c <ユーザー名とパスワードの設定ファイルのパス> <AuthName> <username>

# htdigest -c /etc/httpd/conf/.htdigest  "Digest Auth" testuser

設定が終わったら、Apacheを再起動して設定を読み直します

$ sudo systemctl restart httpd

BASIC認証・Digest認証で特定のユーザーのみアクセスできるように設定する

BASIC認証・Digest認証を特定のユーザーのみ認証が通過する設定は設定内の「Require」の箇所で行います。
Require valid-user」の設定だとユーザー名・パスワードでの認証で通過したユーザーが全てがそのページを閲覧できます。「Require user <ユーザー名>」とすれば、ユーザー名が一致したユーザーのみ閲覧できるようになります

書式:Require <オプション> <ユーザー名1> <ユーザー名2> ・・・

オプションは「user」、「group」を指定します。
許可の対象がユーザー単位であれば「user」を使用し、グループ単位であれば「group」を指定します。

許可するユーザー名を空白で区切って列挙していきます。

<Directory "/var/www/html/data">
    AuthType Digest
    AuthName "Digest Auth"
    AuthUserFile /etc/httpd/conf/.htdigest
    Require user test1 test2 test3
</Directory>

上記の場合は、ユーザー名が「test1」,「test2」,「test3」のユーザーのみパスワード認証が通れば閲覧できます

 

スポンサーリンク

0
0

LinuxApache,CentOS 7

Posted by admin