目次
このマニュアルについて
第 1 章 iPlanet Web Server の基礎知識
第 2 章 iPlanet Web Server の管理
第 3 章 管理プリファレンスの設定
第 4 章 ユーザとグループの管理
第 5 章 サーバ セキュリティ
第 6 章 サーバ クラスタの管理
第 7 章 サーバのプリファレンスの設定
第 8 章 ログ ファイルの理解
第 9 章 SNMP によるサーバのモニタ
第 10 章 サーバの設定によるパフォーマンス チューニング
第 11 章 プログラムによるサーバの拡張
第 12 章 コンフィグレーション スタイルの操作
第 13 章 サーバのコンテンツ管理
第 14 章 サーバへのアクセスの制御
第 15 章 Web パブリッシングの設定
第 16 章 検索機能の使用
付録 A HTTP (HyperText Transfer Protocol)
付録 B ACL ファイルのシンタックス
付録 C 国際化 iPlanet Web Server
付録 D Microsoft FrontPage のサーバ拡張機能
付録 E iPlanet Web Server
用語集
索引
戻る 次へ 目次 索引 ブックシェルフ


付録 B ACL ファイルのシンタックス

この付録では、アクセス コントロール リスト (ACL) ファイルとそのシンタックスについて説明します。ACL ファイルはテキスト ファイルであり、Web サーバに保存されているリソースにアクセス可能な人物を定義するリストが含まれています。デフォルトでは、Web サーバはサーバにアクセスするためのすべてのリストを含む 1 つの ACL ファイルを使います。ただし、複数のACL ファイルを作成して、obj.conf ファイル内でそれらを参照することもできます。

アクセス コントロール API を使ってアクセス コントロールをカスタマイズするには、ACL ファイルのシンタックスと機能を知っておく必要があります。アクセス コントロールAPI を使うと、別のデータベース、たとえば、Oracle や Informix などのデータベースとのインターフェイスが可能になります。 API の詳細については、次の iPlanet マニュアル サイトを参照してください。

この付録には次の節があります。


ACL ファイルのシンタックス
すべての ACL ファイルは、特定のフォーマットとシンタックスに従う必要があります。 ACL ファイルは、1 つまたは複数のACL を含むテキストファイルです。すべての ACL ファイルは、それらが使うバージョン番号から開始します。バージョンを示す行は1行で、コメント行の後ろに示されます。例は次のとおりです。

ファイルには、先頭に # 記号を付けたコメント行を含めることができます。

ファイル内の ACL は、そのタイプを定義するステートメントから始まります。 ACL には次の 3 つのタイプがあります。

  • パス ACL は、影響を与えるリソースへの絶対パスを指定します。
  • URI (Uniform Resource Indicator) ACL は、サーバのドキュメント ルートに関連するディレクトリまたはファイルを指定します。
  • 名前付き ACL は、obj.conf ファイル内のリソースで参照される名前を指定します。 サーバには、 LDAP ディレクトリにおいて、読み取りアクセスを許可したり、ユーザに書き込みアクセスを許可する、"default" という名前のリソースがあります。 名前付き ACL を iPlanet Web Server ウィンドウから作成することもできますが、obj.conf ファイルにあるリソースを使って手作業で参照する必要があります。
タイプ行はacl という文字から始まり、ダブル クオートで囲んだタイプ情報にセミコロンが続きます。すべての ACL のタイプに関する情報は、異なる ACL ファイルの中にあっても、それぞれ固有の名前を付ける必要があります。次にいくつかの異なる ACL の例を示します。

ACL のタイプを定義すると、ACLで使われるメソッド (認証ステートメント) と、アクセスを許可または拒否する人物とコンピュータ (認可ステートメント) を定義する、1 つまたは複数のステートメントを持つことができます。次の節では、これらのステートメントのシンタックスについて説明します。

認証ステートメント
ACL では、ACL を実行する場合にサーバが使う必要のある認証メソッドを任意に指定することができます。一般的な 2 つのメソッドは次のとおりです。

  • 基本法では、ユーザはリソースにアクセスする前にユーザ名とパスワードを入力します。
  • SSL では、ユーザはクライアントの証明書が必要です。このメソッドで作業するには、Web サーバは暗号化を有効にし、CA は認証済み CA のリストに存在する必要があります。
サーバはデフォルトで、メソッドを特定しないACL には基本法を使います。

ぞれぞれの認証行では、サーバがユーザを認証するときに使うリスト (ユーザ、グループ、またはその両方) が指定されます。次の認証ステートメントは、ACL タイプ行の後ろに表示されるもので、データベースまたはディレクトリ内の個々のユーザと一致するユーザに基本認証を指定します。

次の例は、ユーザやグループの認証メソッドとして SSL を使います。

次の例は、sales という文字で始まるユーザ名のユーザを許可します。

最後の行がgroup = sales に変更されると、ユーザのリストにグループがないため、ACLは失敗します。

認可ステートメント
ACL の各エントリには、1 つまたは複数の認可ステートメントが含まれています。認可ステートメントでは、サーバのリソースへのアクセスの許可または拒否を指定します。認可ステートメントを書き込むには、次のシンタックスを使います。

