ApacheのBasic認証の設定

ウェブサーバで一般に公開したくない情報、例えば、ウェブメールとかアプリケーションの管理画面にアクセス制御をかけるためにBasic認証を設定することにしました。設定についてまとめておきます。

設定は、Apache設定ファイル(httpd.conf)への設定追加と.htaccessファイルの作成、アクセス時にしようするパスワードファイルの作成です。

設定ファイル(httpd.conf)への追加

Apacheの設定ファイルに.htaccessファイルの設定内容が有効になるように設定を追加します。追加する設定は、AllowOverrideディレクティブです。このディレクティブにで使用できるキーワードは、次のとおり。

None
上書きを許しません。
All
全ての種類の設定について上書きを許します。
AuthConfig

認証に関する設定について上書きを許します。上書きを許すディレクティブは、次のとおり。

  • AuthDBMGroupFile
  • AuthDBMUserFile
  • AuthGroupFile
  • AuthName
  • AuthType
  • AuthUserFile
  • Require
Limit

ホスト名やIP addressによるアクセス制御の上書きを許します。上書きを許すディレクティブは、次のとおり。

  • Allow
  • Deny
  • Order
Options

Optionsディレクティブで設定する機能について上書きを許します。上書きを許すディレクティブは、次のとおり。

  • Options
  • XBitHack
FileInfo

ディレクトリ表示の設定について上書きを許します。上書きを許すディレクティブは、次のとおり。

  • DefaultType
  • ErrorDocument
  • ForceType
  • LanguagePriority
  • SetHandler
  • SetInputFilter
  • SetOutputFilter
  • AddCharset
  • AddEncoding
  • AddHandler
  • AddInputFilter
  • AddLanguage
  • AddOutputFilter
  • AddType
  • RemoveCharset
  • RemoveEncoding
  • RemoveHandler
  • RemoveInputFilter
  • RemoveLanguage
  • RemoveOutputFilter
  • RemoveType
Indexes

ディレクトリインデックスを制御するためのディレクティブの使用を許可します。上書きを許すディレクティブは、次のとおり。

  • AddDescription
  • AddIcon
  • AddIconByEncoding
  • AddIconByType
  • DefaultIcon
  • DirectoryIndex
  • FancyIndexing
  • HeaderName
  • IndexIgnore
  • IndexOptions
  • ReadmeName

認証に関するディレクティブを設定するので「AllowOverride AuthConfig」を設定します。設定する箇所は、ドキュメントルートの設定を行っているDirectoryディレクティブ内です。

.htaccessファイルの作成

Basic認証を行いたいディレクトリに.htaccessファイルを作成します。ファイルの内容は、つぎのとおり。

AuthType Basic
AuthName "Secret Zone"
AuthUserFile /etc/apache2/.htpasswd
AuthGroupFile /dev/null
require valid-user

設定内容は、次のようになります。

AuthType
認証の方法を指定します。ベーシック認証なら「Basic」、ダイジェスト認証なら「Digest」と指定します。
AuthName
認証時に表示される文字列を指定します。
AuthUserFile
このディレクトリの認証で使用する作成済みのパスワードファイルを指定します。
AuthGroupFile
作成済みのグループファイルを指定します。利用しない場合は、この例のように「/dev/null」を指定します。
Require
この制限で、アクセスを許可するユーザーやグループを指定します。アクセスを許可するユーザー名やグループ名をスペースで区切って指定します。パスワードファイルに含まれるすべてのユーザーに許可するには、「valid-user」を指定します。

パスワードファイルの作成

「htpasswd」コマンドを使用してパスワードファイルを作成します。ユーザ「user001」を追加する場合、次のコマンドを実行します。

htpasswd -mc /etc/apache2/.htpasswd user001

コマンド実行後にパスワードを2回聞かれるので入力すれば、「/etc/apache2/.htpasswd」ファイルが作成されます。ユーザを追加する場合は、次のコマンドを実行します。

htpasswd -m /etc/apache2/.htpasswd user002

これで、ユーザ「user002」が追加されます。

あとは、設定したディレクトリにアクセスすれば、認証用のダイアログが開き、パスワードファイルに登録されたユーザとパスワードを入力すればログインできるはずです。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする