Apache 2.4 のBASIC認証・Digest認証の設定
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」のユーザーのみパスワード認証が通れば閲覧できます
ディスカッション
コメント一覧
まだ、コメントがありません