Apache HTTP サーバ バージョン 2.0

Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.0 > モジュール

# Apache モジュール mod_auth

Available Languages: en | ja

説明: | テキストファイルを用いたユーザ認証
ステータス: | Base
モジュール識別子: | auth_module
ソースファイル: | mod_auth.c
互換性: | 2.1 より前のバージョンでのみ使用可能

### 概要

プレインテキストのパスワードファイルとグループファイルを検査して ユーザを探すことで、HTTP 基本認証でアクセス制限できるようにします。 似たような機能で、もっと大きなスケーラビリティを持ったものは、 `mod_auth_dbm` で提供されています。 また、HTTP ダイジェスト認証は `mod_auth_digest` で提供されています。

### ディレクティブ

### 参照

- `Require`
- `Satisfy`
- `AuthName`
- `AuthType`

## AuthAuthoritative ディレクティブ

説明: | 認証と承認プロセスを、 より低いレベルのモジュールに移行させるかどうかを設定する
構文: | `AuthAuthoritative On|Off`
デフォルト: | `AuthAuthoritative On`
コンテキスト: | ディレクトリ, .htaccess
上書き: | AuthConfig
ステータス: | Base
モジュール: | mod_auth

`AuthAuthoritative` ディレクティブで明示的に `Off` に設定すると、 与えられた認証ユーザ ID に対してユーザ ID がない またはルールがない場合に、 認証と承認の両方のプロセスが、 より低いレベルのモジュール (`Configuration` と `modules.c` ファイルで定義) に移行するようにできます。 ユーザ ID がある、かつまたは、ルールが指定されている場合は、 通常のパスワードとアクセスチェックが適用されて、 認証に失敗すると "Authentication Required" 応答が返されます。

ですから、二つ以上のモジュールのデータベースで同一の ユーザ ID が現われたり、 または、正しい `Require` ディレクティブが二つ以上のモジュールで現われたりした場合は、 一つ目のモジュールが認定を行って、`AuthAuthoritative` の設定に関わらず、 アクセスは移行しません。

一般的な使用法は、`mod_auth_dbm`, `mod_auth_msql`, `mod_auth_anon` といったデータベースモジュールの一つと組み合わせることです。 これらのモジュールは多くのユーザ資格検査を提供してくれます。 しかし、少数の (管理者関連の) アクセスは `AuthUserFile` で良く保護された、より低レベルに移行するようにします。

デフォルトでは、制御は移行しません。そして、未知のユーザ ID や ルールがあっても "Authentication Required" 応答が返されます。 ですから、このディレクティブ設定しないことでシステムの安全を維持できて、また、 NCSA 準拠の挙動を強制できます。

### セキュリティ

ユーザが自分自身で作成した .htaccess ファイルで認証できるようにすることの影響を 考慮に入れておいてください。そして、 それが本当に希望の挙動であるかどうかを検討してください。 一般的に言って、mSQL といったデータベースのセキュリティ保護よりも、 単純に一つのファイル .htpasswd のセキュリティを保護する方が容易です。 `AuthUserFile` と `AuthGroupFile` は、 ウェブサーバのドキュメントツリーの外側に保管する ようにしてください。保護しようとしているディレクトリ以下には、 置かないで下さい。そうしないと `AuthUserFile` と `AuthGroupFile` はダウンロードできてしまいます。

## AuthGroupFile ディレクティブ

説明: | 認証に使用するユーザグループの一覧が格納されている、 テキストファイルの名前を設定する
構文: | `AuthGroupFile file-path`
コンテキスト: | ディレクトリ, .htaccess
上書き: | AuthConfig
ステータス: | Base
モジュール: | mod_auth

`AuthGroupFile` ディレクティブは、 認証に使用するユーザグループの一覧が格納されている、 テキストファイルの名前を設定します。 file-path はグループファイルへのパスです。 もし絶対パスでなければ、 `ServerRoot` からの相対パスとして扱われます。

グループファイル各行は、グループ名、コロン、そして スペース区切りでそのメンバーのユーザ名を記述します。

### 例:

`mygroup: bob joe anne`

大きなファイルを探索するのは、非常に効率が悪いという点に 注意してください。そのような場合は、 `AuthDBMGroupFile` の方がずっと良い性能を発揮します。

### セキュリティ

`AuthGroupFile` は、 ウェブサーバのドキュメントツリーの外側に 保管するようにしてください。 保護しようとしているディレクトリ以下には、置かないで下さい。 そうしないと `AuthGroupFile` は ダウンロードできてしまいます。

## AuthUserFile ディレクティブ

説明: | 認証に使用するユーザとパスワードの一覧が格納されている、 テキストファイルの名前を設定する
構文: | `AuthUserFile file-path`
コンテキスト: | ディレクトリ, .htaccess
上書き: | AuthConfig
ステータス: | Base
モジュール: | mod_auth

`AuthUserFile` ディレクティブは、 ユーザ認証のためのユーザとパスワードの一覧を格納した テキストファイルの名前を設定します。file-path はユーザファイルへのパスです。 もし絶対パスでなければ (つまり スラッシュで始まらないパスであれば) 、`ServerRoot` からの相対パスとして扱われます。

ユーザファイルの各行には、ユーザ名、コロン、 暗号化したパスワードを記述します。 同一ユーザ ID が複数回登録された時は、`mod_auth` は パスワードの検証には最初の登録を使用します。

バイナリ配布の一部としてインストールされるか、 あるいは `src/support` にある htpasswd ユーティリティで、このパスワードファイルをメインテナンスします。 詳細は man ページをご覧頂くとして、 簡単には:

初期 ID `username` で、`Filename` というパスワードファイルを生成します。 次のコマンドを発行するとパスワードが要求されます:

`htpasswd -c Filename username`

パスワードファイル `Filename` に、`username2` を追加したり修正したりします:

`htpasswd Filename username2`

(訳注: 非常に多くのユーザを登録すると大きなファイルになりますが) 大きなテキストファイルを検索するのは非常に効率が悪い ということに注意してください。そのような必要のある時は、 `AuthDBMUserFile` を代わりに使ってください。

### セキュリティ

`AuthUserFile` は、ウェブサーバのドキュメントツリーの外側に保管するようにしてください。 保護しようとしているディレクトリ以下には、置かないで下さい。 そうしないと `AuthUserFile` は ダウンロードできてしまいます。

Available Languages: en | ja