「Apache - ユーザ認証」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
47行目: 47行目:
  sudo systemctl restart httpd
  sudo systemctl restart httpd
<br>
<br>
Webブラウザでhttp://localhost/basic/にアクセスして、ユーザ認証用のダイアログボックスが表示されるか確認する。<br>
Webブラウザで、http://localhost/basic/ にアクセスして、ユーザ認証用のダイアログボックスが表示されるか確認する。<br>
<br><br>
<br><br>



2020年2月18日 (火) 13:34時点における版

概要

Apacheのユーザ認証には、Basic認証とDigest認証がある。
Basic認証は一般的に行われている方法だが、パスワードが暗号化されないため、機密性の高いデータへの認証には適していない。
Digest認証はパスワードが暗号化されるが、これに対応しているのは比較的最近のWebブラウザに限られる。

※注意
ここで使用しているコマンド名やディレクトリはディストリビューションによって異なる。


Basic認証

ここでは、Basic認証を利用して、特定ディレクトリのWebページを開く際に、secretというユーザ名でアクセスできるようにする。

まず、ユーザ認証によるアクセス制限をかけるディレクトリを作成する。
ここでは、/var/www/html/basicとする。

sudo mkdir -p /var/www/html/basic


次に、htpasswdコマンドでsecretというユーザを作成し、パスワードを設定する。
パスワードの設定に必要なパスワードファイルは、ここでは/etc/httpdに.htpasswdファイルとして作成する。

※注意
パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。
ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。
なお、初めて.htpasswdファイルを作成するときは-cオプションが必要となる。

# 入力
htpasswd -c /etc/httpd/.htpasswd secret

# 出力
New password:
Re-type new password:
Adding password for user secret


そして、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。

<Directory "/var/www/html/member">
   AuthType Basic
   AuthName "Secret Zone"
   AuthUserFile /etc/httpd/.htpasswd
   Require user secret
</Directory>


以上で設定は完了である。

以下のコマンドを実行して、Apacheを再起動する。

sudo systemctl restart httpd


Webブラウザで、http://localhost/basic/ にアクセスして、ユーザ認証用のダイアログボックスが表示されるか確認する。


Digest認証

ここでは、Digest認証を利用して、特定ディレクトリのWebページを開く際に、secretというユーザ名でアクセスできるようにする。

まず、ユーザ認証によるアクセス制限をかけるディレクトリを作成する。
ここでは、/var/www/html/memberとする。

sudo mkdir -p /var/www/html/digest


次に、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。

<Directory "/var/www/html/digest">
   AuthType Digest
   AuthName "Secret Zone"
   AuthDigestDomain /member/
   AuthDigestFile /etc/httpd/.htdigest
   Require user secret
</Directory>


そして、htdigestコマンドでsecretというユーザを作成し、パスワードを設定する。
パスワードの設定に必要なパスワードファイルは、ここでは、/etc/httpdディレクトリに.htdigestとして作成する。

※注意
パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。
ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。

htdigestコマンドの書式は以下の通りである。
レルムには、/etc/httpd/conf/httpd.confファイルのAuthNameに指定した文字列を入力する。
なお、初めて.htdigestファイルを作成するときは、-cオプションが必要となる。

htdigest [-c] パスワードファイル レルム ユーザ名


実行結果は以下のようになる。

# 入力
htdigest -c /etc/httpd/.htdigest 'Secret Zone' secret

# 出力
Adding password for secret in realm Secret Zone.
New password:
Re-type new password:


以上で設定は完了である。

以下のコマンドを実行して、Apacheを再起動する。

sudo systemctl restart httpd


Webブラウザで、http://localhost/digest/ にアクセスして、ユーザ認証用のダイアログボックスが表示されるか確認する。