ubuntu apache2.4 ベーシック認証の設定方法

こんにちは。今回はUbuntuのapache2.4でベーシック認証の設定方法を解説します。早速見ていきましょう。

ユーザーアカウントを登録する

まずは認証に使用するユーザーアカウントを保存するファイルを作成します。ユーザーアカウントとして登録する情報はユーザーID、パスワードです。データベースに登録する方式も存在しますが、今回はファイルに保存する方法を説明します。

まずはファイルを保存するディレクトリを作成します。ファイルにはユーザーのアカウント情報を保存するので、必ず公開フォルダではない場所に配置しましょう。公開フォルダに保存するとダウンロードすることができてしまいます。

まずはディレクトリを作成します。
$ mkdir /var/www/etc

次にhtpasswd -cでユーザーを新規登録します。

# アカウントファイルにユーザーを追加します。
# htpasswd -c [アカウントのファイルパス] [ユーザーID]

# user1を追加
$ sudo htpasswd -c /var/www/etc/authpasswd user1

# ユーザーのパスワードを聞かれるので、設定します。

これでユーザーアカウントの設定は完了です。作成したauthpasswdファイルの中身を見ると登録したユーザーの情報を閲覧することができます。

cat /var/www/etc/authpasswd

# ファイルの内容
user1:$apr1$aKoOVXLU$icmOQMUgoaMLhbw9RRukj/

[ユーザーID:パスワード]の書式でユーザーが1行ずつ登録されていることがわかります。パスワードは暗号化されて保存されていますので、記憶しておく必要があります。

ベーシック認証を設定する

次に特定のコンテンツに対してベーシック認証をかけていきます。今回は/var/www/html/secureフォルダに対して認証を設定します。認証を設定することで、secureフォルダ配下のコンテンツにアクセスするためにはユーザーIDとパスワードが必要な状態となります。

/etc/apache2/sites-available/000-default.confに以下のディレクティブを追加します。

<Directory /var/www/html/secure>
  AuthType basic
  AuthName "private area"
  AuthBasicProvider file
  AuthUserFile /var/www/etc/authpasswd
  Require valid-user
</Directory>

これでベーシック認証の設定作業は終了です。コンテンツにアクセスし認証情報の入力を求められることを確認しましょう。

まとめ

今回はUbuntuのapache2.4でベーシック認証を設定する手順を説明しました。今更感はすごいですが、アカウントファイルの設定等、微妙にわかりづらい部分を詳細に書いてみました。お役に立てれば幸いです。

Apache Http Server

Posted by kobainmac