]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_access_compat.xml.ja
Merge in APR[-util] macros from branches/trunk-buildconf-noapr
[apache] / docs / manual / mod / mod_access_compat.xml.ja
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
4 <!-- English Revision: 675568:1738217 (outdated) -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <modulesynopsis metafile="mod_access_compat.xml.meta">
24
25 <name>mod_access_compat</name> 
26 <description>ホスト (名前もしくは IP アドレス) に基づいたグループ承認</description>
27 <status>Extension</status>
28 <sourcefile>mod_access_compat.c</sourcefile>
29 <identifier>access_compat_module</identifier>
30 <compatibility>Apache 2.3 (Apache 2.x の以前のバージョンとの互換性のためのモジュールとして)。
31 このモジュールで提供するディレクティブは、承認の仕組みの一新に伴い、非推奨になったものです。
32 <module>mod_authz_host</module> も見てください。</compatibility>
33
34 <summary>
35     <p><module>mod_access_compat</module> により提供されるディレクティブは
36     サーバの特定の部分への
37     アクセスを制御するために <directive module="core" type="section"
38     >Directory</directive>, <directive module="core"
39     type="section">Files</directive>, <directive module="core"
40     type="section">Location</directive>
41     と <code><a href="core.html#accessfilename">.htaccess</a
42     ></code> ファイルで使用されます。クライアントのホスト名、IP
43     アドレスや、<a href="../env.html">環境変数</a
44     >などのリクエストの特徴に基づいて
45     アクセス制御を行なうことができます。<directive
46     module="mod_access_compat">Allow</directive> と
47     <directive module="mod_access_compat">Deny</directive> ディレクティブを使って、
48     どのようなクライアントにアクセスを
49     許可する、しないを指定します。また
50     <directive module="mod_access_compat">Order</directive> ディレクティブを使って、
51     デフォルトのアクセス状態と、
52     <directive module="mod_access_compat">Allow</directive> ディレクティブと
53     <directive module="mod_access_compat">Deny</directive>
54     ディレクティブとのお互いへの影響の仕方を設定します。
55     </p>
56
57     <p>ホストによるアクセス制限とパスワードによる認証を、
58     同時に組み合わせて使うこともできます。
59     この場合、その二つの制限の関係を指定するために
60     <directive module="mod_access_compat">Satisfy</directive>
61     ディレクティブを使用します。</p>
62
63     <note type="warning"><title>Note</title>
64       <p><module>mod_access_compat</module>が提供するディレクティブは、
65       承認の仕組みの一新に伴い、非推奨になったものです。
66       <module>mod_authz_host</module> も見てください。
67       デフォルトの承認の取り扱い機能を使用するために
68       <module>mod_authz_default</module>
69       モジュールもロードされなければなりません。</p>
70     </note>
71
72     <p>一般的には、アクセス制限ディレクティブはすべてのアクセスメソッド
73     (<code>GET</code>, <code>PUT</code>, <code>POST</code> など)
74     に適用されます。そして、ほとんどの場合これが望ましい動作です。
75     しかし、<directive module="core" type="section">Limit</directive>
76     セクションの中にディレクティブを書くことで、
77     一部のメソッドにのみ制限をかけることもできます。</p>
78 </summary>
79
80 <seealso><directive module="mod_authz_core">Require</directive></seealso>
81 <seealso><module>mod_authz_host</module></seealso>
82 <seealso><module>mod_authz_core</module></seealso>
83
84 <directivesynopsis>
85 <name>Allow</name>
86 <description>サーバのある領域にアクセスできるホストを制御する</description>
87 <syntax> Allow from all|<var>host</var>|env=[!]<var>env-variable</var>
88 [<var>host</var>|env=[!]<var>env-variable</var>] ...</syntax>
89 <contextlist><context>directory</context><context>.htaccess</context>
90 </contextlist>
91 <override>Limit</override>
92
93 <usage>
94     <p><directive>Allow</directive> ディレクティブは、どのホストが
95     サーバのある領域にアクセスできるかに影響を与えます。
96     アクセスはホスト名、IP アドレス、IP アドレスの範囲や、
97     環境変数などのクライアントのリクエストの
98     特徴に基づいてアクセス制御することができます。</p> 
99
100     <p>このディレクティブの最初の引数は常に <code>from</code> です。
101     それに続く引数は三つの違った形式があります。<code>Allow from
102     all</code> が指定されていれば、すべてのホストにアクセスを許可し、
103     アクセス制限は下で説明されているように、
104     <directive module="mod_access_compat">Deny</directive>
105     ディレクティブと <directive module="mod_access_compat">Order</directive>
106     ディレクティブの設定で決まります。
107     特定のホストやホスト群にのみサーバへのアクセスを許可するためには、
108     以下のどれかの形式で <em>host</em> を指定することができます:</p>
109
110     <dl>
111       <dt>ドメイン名 (の一部)</dt>
112
113       <dd>
114       <example><title>例</title>
115         Allow from apache.org<br />
116         Allow from .net example.edu
117       </example>
118       <p>この文字列に合うか、これで終わる名前のホストのアクセスが許可されます。
119       各部分が完全に合うものだけに適用されますので、上の例は
120       <code>foo.apache.org</code> にはマッチしますが、
121       <code>fooapache.org</code> にはマッチしません。
122       この設定をすると、Apache は
123       <directive module="core">HostnameLookups</directive>
124       の設定に関わらず、クライアントの IP アドレスに対して
125       DNS の 2 重逆引きを行ないます。
126       ホスト名からオリジナルの IP アドレスを順引きします。
127       順引きと逆引きが一致し、ホスト名が該当した場合にのみ、
128       アクセスが許可されます。</p></dd>
129
130       <dt>完全な IP アドレス</dt>
131
132       <dd>
133       <example><title>例</title>
134         Allow from 10.1.2.3<br />
135         Allow from 192.168.1.104 192.168.1.205
136       </example>
137       <p>アクセスを許可する IP アドレスです。</p></dd>
138
139       <dt>IP アドレスの一部</dt>
140
141       <dd>
142       <example><title>例</title>
143         Allow from 10.1<br />
144         Allow from 10 172.20 192.168.2
145       </example>
146       <p>サブネットの制限用の、IP
147       アドレスの最初の一つから三つまでのバイトです。</p></dd>
148
149       <dt>ネットワーク/ネットマスク の対</dt>
150
151       <dd>
152       <example><title>例</title>
153         Allow from 10.1.0.0/255.255.0.0
154       </example>
155       <p>ネットワーク a.b.c.d とネットマスク w.x.y.z です。
156       より細粒度のサブネット制限用です。</p></dd>
157
158       <dt>ネットワーク/nnn CIDR 指定</dt>
159
160       <dd>
161       <example><title>例</title>
162         Allow from 10.1.0.0/16
163       </example>
164       <p>ネットマスクが nnn の上位ビットが 1
165       となっているものからなること以外は前のものと同じです。</p></dd>
166     </dl>
167
168     <p>注: 最後の三つの例はまったく同じホストに合います。</p>
169
170
171     <p>IPv6 アドレスと IPv6 のサブネットは以下のように指定できます:</p>
172
173     <example>
174        Allow from 2001:db8::a00:20ff:fea7:ccea<br />
175        Allow from 2001:db8::a00:20ff:fea7:ccea/10
176     </example>
177
178     <p><directive>Allow</directive> ディレクティブの引数の三つ目の形式は、
179     <a href="../env.html">環境変数</a>
180     の存在によりアクセスの制御を行なえるようにするものです。
181     <code>Allow from env=<var>env-variable</var></code>
182     が指定されていると、環境変数 <var>env-variable</var>
183     が存在した場合にリクエストはアクセスを許可されます。
184     <code>Allow from env=!<var>env-variable</var></code>
185     が指定されていると、環境変数 <var>env-variable</var>
186     が存在しない場合にアクセス許可されます。
187     サーバは <module>mod_setenvif</module>
188     のディレクティブにより、クライアントのリクエスト
189     の特徴に基づいて柔軟に環境変数を設定する機能を提供します。
190     ですから、このディレクティブはクライアントの
191     <code>User-Agent</code> (ブラウザの種類)、<code>Referer</code>
192     や他の HTTP リクエストのヘッダフィールドなどに基づいて
193     アクセス許可をするために使うことができます。
194     </p>
195
196     <example><title>Example:</title>
197       SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in<br />
198       &lt;Directory /docroot&gt;<br />
199       <indent>
200         Order Deny,Allow<br />
201         Deny from all<br />
202         Allow from env=let_me_in<br />
203       </indent>
204       &lt;/Directory&gt;
205     </example>
206
207     <p>この場合、user-agent の文字列が <code>KnockKnock/2.0</code>
208     で始まるブラウザのみがアクセスが許可され、
209     他のものはアクセスが拒否されます。</p>
210
211 </usage>
212 </directivesynopsis>
213
214 <directivesynopsis>
215 <name>Deny</name>
216 <description>サーバがアクセスを拒否するホストを制御する</description>
217 <syntax> Deny from all|<var>host</var>|env=[!]<var>env-variable</var>
218 [<var>host</var>|env=[!]<var>env-variable</var>] ...</syntax>
219 <contextlist><context>directory</context><context>.htaccess</context>
220 </contextlist>
221 <override>Limit</override>
222 <usage>
223     <p>このディレクティブはホスト名、IP
224     アドレス、環境変数に基づいてサーバへのアクセスを制限します。
225     <directive>Deny</directive> ディレクティブの引数は <directive
226     module="mod_access_compat">Allow</directive>
227     ディレクティブとまったく同じです。</p>
228 </usage>
229
230 </directivesynopsis>
231
232 <directivesynopsis>
233 <name>Order</name>
234 <description>デフォルトのアクセス可能な状態と、<directive>Allow</directive> と
235 <directive>Deny</directive> が評価される順番を制御する</description>
236 <syntax> Order <var>ordering</var></syntax>
237 <default>Order Deny,Allow</default>
238 <contextlist><context>directory</context><context>.htaccess</context>
239 </contextlist>
240 <override>Limit</override>
241
242 <usage>
243
244     <p><directive>Order</directive> ディレクティブは <directive 
245     module="mod_access_compat">Allow</directive> ディレクティブと<directive
246     module="mod_access_compat">Deny</directive> と共に"3段階アクセス制御システム"
247     を制御します。第1段階目では <directive>Order</directive> ディレクティブで1番目に
248     指定したディレクティブ(<directive module="mod_access_compat">Allow</directive> 
249     または <directive module="mod_access_compat">Deny</directive>)を全て処理します。
250     第2段階目で、残りのディレクティブ(<directive
251     module="mod_access_compat">Deny</directive> または <directive
252     module="mod_access_compat">Allow</directive>)
253     を全て処理します。第3段階目で、第1段階目と第2段階目で
254     マッチしなかったリクエストを処理します。</p>
255
256     <p>全ての <directive module="mod_access_compat">Allow</directive> と <directive
257     module="mod_access_compat">Deny</directive> が処理され、結局のところ最後にマッチ
258     した条件が有効となることに注意してください。これは最初にマッチした条件だけが有効
259     となる、典型的なファイアウォールの動作とは異なっています。
260     また、設定ファイルに書く順番には意味はありません。<directive
261     module="mod_access_compat">Allow</directive> 行は全部一つのグループとして扱われ、
262     <directive module="mod_access_compat">Deny</directive> 行はもう一つのグループとみなされます。
263     またデフォルト状態は単独で一つのグループとみなされます。</p>
264
265     <p><em>Order</em> 設定は以下のどれかです。</p>
266
267     <dl>
268       <dt><code>Allow,Deny</code></dt>
269
270       <dd>まず <directive module="mod_access_compat">Allow</directive> 
271       ディレクティブが適用されます。どれにもマッチしなかった場合、この時点で
272       リクエストは拒否されます。次に、全ての <directive module="mod_access_compat">
273       Deny</directive> ディレクティブが適用されます。どれか一つでもマッチした場合は、
274       リクエストは拒否されます。
275       最後に、 <directive module="mod_access_compat">Allow</directive> にも <directive
276       module="mod_access_compat">Deny</directive> にもマッチしなかったリクエストは
277       デフォルト設定が適用されるので拒否されます。</dd>
278
279       <dt><code>Deny,Allow</code></dt>
280
281       <dd>まず <directive module="mod_access_compat">Deny</directive> 
282       ディレクティブが適用されます。どれか一つでもマッチした場合は、
283       <directive module="mod_access_compat">Allow</directive> のどれにも
284       マッチ<strong>しなければ</strong>、アクセスは拒否されます。
285       どの <directive module="mod_access_compat">Allow</directive> にも <directive
286       module="mod_access_compat">Deny</directive> にもマッチしないリクエストは
287       許可されます。</dd>
288
289       <dt><code>Mutual-failure</code></dt>
290
291       <dd>これは <code>Order Allow,Deny</code> と全く同じ効果を持ち、 
292       そのため非推奨となっています。
293       </dd>
294     </dl>
295
296     <p>キーワードの間に置けるのはコンマだけです。
297     間に<em>空白があってはいけません</em>。</p>
298
299     <table border="1">
300       <tr>
301         <th>マッチ</th>
302         <th>Allow,Deny 時の結果</th>
303         <th>Deny,Allow 時の結果</th>
304       </tr><tr>
305         <th>Allow だけにマッチ</th>
306         <td>許可</td>
307         <td>許可</td>
308       </tr><tr>
309         <th>Deny だけにマッチ</th>
310         <td>拒否</td>
311         <td>拒否</td>
312       </tr><tr>
313         <th>どちらにもマッチしない</th>
314         <td>2番目のディレクティブがデフォルト: 拒否</td>
315         <td>2番目のディレクティブがデフォルト: 許可</td>
316       </tr><tr>
317         <th>Allow と Deny 両方にマッチ</th>
318         <td>最後にマッチしたほう: 拒否</td>
319         <td>最後にマッチしたほう: 許可</td>
320       </tr>
321     </table>
322
323     <p>以下の例では、apache.org
324     ドメインのすべてのホストはアクセスを許可されます。
325     他のすべてのホストはアクセスを拒否されます。</p>
326
327     <example>
328       Order Deny,Allow<br />
329       Deny from all<br />
330       Allow from apache.org
331     </example>
332
333     <p>次の例では、foo.apache.org サブドメインにあるホスト以外の、
334     apache.org ドメインのすべてのホストがアクセスを許可されます。
335     apache.org
336     ドメインでないホストは、デフォルトの状態が <directive
337     module="mod_access_compat">Deny</directive> のため、
338     サーバへのアクセスを拒否されます。</p>
339
340     <example>
341       Order Allow,Deny<br />
342       Allow from apache.org<br />
343       Deny from foo.apache.org
344     </example>
345
346     <p>一方、上の例の <directive>Order</directive> が <code>Deny,Allow</code>
347     に変わっていれば、すべのホストにアクセスが許可されます。
348     これは、設定ファイル中の実際の順番に関わらず、
349     <code>Allow from apache.org</code> が最後に評価されて、
350     <code>Deny from foo.apache.org</code> を上書きするからです。
351     <code>apache.org</code>
352     ドメインにないホストも、デフォルトの状態が <directive
353     module="mod_access_compat">Allow</directive>
354     なので、アクセスを許可されます。
355     </p>
356
357     <p><directive>Order</directive>
358     ディレクティブはデフォルトのアクセスの状態に影響を与えるので、
359     <directive module="mod_authz_host">Allow</directive> ディレクティブと
360     <directive module="mod_authz_host">Deny</directive>
361     ディレクティブが無くても、サーバのアクセスに影響を与えることができます。
362     たとえば、</p>
363
364     <example>
365       &lt;Directory /www&gt;<br />
366       <indent>
367         Order Allow,Deny<br />
368       </indent>
369       &lt;/Directory&gt;
370     </example>
371
372     <p>はデフォルトのアクセス状態が 
373     <directive module="mod_access_compat">Deny</directive> になるため、
374     <code>/www</code> ディレクトリへのすべてのアクセスを拒否します。
375     </p>
376
377     <p><directive>Order</directive>
378     ディレクティブはサーバの設定処理の各段階でだけ
379     アクセスディレクティブの処理の順番を変更します。これは、たとえば、
380     <directive>Order</directive> ディレクティブの設定に関わらず、
381     <directive module="core" type="section">Location</directive> セクションの
382     <directive module="mod_access_compat">Allow</directive> ディレクティブや
383     <directive module="mod_access_compat">Deny</directive> ディレクティブは、
384     <directive module="core" type="sectino">Directory</directive> セクションや
385     <code>.htaccess</code> ファイルの <directive
386     module="mod_access_compat">Allow</directive>
387     ディレクティブや <directive module="mod_access_compat">Deny</directive>
388     ディレクティブよりも常に後に評価されるということを意味します。
389     設定セクションのマージの詳細については、
390     <a href="../sections.html">Directory,Location, Files
391     セクションの動作方法</a> を参照してください。</p>
392 </usage>
393 </directivesynopsis>
394
395 <directivesynopsis>
396 <name>Satisfy</name>
397 <description>ホストレベルのアクセス制御とユーザ認証との相互作用を指定</description>
398 <syntax>Satisfy Any|All</syntax>
399 <default>Satisfy All</default>
400 <contextlist><context>directory</context><context>.htaccess</context>
401 </contextlist>
402 <override>AuthConfig</override>
403 <compatibility>バージョン 2.0.51 以降では <directive module="core" type="section"
404         >Limit</directive> ディレクティブと <directive module="core"
405         type="section">LimitExcept</directive> ディレクティブの影響を受ける
406 </compatibility>
407
408 <usage>
409     <p><directive module="mod_access_compat">Allow</directive> と
410     <directive module="mod_authz_core">Require</directive> の両方が使われているときの
411     アクセスポリシーを設定します。パラメータは <code>All</code> か <code>Any</code>
412     です。このディレクティブはある場所へのアクセスがユーザ名/パスワード
413     <em>と</em>クライアントのホストのアドレスで制限されているときにのみ
414     役立ちます。デフォルトの動作 (<code>All</code>) はクライアントがアドレスによる
415     アクセス制限を満たし、<em>かつ</em>正しいユーザ名とパスワードを入力することを
416     要求します。<code>Any</code> では、クライアントはホストの制限を満たすか、
417     正しいユーザ名とパスワードの入力をするかをすればアクセスを許可されます。
418     これは、ある場所をパスワードで保護するけれど、特定のアドレスからの
419     クライアントにはパスワードの入力を要求せずにアクセスを許可する、
420     というようなときに使用できます。</p>
421
422     <p>例えば、同じネットワーク上にいる人にはウェブサイトのある部分について
423     無制限のアクセスを許したいけれど、外のネットワークの人には
424     パスワードを提供させるようにするためには、次のような設定をすることが
425     できます:</p>
426
427     <example>
428     Require valid-user<br />
429     Allow from 192.168.1<br />
430     Satisfy Any
431     </example>
432    
433     <p>バージョン 2.0.51 からは
434     <directive module="core"
435     type="section">Limit</directive> セクションと
436     <directive module="core" type="section"
437     >LimitExcept</directive> セクションを使用することで
438     <directive>Satisfy</directive> ディレクティブが
439     適用されるメソッドを制限することが
440     できるようになりました。</p>
441 </usage>
442    <seealso><directive module="mod_access_compat">Allow</directive></seealso>
443    <seealso><directive module="mod_authz_core">Require</directive></seealso>
444 </directivesynopsis>
445
446 </modulesynopsis>