<?xml version="1.0" encoding="iso-2022-jp"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
<modulesynopsis>

<!-- English revision: 1.6 -->
<name>mod_auth</name>
<description>テキストファイルを用いたユーザ認証</description>
<status>Base</status>
<sourcefile>mod_auth.c</sourcefile>
<identifier>auth_module</identifier>

<summary>

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

</summary>
<seealso><directive module="core">Require</directive></seealso>
<seealso><directive module="core">Satisfy</directive></seealso>
<seealso><directive module="core">AuthName</directive></seealso>
<seealso><directive module="core">AuthType</directive></seealso>

<directivesynopsis>
<name>AuthGroupFile</name>
<description>認証に使用するユーザグループの一覧が格納されている、
テキストファイルの名前を設定する</description>
<syntax>AuthGroupFile <em>file-path</em></syntax>
<contextlist><context>ディレクトリ</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>

<usage>
    <p><directive>AuthGroupFile</directive> ディレクティブは、
    認証に使用するユーザグループの一覧が格納されている、
    テキストファイルの名前を設定します。
    <em>file-path</em> はグループファイルへのパスです。
    もし絶対パスでなければ
    (<em>つまり</em> スラッシュで始まらないパスであれば)
    、<directive module="core">ServerRoot</directive>
    からの相対パスとして扱われます。</p>

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

<example>mygroup: bob joe anne</example> 

    <p>大きなファイルを探索するのは、<em>非常に</em>効率が悪いという点に
    注意してください。そのような場合は、
    <directive module="mod_auth_dbm">AuthDBMGroupFile</directive>
    を代わりに使うべきでしょう。</p>

<note><title>セキュリティ</title>
    <p><directive>AuthGroupFile</directive> は、
    ウェブサーバのドキュメントツリーの外側に
    保管するようにしてください。
    保護しようとしているディレクトリ以下には、<em>置かないで下さい</em>。
    そうしないと <directive>AuthGroupFile</directive> は
    ダウンロードできてしまいます。</p>
</note>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>AuthUserFile</name>
<description>認証に使用するユーザとパスワードの一覧が格納されている、
テキストファイルの名前を設定する</description>
<syntax>AuthUserFile <em>file-path</em></syntax>
<contextlist><context>ディレクトリ</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>

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

    <p>ユーザファイルの各行には、ユーザ名、コロン、
    <code>crypt()</code> で暗号化したパスワードを記述します。
    同一ユーザが複数回登録された時の挙動は定義されていません。</p>

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

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

    <p>パスワードファイル Filename に、username2
    を追加したり修正したりします:</p>
<example>htpasswd Filename username2</example>

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

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

</usage>
</directivesynopsis>

<directivesynopsis>
<name>AuthAuthoritative</name>
<description>認証と承認プロセスを、
より低いレベルのモジュールに移行させるかどうかを設定する</description>
<syntax>AuthAuthoritative on|off</syntax>
<default>AuthAuthoritative on</default>
<contextlist><context>ディレクトリ</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>

<usage>

<note>記載されている情報は、未だ Apache 2.0 向けにアップデートされていません。
Apache 2.0 では、モジュールの順序づけに異なる仕組みを使っています。</note>

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

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

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

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

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

</modulesynopsis>
