Sun Java System Web Proxy Server 4.0.8 管理ガイド

承認文

各 ACL エントリには、1 つ以上の承認文を指定できます。承認文では、サーバーリソースへのアクセスを許可、または拒否するユーザーを指定します。

承認文の作成

承認文を作成する場合、次の構文を使用します。

allow|deny [absolute] (right[,right...]) attribute expression;

各行の先頭を allow または deny にします。規則は階層化されているため、通常の場合、最初の規則ですべてのユーザーに対してアクセスを拒否し、2 番目以降の規則で個別のユーザー、グループ、またはコンピュータに対してアクセスを許可してください。たとえば、すべてのユーザーに対して /my_files という名前のディレクトリへのアクセスを許可し、一部のユーザーのみに対してサブディレクトリ /my_files/personal へのアクセスを許可する場合、/my_files ディレクトリへのアクセスを許可されたユーザーは /my_files/personal ディレクトリへのアクセスも許可されるため、サブディレクトリに対するアクセス制御は機能しません。これを避けるには、すべてのユーザーのアクセスを拒否してからアクセスする必要のあるユーザーだけにアクセスを許可する規則をサブディレクトリに対して作成します。

ただし、デフォルトの ACL を設定してすべてのユーザーに対してアクセスを拒否した場合、ほかの ACL 規則では「deny all」規則は必要ありません。

次の行では、すべてのユーザーに対してアクセスを拒否します。

deny (all) user = "anyone";

承認文の階層

ACL には、リソースに応じて異なる階層があります。サーバーが特定のリソースに対する要求を受信した場合、そのリソースに適用する ACL のリストを構築します。サーバーはまず、check-acl 文の obj.conf ファイルにリスト表示する名前付き ACL を追加します。次に、一致するパス ACL とリソース ACL を追加します。このリストは同じ順序で処理されます。「無条件な」ACL 文がない場合は、すべての文が順序どおりに評価されます。「無条件に許可」の文または「無条件に拒否」の文が「true」かどうかを評価する場合、サーバーは処理を停止し、この結果の処理を受け取ります。

一致する ACL が複数ある場合、サーバーは一致する最後の文を使用します。ただし、無条件文を使用する場合は、ほかの一致する文の検索を停止し、無条件文のある ACL を使用します。同一のリソースに対する無条件文が 2 つある場合は、ファイル内の最初の文を使用し、一致するほかのリソースの検索を停止します。


version 3.0;acl "default";authenticate (user,group)
	{ prompt="Sun Java System Web Proxy Server";};
	allow (read,execute,list,info) user = "anyone";
	allow (write,delete) user = "all";acl "http://*.*";
	deny (all) user = "anyone";allow (all) user = "joe";

            

属性式

属性式は、ユーザー名、グループ名、ホスト名、または IP アドレスに基づいて、アクセスを許可、または拒否するユーザーを定義します。次の行は、複数のユーザーまたはコンピュータに対してアクセスを許可する方法の例を示しています。

また、timeofday 属性を使用すると、サーバーのローカル時間を基準にした時刻で、サーバーへのアクセスを制御できます。たとえば、timeofday 属性を使用すると、特定のユーザーによる特定の時間のアクセスを制御することができます。

時間を指定するには、24 時間形式を使用します。たとえば、午前 4 時を指定するには 0400、午後 10 時 30 分を指定するには 2230 と指定します。次の例では、guests というユーザーのグループの午前 8 時から午後 4 時 59 分までの間のアクセスを制御します。

allow (read) (group="guests") and (timeofday<0800 or timeofday=1700);

また、曜日によってアクセスを制御することもできます。3 文字の省略形を使用して曜日を指定します。つまり、Sun、Mon、Tue、Wed、Thu、Fri、Sat です。

次の文で、premium グループのユーザーは、曜日や時間に関係なくアクセスが許可されます。discount グループのユーザーは、週末 (土曜日と日曜日) は時間に制限なく、平日 (月曜日から金曜日まで) は午前 8 時から午後 4 時 59 分までを除く任意の時間にアクセスできます。

allow (read) (group="discount" and dayofweek="Sat,Sun") or (group="discount" and (dayofweek="mon,tue,wed,thu,fri" and(timeofday<0800 or timeofday=1700)))or (group="premium");

式の演算子

属性式では、各種の演算子を使用できます。括弧で演算子の優先度を示します。usergroup dns、および ip では、次の演算子を使用できます。

timeofday および dayofweek では、次の演算子を使用できます。