.htpasswd を使ったベーシック認証の完全ガイド

.htpasswd を使ったベーシック認証の完全ガイド

.htpasswdで手軽にアクセス制限をかけよう

開発中のサイトや管理画面に「簡易パスワード制限」をかけたいとき、最も手軽なのが ベーシック認証 です。

このベーシック認証で使用されるのが .htpasswd ファイル。ApacheやNginxなどのWebサーバーで利用でき、設定も非常にシンプルです。

この記事では、ALTERNATE tools を活用して、.htpasswd の作成から設定・運用の流れまでをわかりやすく解説します。

ベーシック認証とは?

Webページにアクセスする際、ユーザー名とパスワードの入力を求める基本的な認証方式です。特定のディレクトリに対して簡単にアクセス制限をかけることができます。

例えば、開発環境や社内用の管理画面など、外部に公開したくないページに対して、ベーシック認証を設定することで不正アクセスを防ぐことができます。

.htpasswdとは?

.htpasswd は、ベーシック認証で使用する「ユーザー名と暗号化されたパスワード」を記載したファイルです。1行に1ユーザーの認証情報が記録され、以下のような形式になります:

username:$apr1$WnL...vA$Xv4O2p3qp6bZz1YVnECUw1

このパスワードはハッシュ化されており、ALTERNATE toolsの「.htpasswd作成ツール」で簡単に生成できます。

ALTERNATE toolsでの作成手順

  1. .htpasswd作成ツール を開きます
  2. ユーザー名とパスワードを入力
  3. [作成]ボタンを押すと、ハッシュ化された文字列が生成されます
  4. 表示された文字列をコピーして、.htpasswdファイルに保存します

Apacheでの設定方法

ベーシック認証をかけたいディレクトリに、以下のような .htaccess ファイルを設置します:

<Files ~ "^.(htpasswd|htaccess)$">
  deny from all
</Files>
AuthUserFile 【絶対パス】.htpasswd
AuthGroupFile /dev/null
AuthName "For Members."
AuthType Basic
require valid-user
order deny,allow

AuthUserFile は、.htpasswd ファイルの絶対パスを指定してください。
AuthUserFileの絶対パスを調べる方法

Nginxでの設定例

Nginxを使用している場合は、auth_basicauth_basic_user_file ディレクティブを使います:

location /secure/ {
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

設定後は nginx -t で構文を確認し、nginx -s reload で再起動してください。

セキュリティ上の注意

  • .htpasswd.htaccess はWebから直接アクセスできないようにしてください
  • パーミッションを 600 または 640 に設定するのが望ましいです
  • 本格的な認証が必要な場合は、ベーシック認証ではなくOAuthやトークン認証を検討しましょう

エラーが出るときのチェックポイント

  • AuthUserFile のパスが絶対パスか?
  • ApacheのAllowOverride設定で.htaccessが有効か?
  • パスワードが平文になっていないか?(必ずハッシュ化)

まとめ

.htpasswd を使えば、特定のページに簡単なアクセス制限を導入できます。

ALTERNATE toolsの作成ツールを使えば、誰でもすぐにベーシック認証を設定可能です。ぜひ業務や開発のセキュリティ強化にご活用ください。

ALTERNATE tools:.htpasswd作成ツールを見る

PAGE TOP