mod_access_compat.html.ja.utf8 revision 6ae232055d4d8a97267517c5e50074c2c819941a
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>mod_access_compat - Apache HTTP サーバ</title>
<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<body>
<div id="page-header">
<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サーバ バージョン 2.3</p>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーバ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> > <a href="../">バージョン
2.3</a> > <a href="./">モジュール</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache モジュール mod_access_compat</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="/en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English"> en </a> |
</div>
<div class="outofdate">This translation may be out of date. Check the
English version for recent changes.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>ホスト (名前もしくは IP アドレス) に基づいたグループ承認</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">モジュール識別子:</a></th><td>access_compat_module</td></tr>
<tr><th><a href="module-dict.html#Compatibility">互換性:</a></th><td>Apache 2.3 (Apache 2.x の以前のバージョンとの互換性のためのモジュールとして)。
このモジュールで提供するディレクティブは、承認の仕組みの一新に伴い、非推奨になったものです。
<code class="module"><a href="/mod/mod_authz_host.html">mod_authz_host</a></code> も見てください。</td></tr></table>
<h3>概要</h3>
<p><code class="module"><a href="/mod/mod_access_compat.html">mod_access_compat</a></code> により提供されるディレクティブは
サーバの特定の部分への
アクセスを制御するために <code class="directive"><a href="/mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="/mod/core.html#files"><Files></a></code>, <code class="directive"><a href="/mod/core.html#location"><Location></a></code>
アクセス制御を行なうことができます。<code class="directive"><a href="#allow">Allow</a></code> と
<code class="directive"><a href="#deny">Deny</a></code> ディレクティブを使って、
どのようなクライアントにアクセスを
許可する、しないを指定します。また
<code class="directive"><a href="#order">Order</a></code> ディレクティブを使って、
デフォルトのアクセス状態と、
<code class="directive"><a href="#allow">Allow</a></code> ディレクティブと
<code class="directive"><a href="#deny">Deny</a></code>
ディレクティブとのお互いへの影響の仕方を設定します。
</p>
<p>ホストによるアクセス制限とパスワードによる認証を、
同時に組み合わせて使うこともできます。
この場合、その二つの制限の関係を指定するために
ディレクティブを使用します。</p>
<div class="warning"><h3>Note</h3>
<p><code class="module"><a href="/mod/mod_access_compat.html">mod_access_compat</a></code>が提供するディレクティブは、
承認の仕組みの一新に伴い、非推奨になったものです。
デフォルトの承認の取り扱い機能を使用するために
モジュールもロードされなければなりません。</p>
</div>
<p>一般的には、アクセス制限ディレクティブはすべてのアクセスメソッド
(<code>GET</code>, <code>PUT</code>, <code>POST</code> など)
に適用されます。そして、ほとんどの場合これが望ましい動作です。
セクションの中にディレクティブを書くことで、
一部のメソッドにのみ制限をかけることもできます。</p>
</div>
<div id="quickview"><h3 class="directives">ディレクティブ</h3>
<ul id="toc">
</ul>
<h3>参照</h3>
<ul class="seealso">
</ul></div>
<div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバのある領域にアクセスできるホストを制御する</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code> Allow from all|<var>host</var>|env=<var>env-variable</var>
[<var>host</var>|env=<var>env-variable</var>] ...</code></td></tr>
</table>
<p><code class="directive">Allow</code> ディレクティブは、どのホストが
サーバのある領域にアクセスできるかに影響を与えます。
アクセスはホスト名、IP アドレス、IP アドレスの範囲や、
環境変数などのクライアントのリクエストの
特徴に基づいてアクセス制御することができます。</p>
<p>このディレクティブの最初の引数は常に <code>from</code> です。
それに続く引数は三つの違った形式があります。<code>Allow from
all</code> が指定されていれば、すべてのホストにアクセスを許可し、
アクセス制限は下で説明されているように、
<code class="directive"><a href="#deny">Deny</a></code>
ディレクティブと <code class="directive"><a href="#order">Order</a></code>
ディレクティブの設定で決まります。
特定のホストやホスト群にのみサーバへのアクセスを許可するためには、
以下のどれかの形式で <em>host</em> を指定することができます:</p>
<dl>
<dt>ドメイン名 (の一部)</dt>
<dd>
<div class="example"><h3>例</h3><p><code>
Allow from apache.org<br />
Allow from .net example.edu
</code></p></div>
<p>この文字列に合うか、これで終わる名前のホストのアクセスが許可されます。
各部分が完全に合うものだけに適用されますので、上の例は
この設定をすると、Apache は
の設定に関わらず、クライアントの IP アドレスに対して
DNS の 2 重逆引きを行ないます。
ホスト名からオリジナルの IP アドレスを順引きします。
順引きと逆引きが一致し、ホスト名が該当した場合にのみ、
アクセスが許可されます。</p></dd>
<dt>完全な IP アドレス</dt>
<dd>
<div class="example"><h3>例</h3><p><code>
Allow from 10.1.2.3<br />
Allow from 192.168.1.104 192.168.1.205
</code></p></div>
<p>アクセスを許可する IP アドレスです。</p></dd>
<dt>IP アドレスの一部</dt>
<dd>
<div class="example"><h3>例</h3><p><code>
Allow from 10.1<br />
Allow from 10 172.20 192.168.2
</code></p></div>
<p>サブネットの制限用の、IP
アドレスの最初の一つから三つまでのバイトです。</p></dd>
<dt>ネットワーク/ネットマスク の対</dt>
<dd>
<div class="example"><h3>例</h3><p><code>
Allow from 10.1.0.0/255.255.0.0
</code></p></div>
より細粒度のサブネット制限用です。</p></dd>
<dt>ネットワーク/nnn CIDR 指定</dt>
<dd>
<div class="example"><h3>例</h3><p><code>
</code></p></div>
<p>ネットマスクが nnn の上位ビットが 1
となっているものからなること以外は前のものと同じです。</p></dd>
</dl>
<p>注: 最後の三つの例はまったく同じホストに合います。</p>
<p>IPv6 アドレスと IPv6 のサブネットは以下のように指定できます:</p>
<div class="example"><p><code>
Allow from 2001:db8::a00:20ff:fea7:ccea<br />
</code></p></div>
<p><code class="directive">Allow</code> ディレクティブの引数の三つ目の形式は、
の存在によりアクセスの制御を行なえるようにするものです。
<code>Allow from env=<var>env-variable</var></code>
が指定されていると、環境変数 <var>env-variable</var>
が存在した場合にリクエストはアクセスを許可されます。サーバは
のディレクティブにより、クライアントのリクエスト
の特徴に基づいて柔軟に環境変数を設定する機能を提供します。
ですから、このディレクティブはクライアントの
<code>User-Agent</code> (ブラウザの種類)、<code>Referer</code>
や他の HTTP リクエストのヘッダフィールドなどに基づいて
アクセス許可をするために使うことができます。
</p>
<div class="example"><h3>Example:</h3><p><code>
SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in<br />
<Directory /docroot><br />
<span class="indent">
Order Deny,Allow<br />
Deny from all<br />
Allow from env=let_me_in<br />
</span>
</Directory>
</code></p></div>
で始まるブラウザのみがアクセスが許可され、
他のものはアクセスが拒否されます。</p>
</div>
<div class="directive-section"><h2><a name="Deny" id="Deny">Deny</a> <a name="deny" id="deny">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code> Deny from all|<var>host</var>|env=<var>env-variable</var>
[<var>host</var>|env=<var>env-variable</var>] ...</code></td></tr>
</table>
<p>このディレクティブはホスト名、IP
アドレス、環境変数に基づいてサーバへのアクセスを制限します。
<code class="directive">Deny</code> ディレクティブの引数は <code class="directive"><a href="#allow">Allow</a></code>
ディレクティブとまったく同じです。</p>
</div>
<div class="directive-section"><h2><a name="Order" id="Order">Order</a> <a name="order" id="order">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>デフォルトのアクセス可能な状態と、<code class="directive">Allow</code> と
<code class="directive">Deny</code> が評価される順番を制御する</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code> Order <var>ordering</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Order Deny,Allow</code></td></tr>
</table>
<p><code class="directive">Order</code> ディレクティブは <code class="directive"><a href="#allow">Allow</a></code> ディレクティブと<code class="directive"><a href="#deny">Deny</a></code> と共に"3段階アクセス制御システム"
を制御します。第1段階目では <code class="directive">Order</code> ディレクティブで1番目に
指定したディレクティブ(<code class="directive"><a href="#allow">Allow</a></code>
または <code class="directive"><a href="#deny">Deny</a></code>)を全て処理します。
第2段階目で、残りのディレクティブ(<code class="directive"><a href="#deny">Deny</a></code> または <code class="directive"><a href="#allow">Allow</a></code>)
を全て処理します。第3段階目で、第1段階目と第2段階目で
マッチしなかったリクエストを処理します。</p>
<p>全ての <code class="directive"><a href="#allow">Allow</a></code> と <code class="directive"><a href="#deny">Deny</a></code> が処理され、結局のところ最後にマッチ
した条件が有効となることに注意してください。これは最初にマッチした条件だけが有効
となる、典型的なファイアウォールの動作とは異なっています。
また、設定ファイルに書く順番には意味はありません。<code class="directive"><a href="#allow">Allow</a></code> 行は全部一つのグループとして扱われ、
<code class="directive"><a href="#deny">Deny</a></code> 行はもう一つのグループとみなされます。
またデフォルト状態は単独で一つのグループとみなされます。</p>
<p><em>Order</em> 設定は以下の以下のどれかです。</p>
<dl>
<dt><code>Allow,Deny</code></dt>
<dd>まず <code class="directive"><a href="#allow">Allow</a></code>
ディレクティブが適用されます。どれにもマッチしなかった場合、この時点で
リクエストは拒否されます。次に、全ての <code class="directive"><a href="# deny">
Deny</a></code> ディレクティブが適用されます。どれか一つでもマッチした場合は、
リクエストは拒否されます。
最後に、 <code class="directive"><a href="#allow">Allow</a></code> にも <code class="directive"><a href="#deny">Deny</a></code> にもマッチしなかったリクエストは
デフォルト設定が適用されるので拒否されます。</dd>
<dt><code>Deny,Allow</code></dt>
<dd>まず <code class="directive"><a href="#deny">Deny</a></code>
ディレクティブが適用されます。どれか一つでもマッチした場合は、
<code class="directive"><a href="#allow">Allow</a></code> のどれにも
マッチ<strong>しなければ</strong>、アクセスは拒否されます。
どの <code class="directive"><a href="#allow">Allow</a></code> にも <code class="directive"><a href="#deny">Deny</a></code> にもマッチしないリクエストは
許可されます。</dd>
<dt><code>Mutual-failure</code></dt>
<dd>これは <code class="directive">Order Allow,Deny</code> と全く同じ効果を持ち、
そのため非推奨となっています。
</dd>
</dl>
<p>キーワードの間に置けるのはコンマだけです。
間に<em>空白があってはいけません</em>。</p>
<table class="bordered">
<tr>
<th>マッチ</th>
<th>Allow,Deny 時の結果</th>
<th>Deny,Allow 時の結果</th>
</tr><tr>
<th>Allow だけにマッチ</th>
<td>許可</td>
<td>許可</td>
</tr><tr>
<th>Deny だけにマッチ</th>
<td>拒否</td>
<td>拒否</td>
</tr><tr>
<th>どちらにもマッチしない</th>
<td>2番目のディレクティブがデフォルト: 拒否</td>
<td>2番目のディレクティブがデフォルト: 許可</td>
</tr><tr>
<th>Allow と Deny 両方にマッチ</th>
<td>最後にマッチしたほう: 拒否</td>
<td>最後にマッチしたほう: 許可</td>
</tr>
</table>
<p>以下の例では、apache.org
ドメインのすべてのホストはアクセスを許可されます。
他のすべてのホストはアクセスを拒否されます。</p>
<div class="example"><p><code>
Order Deny,Allow<br />
Deny from all<br />
Allow from apache.org
</code></p></div>
<p>次の例では、foo.apache.org サブドメインにあるホスト以外の、
apache.org ドメインのすべてのホストがアクセスを許可されます。
ドメインでないホストは、デフォルトの状態が <code class="directive"><a href="#deny">Deny</a></code> のため、
サーバへのアクセスを拒否されます。</p>
<div class="example"><p><code>
Order Allow,Deny<br />
Allow from apache.org<br />
Deny from foo.apache.org
</code></p></div>
<p>一方、上の例の <code class="directive">Order</code> が <code>Deny,Allow</code>
に変わっていれば、すべのホストにアクセスが許可されます。
これは、設定ファイル中の実際の順番に関わらず、
ドメインにないホストも、デフォルトの状態が <code class="directive"><a href="#allow">Allow</a></code>
なので、アクセスを許可されます。
</p>
<p><code class="directive">Order</code>
ディレクティブはデフォルトのアクセスの状態に影響を与えるので、
ディレクティブが無くても、サーバのアクセスに影響を与えることができます。
たとえば、</p>
<div class="example"><p><code>
<Directory /www><br />
<span class="indent">
Order Allow,Deny<br />
</span>
</Directory>
</code></p></div>
<p>はデフォルトのアクセス状態が
<code class="directive"><a href="#deny">Deny</a></code> になるため、
<code>/www</code> ディレクトリへのすべてのアクセスを拒否します。
</p>
<p><code class="directive">Order</code>
ディレクティブはサーバの設定処理の各段階でだけ
アクセスディレクティブの処理の順番を変更します。これは、たとえば、
<code class="directive">Order</code> ディレクティブの設定に関わらず、
<code class="directive"><a href="#allow">Allow</a></code> ディレクティブや
<code class="directive"><a href="#deny">Deny</a></code> ディレクティブは、
<code>.htaccess</code> ファイルの <code class="directive"><a href="#allow">Allow</a></code>
ディレクティブや <code class="directive"><a href="#deny">Deny</a></code>
ディレクティブよりも常に後に評価されるということを意味します。
設定セクションのマージの詳細については、
<a href="/sections.html">Directory,Location, Files
セクションの動作方法</a> を参照してください。</p>
</div>
<div class="directive-section"><h2><a name="Satisfy" id="Satisfy">Satisfy</a> <a name="satisfy" id="satisfy">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ホストレベルのアクセス制御とユーザ認証との相互作用を指定</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>バージョン 2.0.51 以降では <code class="directive"><a href="/mod/core.html#limit"><Limit></a></code> ディレクティブと <code class="directive"><a href="/mod/core.html#limitexcept"><LimitExcept></a></code> ディレクティブの影響を受ける
</td></tr>
</table>
アクセスポリシーを設定します。パラメータは <code>All</code> か <code>Any</code>
です。このディレクティブはある場所へのアクセスがユーザ名/パスワード
<em>と</em>クライアントのホストのアドレスで制限されているときにのみ
役立ちます。デフォルトの動作 (<code>All</code>) はクライアントがアドレスによる
アクセス制限を満たし、<em>かつ</em>正しいユーザ名とパスワードを入力することを
要求します。<code>Any</code> では、クライアントはホストの制限を満たすか、
正しいユーザ名とパスワードの入力をするかをすればアクセスを許可されます。
これは、ある場所をパスワードで保護するけれど、特定のアドレスからの
クライアントにはパスワードの入力を要求せずにアクセスを許可する、
というようなときに使用できます。</p>
<p>例えば、同じネットワーク上にいる人にはウェブサイトのある部分について
無制限のアクセスを許したいけれど、外のネットワークの人には
パスワードを提供させるようにするためには、次のような設定をすることが
できます:</p>
<div class="example"><p><code>
Require valid-user<br />
Allow from 192.168.1<br />
Satisfy Any
</code></p></div>
<p>バージョン 2.0.51 からは
<code class="directive"><a href="/mod/core.html#limitexcept"><LimitExcept></a></code> セクションを使用することで
<code class="directive">Satisfy</code> ディレクティブが
適用されるメソッドを制限することが
できるようになりました。</p>
<h3>参照</h3>
<ul>
<li><code class="directive"><a href="#allow">Allow</a></code></li>
</ul>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="/en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English"> en </a> |
</div><div id="footer">
<p class="apache">Copyright 2008 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p></div>
</body></html>