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

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(Wiki がページ「Apacheでユーザ認証を行う方法」を「Apache - ユーザ認証」に、リダイレクトを残さずに移動しました)
編集の要約なし
 
4行目: 4行目:
Digest認証はパスワードが暗号化されるが、これに対応しているのは比較的最近のWebブラウザに限られる。<br>
Digest認証はパスワードが暗号化されるが、これに対応しているのは比較的最近のWebブラウザに限られる。<br>
<br>
<br>
<span style="color:#C00000">
<u>※注意</u><br>
'''※注意'''<br>
<u>ここで使用しているコマンド名やディレクトリはディストリビューションによって異なる。</u><br>
'''ここで使用しているコマンド名やディレクトリはディストリビューションによって異なる。'''<br>
</span>
<br><br>
<br><br>


20行目: 18行目:
パスワードの設定に必要なパスワードファイルは、ここでは/etc/httpdに.htpasswdファイルとして作成する。<br>
パスワードの設定に必要なパスワードファイルは、ここでは/etc/httpdに.htpasswdファイルとして作成する。<br>
<br>
<br>
<span style="color:#C00000">
<u>※注意</u><br>
'''※注意'''<br>
<u>パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。</u><br>
'''パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。'''<br>
<u>ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。</u><br>
'''ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。'''<br>
<u>なお、初めて.htpasswdファイルを作成するときは-cオプションが必要となる。</u><br>
'''なお、初めて.htpasswdファイルを作成するときは-cオプションが必要となる。'''<br>
<br>
</span>
  # 入力
  # 入力
  htpasswd -c /etc/httpd/.htpasswd secret
  htpasswd -c /etc/httpd/.htpasswd secret
35行目: 32行目:
<br>
<br>
そして、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。<br>
そして、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。<br>
<syntaxhighlight lang="apache">
  <Directory "/var/www/html/basic">
  <Directory "/var/www/html/basic">
     AuthType Basic
     AuthType Basic
41行目: 39行目:
     Require user secret
     Require user secret
  </Directory>
  </Directory>
</syntaxhighlight>
<br>
<br>
以上で設定は完了である。<br>
次に、Apacheを再起動する。<br>
<br>
以下のコマンドを実行して、Apacheを再起動する。<br>
  sudo systemctl restart httpd
  sudo systemctl restart httpd
<br>
<br>
53行目: 50行目:
ここでは、Digest認証を利用して、特定ディレクトリのWebページを開く際に、secretというユーザ名でアクセスできるようにする。<br>
ここでは、Digest認証を利用して、特定ディレクトリのWebページを開く際に、secretというユーザ名でアクセスできるようにする。<br>
<br>
<br>
Digest認証には、htdigestコマンドを用いる。<br>
Digest認証には、htdigestコマンドを使用する。<br>
もし、htdigestがインストールされていない場合はインストールする。<br>
<br>
まず、htdigestをインストールする。<br>
  # Debian系の場合
  # Debian系の場合
   
   
76行目: 74行目:
<br>
<br>
次に、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。<br>
次に、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。<br>
<syntaxhighlight lang="apache">
  <Directory "/var/www/html/digest">
  <Directory "/var/www/html/digest">
     AuthType Digest
     AuthType Digest
83行目: 82行目:
     Require user secret
     Require user secret
  </Directory>
  </Directory>
</syntaxhighlight>
<br>
<br>
そして、htdigestコマンドでsecretというユーザを作成し、パスワードを設定する。<br>
そして、htdigestコマンドでsecretというユーザを作成し、パスワードを設定する。<br>
パスワードの設定に必要なパスワードファイルは、ここでは、/etc/httpdディレクトリに.htdigestとして作成する。<br>
パスワードの設定に必要なパスワードファイルは、ここでは、/etc/httpdディレクトリに.htdigestとして作成する。<br>
<br>
<br>
<span style="color:#C00000">
<u>※注意</u><br>
'''※注意'''<br>
<u>パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。</u><br>
'''パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。'''<br>
<u>ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。</u><br>
'''ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。'''<br>
</span>
<br>
<br>
htdigestコマンドの書式は以下の通りである。<br>
htdigestコマンドの書式を以下に示す。<br>
レルムには、/etc/httpd/conf/httpd.confファイルのAuthNameに指定した文字列を入力する。<br>
レルムには、httpd.confファイルの<code>AuthName</code>に指定した文字列を入力する。<br>
なお、初めて.htdigestファイルを作成するときは、-cオプションが必要となる。<br>
htdigest [-c] パスワードファイル レルム ユーザ名
<br>
<br>
実行結果は以下のようになる。<br>
なお、初めて.htdigestファイルを作成するときは、<code>-c</code>オプションが必要となる。<br>
  # 入力
htdigest [-c] <パスワードファイル> <レルム> <ユーザ名>
  # 入力例
  htdigest -c /etc/httpd/.htdigest 'Secret Zone' secret
  htdigest -c /etc/httpd/.htdigest 'Secret Zone' secret
   
   
107行目: 105行目:
  Re-type new password:
  Re-type new password:
<br>
<br>
以上で設定は完了である。<br>
次に、Apacheを再起動する。<br>
<br>
以下のコマンドを実行して、Apacheを再起動する。<br>
  sudo systemctl restart httpd
  sudo systemctl restart httpd
<br>
<br>
Webブラウザで、http://localhost/digest/ にアクセスして、ユーザ認証用のダイアログボックスが表示されるか確認する。<br>
Webブラウザで、http://localhost/digest/ にアクセスして、ユーザ認証用のダイアログボックスが表示されるかどうかを確認する。<br>
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:設定]]
[[カテゴリ:Web]]

2025年1月5日 (日) 22:07時点における最新版

概要

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/basic">
    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というユーザ名でアクセスできるようにする。

Digest認証には、htdigestコマンドを使用する。

まず、htdigestをインストールする。

# Debian系の場合

# htdigestがインストールされいているか確認
htgiest
-bash: htgiest: command not found

# htdigestのパッケージ名を確認
sudo apt-cache search htdigest
apache2-utils - Apache HTTP Server (utility programs for web servers)

# htdigestをインストール
sudo apt-get install apache2-utils

# Apache2のDigest認証のモジュールを有効にする(Apache2の再起動が必要)
sudo a2enmod auth_digest


まず、ユーザ認証によるアクセス制限をかけるディレクトリを作成する。
ここでは、/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コマンドの書式を以下に示す。
レルムには、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/ にアクセスして、ユーザ認証用のダイアログボックスが表示されるかどうかを確認する。