各行は、許可または拒否から始まります。通常は、最初のルールで全員のアクセスを拒否し、次のルールで特定のユーザ、グループ、またはコンピュータにアクセスを許可します。これはルールの階層が関係しています。つまり、/my_stuff ディレクトリに全員のアクセスを許可してから、数人のユーザに /my_stuff/personal サブディレクトリへのアクセスを許可しても、サブディレクトリのアクセス コントロールは機能しません。 /my_stuff ディレクトリへのアクセスを許可されれば /my_stuff/personal ディレクトリへもアクセスが許可されます。これを防ぐには、最初に全員のアクセスを拒否し、次にアクセスを必要とする数人のユーザにアクセスを許可するといった、サブディレクトリのルールを作成します。

ただし、デフォルトの ACL で全員のアクセスを拒否すると、その他のACL ルールに "すべてを拒否" のルールを必要としない場合もあります。

次の行は全員のアクセスを拒否します。

認可ステートメントの階層
ACL にはリソースによる階層があります。たとえば、サーバがドキュメント (URI) /my_stuff/web/presentation.html というリクエストを受信すると、サーバはまず、ファイル タイプと一致する ACL、またはリクエストと一致する他のワイルドカード パターンを検索します。次に、ディレクトリ上に 1 つを検出して、最後にURI 上で ACL を検出します。複数の ACL が一致する場合、サーバは一致する最新のステートメントを使います。ただし、絶対ステートメントを使った場合、サーバは他の一致するステートメントの検索を停止し、絶対ステートメントのあるACL を使います。同じリソースに絶対ステートメントが 2 つある場合、サーバはファイルにある最初のステートメントを使い、一致する他のリソースの検索を停止します。

たとえば、ACL 階層をドキュメント /my_stuff/web/presentation.html のリクエストで使うと、ファイル タイプ*.html へのアクセスを制御する絶対 ACL が作成されます。次に、サーバはそのURI またはパスに一致するものを検索せずに、そのACLを使います。

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

  • user = "anyone"
timeofday 属性を使うと、サーバの現地時間に基づく時刻で、サーバへのアクセスを制御することができます。たとえば、timeofday 属性を使うと、特定ユーザによる特定時刻のアクセスを制御することができます。

ノート 時刻指定には、24 時間制を使います。たとえば、午前 4 時を指定するには 0400、午後 10 時 30 分を指定するには 2230 とします 。

次は、guests というユーザのグループによる午前 8 時から午後 4 時 59 分までのアクセスを制御した例です。

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

次のステートメントは、premiumグループのユーザによる日時に関係のないアクセスを許可します。discountグループのユーザは、週末、平日ともに、午前 8 時から午後 4 時 59 分を除き、いつでもアクセスすることができます。

式の演算子
属性の 式では、さまざまな演算子を使うことができます。演算子の前にはカッコを付けます。 usergroupdnsipには、次の演算子を使うことができます。

  • and
timeofday および dayofweek には、次の演算子を付加することができます。

  • > より大きい
デフォルトの ACL ファイル
サーバをインストールすると、サーバは、server_root/httpacl/generated.https-serverid.acl ファイルのデフォルト設定を使います。genwork.https-serverid.acl ファイルもありますが、これはユーザ インターフェイスで作業中に変更を保存して適用するまでサーバが使う作業コピーです。ACL ファイルを編集するときは、genwork ファイルで作業してから、iPlanet Web Server を使って変更を保存し、適用します。

次は、デフォルトのファイルからのテキストです。

デフォルトの ACL ファイルは、次の magnus.conf で参照されます。

magnus.conf で複数の ACL ファイルを参照してから、obj.confde でリソースの ACL を使うことができます。ただし、obj.conf に一覧表示されている名前付き ACL を持たないオブジェクトのアクセス コントロールを評価するとき、サーバは最初の ACL だけを Web Publisher で使います。iPlanet Web Server ウィンドウを使ってアクセス コントロールを行う場合は、magnus.conf にある最初の ACL ファイルが、generated.https-serverid.acl ファイルへのポインタとなります。詳細については、obj.conf での ACL ファイルの参照の節を参照してください。

一般的なシンタックスの項目
次に入力文字列を示します。

  • a から z までの文字
他の文字を使う場合は、文字をダブル クオートで囲みます。

1 つのステートメントは 1 行で表示され、セミコロンで終わります。複数のステートメントは中カッコで囲みます。項目リストは、必ずカンマで区切り、ダブル クオートで囲みます。


obj.conf での ACL ファイルの参照
名前付き ACL または個別の ACL ファイルがあれば、obj.conf ファイル内で参照することができます。参照を行うには、PathCheck ディレクティブで check-acl 関数を使います。この行のシンタックスは次のとおりです。

aclname は、いずれの ACL ファイルにも表示される ACL の固有の名前です。

たとえば、testacl という名前の付いたACL を使うディレクトリへのアクセスを制御する場合は、obj.conf ファイルに次のような行を追加します。

前の例では、1 行目が、アクセスを制限するサーバ リソースを示すオブジェクトです。2 行目は、PathCheck ディレクティブで、ディレクティブが表示されるオブジェクトに、名前付き ACL (testacl) をバインドする check-acl 機能を使うことを示します。 testacl ACL は magnus.conf で参照されるすべての ACL ファイルに表示されます。

 

(C) Copyright (C) 2000 Sun Microsystems, Inc. Some preexisting portions Copyright (C) 2000 Netscape Communications Corp. All rights reserved.