目次
このマニュアルについて
第 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
用語集
索引
戻る 次へ 目次 索引 ブックシェルフ


第 14 章 サーバへのアクセスの制限

この章では、Administration Server および、Web サイト上のファイルやディレクトリへのアクセスを制限するさまざまな方法について説明します。たとえば、Administration Server では、マシン上にインストールされたすべてのサーバに対して完全なコントロールを持つ人や、1 つ以上のサーバへの部分的コントロールを持つ人を指定することができます。Administration Server 上でアクセス コントロールを使うには、まず「Distributed Administration」ページで 分散管理を有効にし、LDAP データベース内で管理グループを設定する必要があります。この章では、分散管理が既に設定済みであり、LDAP データベース内にユーザとグループが定義されていることを前提として説明します。

また、サーバ セキュリティで説明されているように Web サーバのセキュリティを確認する必要があります。

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


アクセス コントロールとは?
アクセス コントロールを使うことによって、iPlanet Web Administration Server にアクセスできる人、その人たちがアクセスできるサーバやタブ (プログラムとも呼ばれます)、そして Web サイト上のファイルやディレクトリにアクセスできる人などを決めることができます。

サーバ全体へのアクセスを制御したり、Administration Server 内の特定のタブまたはページや Web サイト上のファイルまたはディレクトリなど、サーバの一部へのアクセスを制御したりすることができます。サーバが受信リクエストを評価するとき、アクセス コントロール エントリ (ACE) と呼ばれるルールの階層に基づいてアクセスが特定され、一致するエントリを使ってそのリクエストを許可するか拒否するかが判断されます。各 ACE では、サーバが階層内の次の ACE に進む必要があるかどうかが指定されます。ACE の集合はアクセス コントロール リスト (ACL) と呼ばれます。リクエストがサーバに受信されると、サーバは obj.conf 内で ACL への参照を探し、その ACL がアクセスの判断に使用されます。デフォルトでは、サーバは複数の ACL が格納されている 1 つの ACL ファイルを持っています。

アクセスを制御するには次の 2 つの方法を使うことができます。

  • ユーザ グループ これは、サーバにアクセスする前に、ユーザにユーザ名とパスワードの入力を要求する方法です。サーバはクライアント証明書内の情報またはクライアント証明書そのものをディレクトリ サーバ エントリと比較します。この方法では、ディレクトリ サーバを使う必要があります。クライアント証明書を使う場合は、magnus.confAcceptTimeout の値を大きくする必要があります。
  • ホスト IP これは、ユーザに特定のコンピュータから Web サーバにアクセスさせる方法です。Web サーバは、ホスト名または IP アドレスでコンピュータを識別します。この方法にディレクトリ サーバは不要です。
この節には次のトピックがあります。

ACL ユーザ キャッシュ時間の設定
ACL ユーザ キャッシュが有効となる時間を制御するには、magnus.conf ファイル内の ACLCacheLifetime ディレクティブを使います。キャッシュ内のエントリが参照されるたびにその時間が再計算され、ACLCacheLifetime に対して確認されます。その時間がACLCacheLifetime 以上の場合は、エントリは使われません。デフォルト値は 120 秒です。この値が 0 に設定されると、キャッシュはオフになります。この値に大きな数を使うと、LDAP エントリを変更した場合に iPlanet Web Server を再起動しなければならないことがあります。たとえば、この値が 120 秒に設定されている場合、iPlanet Web Server はLDAP サーバと2 分間同期がとれない可能性があります。LDAP が頻繁に変更されない場合は、大きな数値を使います。

iPlanet Web Server 4.0 では、magnus.conf のパラメータ ACLUserCacheSize を使って、キャッシュ内に保持できるエントリの最大数を設定することができます。このパラメータのデフォルト値は 200 であり、これは ES 3.x で固定されていたキャッシュ サイズと同じです。新しいエントリはリストの最初に追加されます。キャッシュが最大サイズに達すると、リストの最後にあるエントリがリサイクルされて新しいエントリが作成されます。

ES 4.x では、magnus.conf のパラメータ ACLGroupCacheSize を使って、各ユーザ エントリにキャッシュできるグループ メンバーシップの最大数を設定することができます。ES 3.x では値が 1 に固定されていましたが、このパラメータのデフォルト値は 4 です。グループ内のユーザの非メンバーシップはキャッシュされず、リクエストに対して非メンバーシップをチェックするたびに ディレクトリ サーバが動作します。

ユーザ グループ認証
ユーザ グループ認証では、ユーザは、Administration Server や Web 上のファイルやディレクトリにアクセスする前に、まず認証を行う必要があります。認証とは、ユーザがユーザ名とパスワードを入力するか、または Netscape Communicator などのネットワーク ブラウザにインストールされたクライアント証明書を使って ID を証明することです。ユーザ名とパスワードを取得する最初の方法は基本的な方法であり、暗号を使っても使わなくても実行することができます。2 つ目のクライアント証明書を使う方法は、SSL を使う方法であり、これは暗号がオンになっている状態で行わなければなりません。SSLの使用については、サーバ セキュリティを参照してください。

ユーザ名とパスワード認証
Web サーバや Web サイトへのアクセスに際し、ユーザにユーザ名とパスワードを入力させるには、Netscape Directory Server などの LDAP データベースにユーザとグループのリストを保存する必要があります。ディレクトリ サーバは Web サーバと同じマシンで実行させるか、またはリモート マシン上にインストールされたディレクトリ サーバを使うこともできます。

Administration Server 内または Web サイト上で、ユーザ グループ認証があるリソースにユーザがアクセスしようとすると、ユーザ名とパスワードの入力を求めるダイアログ ボックスが Web ブラウザに表示されます。サーバがこの情報を暗号化された状態で受信するかどうかは、サーバで暗号化がオンになっているかどうかによって決まります。

ユーザ名とパスワードを入力すると、iPlanet Web Administration Server にログインしている場合は「Server Administration」ページ、Web サイトにログインしている場合は、要求されたファイルまたはディレクトリ リスト、ユーザ名やパスワードが無効な場合は、アクセスを拒否するメッセージが表示されます。認証されなかったユーザに対して[Access Denied Response]に表示されるアクセス拒否メッセージをカスタマイズすることもできます。図 14.1は、認証ダイアログ ボックスです。このダイアログ ボックスには、カスタマイズされたログイン プロンプト メッセージが表示されます。

図 14.1    ユーザがサーバに対して ID を証明する際に表示されるダイアログ ボックス

ノート サーバで SSL 暗号化が使われていない場合、エンド ユーザが入力するユーザ名とパスワードは暗号化されずにテキストでネットワークを介して転送されます。ネットワークパケットが誰かにインターセプトされ、Administration Server に送信中のユーザ名とパスワードが第三者に知られてしまう可能性があります。この理由から、ユーザ グループ認証は SSL 暗号化またはホスト IP認証、あるいはそれらの両方と共に使うのが最も効果的です。

サーバはディレクトリ サーバへの 2 つの接続を維持します。このうちの 1 つは、指定されたユーザとして LDAP バインドを行うことにより、ユーザの認証に使われます。もう 1 つは「Configure Directory Service」ページで指定された binddn として永久的にバインドされており、ユーザ エントリの検索やグループ メンバーシップの確認に使われます。ディレクトリ サーバに一度にアクセスできるのは 1 つの HTTP リクエスト スレッドだけです。これは、グローバル ロック コントロールは、両方の LDAP 接続にアクセスすることを意味しています。このことは特に固定サイズの ACL ユーザ / グループ キャッシュと組み合わされた場合に、パフォーマンスのボトルネックになる可能性があります。

クライアント証明書の認証
Web サイトへのアクセスを許可する前に、セキュリティ証明書でエンド ユーザの ID を確認することができます。このプロセスの方法は 2通りあります。

  • 証明書内の情報を ID の証明として使う。
  • 証明書が LDAP ディレクトリ内に発行されている場合は、証明書を確認する。
クライアント認証が有効になっているサーバでリクエストが受信されると、サーバにより次のアクションが実行されます。

  1. ブラウザが証明書を送信すると、サーバはそれが認証済み CA からの証明書かどうかを確認します。そうでない場合、サーバはトランザクションを中止し、認証は失敗に終わります。
  2. 証明書が認証済み CA からのものである場合、サーバは certmap.conf ファイルを使って証明書をユーザのエントリにマッピングします。証明書マップ ファイルの設定方法については、certmap.conf ファイルの使用を参照してください。
  3. 証明書が適切にマッピングされると、次に Web サーバはそのユーザに対して指定されている ACL ルールを確認します。そのため、証明書が適切にマッピングされても、ACL によってユーザのアクセスが拒否されると、ルールによりアクセスが拒否されることがあります。
Web サーバは LDAP ディレクトリ内のエントリを検索するので、エンド ユーザから見たアクセスはシームレスです。

特定のリソースへのアクセスを制御するためにクライアント認証を要求する ことは、サーバへのすべての接続に対してクライアント認証を要求すること とは異なります。アクセス コントロールでクライアント認証を要求するには、「Encryption Preferences」ページ([Preferences] タブで、[Encryption Preferences] を クリック) から使う SSL 認証メソッドを選択します。サーバ全体でクライアン ト認証を要求するには、「Encryption Preferences」ページで[Require Client Certificates (regardless of access control)] を選択します。

ノート SSL 認証メソッドだけが、certmap.conf ファイルへの修正を必要とします。 サーバへのすべての接続にクライアント認証を許可する方法では必要ありま せん。

クライアントが、クライアント認証を要求する SSL 認証されたリソースへのアクセスを得るには、クライアントはその Web サーバによって認証されている証明機関からの証明書をブラウザにインストールする必要があります。Web サーバの certmap.conf ファイルが、ブラウザ内のクライアントの証明書とディレクトリ サーバ エントリ内のクライアント証明書全体を比較するように設定されている場合は、ディレクトリ サーバに発行されたものと同じクライアント証明書が必要となることがあります。証明書内の特定の情報だけをディレクトリ サーバ内のエントリを比較するように certmap.conf ファイルを設定することもできます。たとえば、certmap.conf ファイルを設定して、サーバがブラウザの証明書内にあるユーザ ID と電子メール アドレスだけをディレクトリ サーバ エントリと比較することができます。このような場合、ユーザ ID と電子メール アドレスだけが一致すればアクセスできるので、クライアント証明書全体をディレクトリ サーバに発行する必要はありません。

ホスト IP 認証
特定のコンピュータを使っているクライアントだけが使用できるようにすることによって、Administration Server やWeb サイト上のファイルやディレクトリへのアクセスを制限することができます。アクセスを許可または拒否するコンピュータのホスト名または IP アドレスを指定します。ワイルドカード パターンを使って、複数のコンピュータやネットワーク全体を指定することができます。ホスト IP 認証を使ったファイルやディレクトリへのエンド ユーザ アクセスはシームレスに感じられます。ユーザはユーザ ID やパスワードを入力することなく、ファイルやディレクトリに直接アクセスすることができます。マシンにアクセス権がない場合は、アクセスを拒否するメッセージが表示されます。このメッセージのカスタマイズについては、アクセスが拒否された場合の応答を参照してください。

ノート 特定のシステムに複数の人がアクセスを持つ場合があります。このため、ホスト IP 認証はユーザ グループ認証と一緒に使うとより効果的です。両方の認証メソッドを使った場合、エンド ユーザはアクセス前に特定のコンピュータからユーザ名とパスワードを入力しなければなりません。

IP 認証を使う場合、サーバ上で DNS が設定されていなくてもかまいません。しかし、ホスト名認証を使う場合は、ネットワークで DNS が実行されていなければならず、サーバがそれを使用できるように設定されていなければなりません。[Preferences] タブの「Performance Tuning」ページでサーバの DNS を有効にすることができます。

DNS を有効にすると、サーバは DNS 検索を強いられるので iPlanet Web Server のパフォーマンスが低下します。サーバ パフォーマンスへの DNS 検索による影響を軽減させるには、リクエストすべてに対して IP アドレスを解消するのではなく、アクセス コントロールと CGI に関してのみ IP アドレスを解消します。このようにするには、obj.conf ファイル内の AddLog fn="flex-log" name="access" で始まる行に "iponly=1" を追加します。その結果次のようになります。

アクセス コントロール ファイル
Administration Server や Web サイト上のファイルやディレクトリでアクセス コントロールを使う場合、その設定は拡張子 .acl のファイルに保存されます。アクセス コントロール ファイルは、server_install/httpacl ディレクトリに保存されています。server_install はサーバのインストール ディレクトリです。たとえば、/usr/netscape/server4 にサーバをインストールした場合、Administration Server とサーバ上に設定された各サーバ インスタンスの両方の ACL ファイルは/usr/netscape/server4/httpacl/ にあります。

メイン ACL ファイル名は generated-https-server-id.acl であり、一時作業ファイルは genwork-https-server-id.acl です。iPlanet Web Server をアクセスの制限に使う場合にこれらの 2 つのファイルが存在します。しかし、より複雑に制限する場合は、複数のファイルを作成して、それらを magnus.conf ファイルから参照します。また、ある時刻や曜日を基準にしたサーバへのアクセスの制限など、ファイルの編集によってのみ使用できる機能もいくつかあります。

ノート サーバ ユーザが Web Publisher を使って ACL を変更すると、ACL コンフィグレーション ファイルは変更され、変更を警告する JavaScript 通知が送信されます。

また、手作業で .acl ファイルを作成して編集し、アクセス コントロールをカスタマイズすることもできます。たとえば、ユーザのデータベースに、LDAP データベースではなく Oracle またはInformix データベースを使う場合は、アクセス コントロール API を使って、サーバのアクセス コントロール構造にフックをプログラムする必要があります。この API は C プログラミング言語で書かれています。API の詳細については、http://www.iplanet.com/docsの iPlanet マニュアル サイトを参照してください。

アクセス コントロール ファイルおよびそのシンタックスについては、ACL ファイルのシンタックスを参照してください。


アクセス コントロールの仕組み
サーバがページのリクエストを受信すると、サーバは ACL ファイル内のルールを使ってアクセスを許可するかどうかを決めます。ルールは、リクエストを送信するコンピュータのホスト名または IP アドレスを参照することができます。また、ルールは LDAP ディレクトリに保存されたユーザやグループを参照することもできます。

たとえば、次の ACL ファイルには Administration Server (admin-serv) の 2 つのデフォルト エントリと、"admin-reduced" グループ内のユーザに Administration Server の[Preferences] タブへのアクセスを許可するエントリがあります。

version 3.0;

# The following "es-internal" rules protect files such
# as icons and images related to iPlanet Web Server.
# These "es-internal" rules should not be modified.

acl "es-internal";
allow (read, list, execute,info) user = "anyone";
deny (write, delete) user = "anyone";

# The following "default" rules apply to the entire document
# directory of iPlanet Web Server. In this example, the rules
# are set up so that "all" users in the directory server are
# allowed to read, execute, list, and get information.
# The "all" users are not allowed to write to or delete any files.
# All clients that accesses the document directory of the web
# server will be required to submit a username and password
# since this example is using the "basic" method of
# authentication. A client must be in the directory server
# to gain access to this default directory since "anyone"
# not in the directory server is denied, and "all" in the
# directory server are allowed.

acl "default";
authenticate (user,group) {
database = "default";
method = "basic";
};
deny (all)
(user = "anyone");
allow (read,execute,list,info)
(user = "all");

# The following rules deny access to the directory "web"
# to everyone not in the directory server and deny everyone
# in the directory server who is not in GroupB.
# Only the users in GroupB are allowed read, execute, list,
# and info permissions. GroupA can not gain access to the
# directory "web" even though (in the ACL rule below) they
# can access the directory "my_stuff". Furthermore, members
# of GroupB can not write or delete files.

acl "path=/export/user/990628.1/docs/my_stuff/web/";
authenticate (user,group) {
database = "default";
method = "basic";
};
deny (all)
(user = "anyone");

allow (read,execute,list,info)
(group = "GroupB");

# The following rule denies everyone not in the directory
# server and denies everyone in the directory server except
# user with the ID of "SpecificMemberOfGroupB". The ACL rule
# in this setting also has a requirement that the user
# connect from a specific IP address. The IP address setting
# in the rule is optional; it has been added to for extra
# security. Also, this ACl rule has a Customized prompt
# of "Presentation Owner". This Customized prompt appears
# in the username and password dialog box in the client's
# browser.

acl "path=/export/user/990628.1/docs/my_stuff/web/presentation.html";
authenticate (user,group) {
database = "default";
method = "basic";
prompt = "Presentation Owner";
};
deny (all)
(user = "anyone" or group = "my_group");
allow (all)
(user = "SpecificMemberOfGroupB") and
(ip = "208.12.54.76");

# The following ACL rule denies everyone not in the directory
# server and everyone in the directory server except for
# GroupA and GroupB access to the directory "my_stuff"

acl "path=/export/user/990628.1/docs/my_stuff/";
authenticate (user,group) {
database = "default";
method = "basic";
};
deny (all)
(user = "anyone");
allow (read,execute,list,info)
(group = "GroupA,GroupB");

次の URL http://server_name/my_stuff/web/presentation.html が要求されると、サーバはまず、サーバ全体のアクセス コントロールを確認します。サーバ全体の ACL が続行に設定してある場合、サーバはそのファイル タイプ (*.html) の ACL があるかどうかを確認します。次に、ディレクトリ my_stuff の ACL を確認します。それが存在する場合は、その ACE を確認し、次のディレクトリに進みます。サーバは、続行しないという ACL に到達するまで、または要求された URL (このケースでは、ファイル presentation.html) の最後の ACL に到達するまでパスをトラバースし続けます。

サーバ マネージャを使ってこの例にアクセス コントロールを設定するには、そのファイルのみの ACL を作成するか、またはそのファイルにつながる各リソースに ACL ファイルを作成します。つまり、サーバ全体用に 1 つ、my_stuff ディレクトリ用に 1 つ、my_stuff/web ディレクトリ用に 1 つ、ファイル自体用に 1 つ作成します。


Web サイトへのアクセスの制限
この節では、Web サイトのファイルやディレクトリへの アクセスを制限するプロセスについて説明します。その後の節では、アクセス コントロールを使う場合に使用可能な各オプションの詳細について説明します。ほとんどのアクセス コントロール ルールは、使用可能なオプションのサブセットだけを使っていることを覚えておいてください。

アクセス コントロールは、2 つの iPlanet Web Server メカニズムを通じて設定することができます。いずれの方法とも希望の設定が柔軟に行えます。

  • Administration Server
  • Server Manager

ノート Administration Server を通じてすべてのサーバのアクセス コントロールをグローバルに設定することも、またはサーバ マネージャを通じて特定のサーバ インスタンス内のリソースのアクセス コントロールを設定することもできます。この節では、サーバ マネージャを使って特定のサーバ インスタンス内にアクセス コントロールを設定する方法について説明します。Administration Server を使ってアクセス コントロールをグローバルに設定する方法については、サーバのアクセスの制限を参照してください。

例を紹介した 節もあります。アクセス コントロールの例を参照してください。

アクセス コントロール ルールを作成するには、次の手順を実行します。

  1. サーバ マネージャから [Preferences] タブを選択します。
  2. [Restrict Access] リンクをクリックします。
  3. [Pick a resource] で、制御するサーバ (リソース) 部分を指定します。
    • 表 14.1は、アクセス コントロールに使用できる一般的なリソース例です。

  4. [Edit Access Control] をクリックします。
  5. [New Line] をクリックします。
  6. [Deny] をクリックして、ルールに適用するアクションを選択します。
  7. [Users/Groups] カラムにある [anyone] をクリックして、ユーザグループ認証を指定します。
  8. [anyplace] をクリックして、ルールに追加するコンピュータを指定します。
  9. [all] をクリックして、ルールに追加するアクセス権を指定します。下のフレームでアクセス権を選択し、[Update] をクリックします。
  10. 制限するプログラムを指定します。サーバ マネージャでは、プログラムとは選択したサーバのフォームです。たとえば、[All Program] ラジオ ボタンをチェックして、管理サーバを設定するすべてのフォームへのアクセスを制限することができます。1 つまたは 2 つのフォームのセットへのアクセスを制限する場合は、ドロップ ダウン リストからカテゴリを選択します。あるカテゴリ内の 1 つのフォームへのアクセスを制限するには、[Program Items] フィールドにフォーム名を入力します。たとえば、アクセス コントロール フォームへのアクセスを制限するには、[Program Items] フィールドに「distacl」と入力します。詳細については、プログラムへのアクセスを参照してください。
  11. ACL ファイルについてよく理解している場合は、[Extra] のカラムにある [X] をクリックしてカスタマイズした ACL エントリを入力することもできます。
  12. チェーン内でアクセス コントロール ルールを続行する場合は、[Continue] を選択します。
  13. 必要な各ルールについて手順 5 〜11 を繰り返します。
  14. [Submit] をクリックして、ACL にファイルに新しいアクセス コントロール ルールを保存します。
表 14.1 LDAP 属性
リソース ワイルドカード
意味
デフォルト
LDAP ディレクトリ内のユーザだけが文書を発行できるように (たとえば、Web Publisher などを使って) 書き込みアクセスを制限する、インストール時に作成された名前の付いた ACL。
Entire Server
仮想サーバを含む Web サイト全体へのアクセスを決めるルールのセット。仮想サーバへのアクセスを制限するには、そのドキュメント ルートのパスを指定します。
*.html
.html 拡張子のすべてのファイルへのアクセスを制御します。
*.cgi
.cgi 拡張子のすべてのファイルへのアクセスを制御します。
/usr/netscape/
server4/docs/
cgi-bin/*

cgi-bin ディレクトリ内のすべてのファイルやディレクトリへのアクセスを制御します。絶対パスを指定する必要があります。NT では、パスにドライブ文字が必要です。
uri="/sales"
ドキュメント ルート内の sales ディレクトリへのアクセスを制御します。URI を指定するには、名前の付いた ACL を作成します。

次の節では、アクセス コントロール ページの下のフレームに表示されるオプションについて説明します。

アクセス コントロール アクションの設定
リクエストがアクセス コントロール ルールに一致した場合のサーバのアクションを指定することができます。

サーバは ACE のリストを検索してアクセス パーミッションを決めます。たとえば、通常最初の ACE は全員を拒否するものです。最初の ACE が [Continue] に設定されていれば、サーバはリスト内の 2 番目の ACE を確認します ([Continue] がチェックされていないと、全員に対してそのリソースへのアクセスが拒否されます)。2 番目のエントリが一致すると、次の ACE が使われます。一致しない ACE に到達するか、または一致しても続行しないように設定されている ACE に到達するまで、サーバは続行します。一致する最後の ACE によって、アクセスが拒否されるか許可されるかが決まります。たとえば、図 14.4では、データベース内のユーザはファイルを表示 (読み込みアクセス) することができますが、サーバにファイルを発行するには "pubs" グループに属していなければなりません。

図 14.4    ACL で拒否と許可ステートメントを組み合わせることができます。

ユーザとグループの指定
リソースを要求するユーザに基づいて、Administration Server や Web サイトへのアクセスを制限することができます。ユーザおよびグループ認証を使うと、ユーザはアクセス コントロール ルールで指定されたリソースにアクセスする前にユーザ名とパスワードを入力するように求められます。

iPlanet Web Server では、ユーザのリスト (グループに分けられていることもある) を使って、リソースを要求しているユーザのアクセス権を決めます。Administration Server 内でのアクセス コントロール用に菅理者グループ (分散管理用に設定するグループ) を定義する必要があります。ユーザのリスト (およびユーザが属しているグループ) は、Netscape Directory Server などの LDAP サーバに保存されます。アクセス コントロールを設定する前に、データベースにユーザとグループ (管理者グループを含む) が入っているかどうか確認します。

データベース内の全員に対してアクセスを許可または拒否したり、ワイルドカード パターンやユーザやグループのリストを使って特定の人を許可または拒否したりすることもできます。

ユーザとグループでアクセス コントロールを設定するには、アクセスを制限するための一般手順に従います。 [Users/Groups] フィールドをクリックすると、下のフレームに追加オプションが表示されます。次のリストは下のフレーム内のオプションについて説明したものです。

  • [Anyone (No Authentication)] はデフォルトであり、ユーザ名やパスワードを入力する必要がなく、誰でもリソースにアクセスできることを意味しています。しかし、ホスト名や IP アドレスなどの他の設定に基づいてユーザのアクセスが拒否されることもあります。Administration Server では、これは分散管理で指定した管理者グループ内の人であれば誰でもページにアクセスできることを意味しています。

  • [Prompt for authentication] を使うと、認証ダイアログ ボックスに表示されるメッセージ テキストを指定することができます。このテキストを使って、ユーザが入力する必要のある内容について説明することができます。オペレーティング システムによっては、ユーザに対して表示されるのは最初の 40 文字程度だけであることがあります。Netscape Navigator と Netscape Communicator は、ユーザ名とパスワードをキャッシュし、それをプロンプト テキストに関連付けます。つまり、ユーザが同じプロンプトがある領域 (ファイルやディレクトリ) にアクセスした場合、同じユーザ名やパスワードを再入力する必要がないということです。逆に、さまざまな領域で毎回認証を行う場合は、そのリソースの ACL のプロンプトを変更しなければなりません。

  • [Authentication Database] を使うと、サーバがユーザの認証に使うデータベースを選択することができます。デフォルト設定では、サーバは LDAP ディレクトリ内のユーザとグループを検索します。しかし、個々の ACL を設定して別のデータベースを使うように設定することもできます。この場合、まず server_root/userdb/dbswitch.conf ファイル内で別のデータベースと LDAP ディレクトリを指定し、次にドロップ ダウン リストから ACL で使うデータベースを選択します。アクセス コントロール API を使ってカスタム データベース (Oracle や Informix データベースなど) を使う場合、[User/Group] ウィンドウの [Other] フィールドにデータベース名を入力します。
ホスト名と IP アドレスの指定
リクエストを出しているコンピュータに基づいて、Administration Server や Web サイトへのアクセスを制限することができます。この制限は、コンピュータのホスト名や IP アドレスに一致するワイルドカード パターンを使って指定することができます。たとえば、特定のドメイン内のすべてのコンピュータを許可または拒否するには、*.iPlanet.com のように、そのドメインからのすべてのホストに一致するワイルドカード パターンを入力します。スーパーユーザが Administration Server にアクセスする際に使わなければならないホスト名と IP アドレスを設定することができます。

ホスト名や IP アドレスからユーザを指定するには、Web サイトへのアクセスの制限の指示に従ってアクセスを制限します。From Hostフィールド (anyplace というリンク) をクリックすると、下のフレームに追加オプションが表示されます。Only fromオプションをチェックして、次にワイルドカード パターンまたはカンマで区切ったホスト名と IP アドレスのリストを入力します。ホスト名を使って制限すると、IP アドレスを使う場合に比べて柔軟です。ユーザの IP アドレスに変更があっても、このリストを更新する必要はありません。しかし、IP アドレスで制限するとより安全です。接続されたクライアントの DNS 照合に失敗すると、ホスト名制限を使用できません。

ホスト名や IP アドレスは、ワイルドカード パターンまたはカンマ区切りのリストで指定されます。使用可能なワイルドカード記号は限られており、「*」しか使えません。IP アドレスにワイルドカードを使う場合、「*」はそのアドレス内の 1 つのバイト数全体を代替するものでなければなりません。つまり 198.95.251.* は使用できますが、198.95.251.3* は使用できません。また、「*」が IP アドレスに使われる場合、これは一番右端の文字でなければなりません。つまり、198.* は使用できますが、198.*.251.30 は使用できません。

ホスト名では、「*」は名前の 1 つのコンポーネントを完全に代替するものでなければなりません。つまり、*.iPlanet.com は使用できますが、*sers.iPlanet.com は使用できません。また「*」をホスト名に使う場合、これは一番左端の文字でなければなりません。たとえば、*.iPlanet.com は使用できますが、users.*.com は使用できません。

アクセス権の設定
Web サイトのファイルやディレクトリに対するアクセス権を設定することができます。つまり、すべてのアクセス権を許可または拒否するだけでなく、部分的アクセス権を許可または拒否するルールを指定することができます。たとえば、ファイルを参照できても変更できないように、読み込み専用のアクセス権を与えることができます。これは Web 発行機能を使ってドキュメントを発行する際に特に便利です。

アクセス コントロール ルールを作成する際に、すべてのアクセス権に対してデフォルトアクセス権が設定されます。アクセス権を変更するには、上のフレームの [Rights] リンクをクリックして、特定のルールに設定するアクセス権を選択します。次に、チェックして選択できるアクセス権について説明します。

  • [Read] アクセスを使うと、ユーザはファイルを表示することができます。このアクセス権には、HTTP メソッドの GET、HEAD、POST、INDEX が含まれます。
  • [Write] アクセスを使うと、ユーザはファイルを変更または削除することができます。書き込みアクセスには、HTTP メソッドの PUT、DELETE、MKDIR、RMDIR、MOVE が含まれます。ファイルを削除するには、ユーザは書き込み権限と削除権限の両方を持っていなければなりません。
  • [Execute] アクセスは、CGI プログラム、Java applet、エージェントのようなサーバサイド アプリケーションに該当します。
  • [Delete] アクセスは、ユーザが書き込みアクセスも併せ持っていれば、ファイルやディレクトリを削除できることを意味しています。
  • [List] アクセスは、ユーザがディレクトリ情報を取得できることを意味しています。つまり、ユーザはそのディレクトリ内のファイルのリストを取得できるということです。これは、Web Publisher や index.html ファイルを含まないディレクトリに該当します。
  • [Info] アクセスは、ユーザがヘッダ (http_head メソッド) を取得できることを意味しています。これは主に Web Publisher によって使われます。
プログラムへのアクセス
管理者がアクセスできる管理サーバの領域を選択することができます。サーバ マネージャに表示されるタブのグループ ([Cluster Management] など) を選択するか、サーバ マネージャの左フレームにリンクとして表示される特定のページ ([User & Groups] タブの「New User」など) を選択することができます。

サーバ内のプログラムへのアクセスを制御するには、次の手順を実行します。

  1. 管理サーバから、[Global Settings] タブを選択します。
  2. [Restrict Access] を選択します。
  3. ドロップダウン リストから、管理アクセスを制限するサーバを選択します。管理サーバには、"https-admserv" というラベルが付いています。その他のサーバには、そのタイプとサーバ ID のラベルが付いています (https-mozilla など)。
  4. [Edit ACL] をクリックします。2 つのフレームがあるアクセス コントロールページが表示されます。
  5. 各 ACL は 2 つの拒否行から始まります (デフォルト設定)。1 つは分散管理に設定された "管理者" グループ内のユーザだけにアクセスを限定するものと、もう 1 つはすべてのユーザのアクセスを制限するものです。これらの行のいずれかを変更する場合は、手作業で ACL ファイルを編集する必要があります。 [New Line] をクリックして、ACL にルールを追加します。作成される各 ルールは、サーバへのアクセスを許可します。特定してユーザにアクセス を許可することにより、アクセスを許可したくないユーザにアクセスを許 可してしまう危険性が減少します。
  6. このアクセス コントロール ルールに適用するユーザ、グループ、ホスト、IP アドレスを選択します。
  7. デフォルトでは、管理者はサーバのすべてのプログラムに対するアクセス権を持ちます。上のフレームの、[Programs] [All] をクリックします。下のフレームに、選択されたサーバ タイプのプログラムが一覧表示されます。
  8. [Only the following] を選択し、ルールに適用するプログラム グループを選択します。複数のグループを選択するには、Ctrl キーを押しながら必要なグループをクリックします。
  9. タブ内の特定のページへのアクセスを制御することができます。[Program Items] フィールドにページ名を入力します。
  10. [Update] をクリックし、[Submit] をクリックしてアクセス コントロール ルールを保存します。
カスタマイズされた式の作成
ACL にカスタム式を入力することができます。この機能は、ACL ファイルのシンタックスと構造についてよく理解している場合に使用できます。ACL ファイルの編集またはカスタム式の作成によってのみ使用できる機能がいくつかあります。たとえば、時刻や曜日、またはその両方によって、サーバへのアクセスを制限することができます。

カスタマイズされた次の式は、時刻と曜日でアクセスを制限する方法を紹介するものです。この例では、LDAP ディレクトリ内に 2 つのグループがあると仮定しています。"regular" グループは月〜金曜日の 8:00am 〜 5:00pm にアクセスすることができます。"critical" グループは常にアクセスが可能です。

allow (read)
{
(group=regular and dayofweek="mon,tue,wed,thu,fri");
(group=regular and (timeofday>=0800 and timeofday<=1700));
(group=critical)
}

有効なシンタックスと ACL ファイルの詳細については、ACL ファイルのシンタックスobj.conf での ACL ファイルの参照を参照してください。

[Access control on] の選択
[Access control on] というラベルのオプションのチェックを外すと、ACL 内の記録を削除するかどうかを尋ねるプロンプトが表示されます。[OK] をクリックすると、ACL ファイルからそのリソースの ACL エントリが削除されます。

ACL を無効にする場合は、generated-https-server-id.acl ファイル内で各行の最初に「#」を挿入することにより、ACL 行をコメント アウトできます。

Administration Server から、特定のサーバ インスタンスのアクセス コントロールを作成してオンにし、他のサーバに対してはオフ (デフォルト) のままにしておくことができます。たとえば、Administration Server から、「Server Manager」ページへのアクセスをすべて拒否することができます。他のすべてのサーバをデフォルト設定で、分散管理をオン、アクセス コントロールをオフにした状態で、管理者は他のサーバにアクセスして設定することができますが、Administration Server は設定できません。

ノート このアクセス コントロールは、分散管理に設定された管理者グループ内にユーザが属するかどうかを確認するために追加された機能です。Administration Server は、まずユーザ (スーパーユーザ以外) が管理者グループに属しているかどうかを確認し、次にアクセス コントロール ルールを評価します。

アクセスが拒否された場合の応答
アクセスが拒否された場合、ユーザに対して表示されるレスポンスを選択することができます。また各アクセス コントロール オブジェクトのメッセージをそれぞれ別にすることができます。デフォルトでは、ファイルが見つからないというメッセージがユーザに対して送信されます (HTTP エラー コード 「404 Not Found」も送信されます)。

特定の ACL に送信されるメッセージを変更するには、次の手順を実行します。

  1. 「ACL」ページで [Response when denied] リンクをクリックします。
  2. 下のフレームで [Respond with the following file] ラジオ ボタンをチェックします。
  3. アクセスが拒否された場合にユーザに送信する、サーバのドキュメント ルートにあるテキストまたは HTML ファイルへの URL か URI をテキスト フィールドに入力します。サーバはこのファイルへの読み込みアクセスを持っていなければならないので、ファイルをドキュメント ルートに置くことをお勧めします。
  4. [Update] をクリックします。
  5. 上のフレームの [Submit] をクリックして、アクセス コントロール ルールを送信するのを忘れないようにします。

アクセス コントロールの例
この節では、Web サーバやそのコンテンツに対するアクセスを制限する一般 例を紹介します。これらの例のいくつかは、"デフォルト" ACL を設定してサーバへのアクセスを拒否することを前提としています。また、サーバ全体の例のように、これらの例のそれぞれに最初のルールとして "deny all" 行を追加することもできます (サーバ全体へのアクセスの制限を参照)。

この節には次のトピックがあります。

サーバ全体へのアクセスの制限
この例は、サブドメイン内のコンピュータからサーバにアクセスする "employees" というグループ内のユーザにアクセスを許可します。サーバ上の他のリソースにはアクセス コントロール ルールがありません。この例は、ある部門用のサーバがあり、ネットワーク内の特定のサブドメイン内のコンピュータからのみユーザにアクセスしてもらいたい場合に最適です。

サーバ全体へのアクセスを制限するには、次の手順を実行します。

  1. iPlanet Web Server で [Server Preferences] を選択します。
  2. [Restrict Access] リンクをクリックします。
  3. [Pick a Resource] セクションで、[Editing] ドロップダウン リストから [The entire server] を選択し、[Edit Access Control] をクリックします。
  4. [New Line] ボタンをクリックします。
  5. 2 番目のルールで [Deny] リンクをクリックします。表示される下のフレームで [Allow] をチェックし、[Update] をクリックします。
  6. 2 番目のルールで [anyone] リンクをクリックします。下のフレームに、サーバへのアクセスを許可するグループを入力します。
  7. 2 番目のルールで [anyplace] リンクをクリックします。下のフレームに、許可するコンピュータのホスト名のワイルドカード パターンを入力します。
  8. 上のフレームで [Continue] の選択を解除し、[Submit] をクリックします。
  9. 変更を送信します。

    図 14.5    サーバ全体へのアクセスを制限する

サーバを再起動して変更内容を有効にします。次のテキストはこの例の ACL ファイルです。

ディレクトリ (パス) へのアクセスの制限
この 例は、"executives" というグループのユーザに、サーバ上のディレクトリ、サブディレクトリ、およびファイルへの読み込みアクセスを許可します。"ceo" というユーザはディレクトリへの完全なアクセス権を持ちます。

他の人が所有する (つまりその人がこのディレクトリに発行する ) サーバにディレクトリを持っている場合で、ユーザのグループにそのファイルを読んでほしい場合に、この例が適しています。たとえば、プロジェクト チームが読むことができるように、プロジェクト所有者が状況情報を発行する場合などです。

サーバ上のディレクトリへのアクセスを制限するには、次の手順を実行します。

  1. サーバ マネージャで、[Server Preferences] を選択します。
  2. [Restrict Access] リンクをクリックします。
  3. [Pick a Resource] の部分で [Browse] ボタンをクリックします。
  4. [Edit Access Control] をクリックします。
  5. [New Line] を 2 回クリックして、ルールを 2 つ作成します。
  6. 2 番目のルールで [Deny] をクリックします。表示される下のフレームで [Allow] をチェックし、[Update] をクリックします。
  7. 2 番目のルールで [anyone] をクリックします。下のフレームに、サーバへのアクセスを許可するグループを入力します。たとえば、[Group] フィールドに「executives」と入力します。[Update] をクリックします。
  8. 上のフレームで [all] をクリックします。[Write] [Delete] アクセス権の選択を解除します。
  9. [New Line] をクリックして、"ceo" ユーザのルールを作成します。3 番目のルールに [Allow] をチェックします。
  10. [anyone] をクリックします。下のフレームで、[User] フィールドに「ceo」と入力します。[Update] をクリックします。
  11. 2 番目と 3 番目のルールで、[Continue] の選択を解除します。
  12. [Submit] をクリックして保存し、変更を適用します。
この例の generated.https-serverid.acl ファイル内のエントリは、次のようになります。

URI (パス) へのアクセスの制限
この例は、URI を使って、Web サーバ上の 1 人のユーザのコンテンツへのアクセスを制御します。URI は、サーバのドキュメント ルート ディレクトリに相対するパスとファイルです。URI を使うことは、サーバのコンテンツ全体や一部で名前を頻繁に変更したり削除する場合に (ディスク容量を確保するためなど)、コンテンツを管理する便利な方法です。また、ほかにもドキュメント ルートがある場合に、アクセス コントロールを処理する適切な方法です。

この例は、URI /my_directory によって指定されたパス内のファイルやディレクトリへの読み込みアクセス権を全員に与えます。1 人のユーザだけが (この例では "me") ディレクトリとファイルへの完全なアクセス権を持ちます。

この例は、ユーザのサーバにコンテンツを発行するエンド ユーザが複数いる場合に使用できます。エンド ユーザには、そのコンテンツに対して書き込みアクセス権を与え、またそのコンテンツに対して誰もが読み込み/実行アクセス権を持つことができるようにします。

URI へのアクセスを制限するには、次の手順を実行します。

  1. サーバ マネージャで、[Server Preferences] を選択します。
  2. [Restrict Access] リンクをクリックします。
  3. [Type in the ACL name] という部分に、制御する URI を入力します。たとえば、「uri=/my_directory」と入力します。
  4. [Edit Access Control] をクリックします。
  5. [New Line] をクリックして、すべてのユーザに読み込みアクセスを許可する最初のルールを作成します。
  6. [Deny] リンクをクリックします。表示される下のフレームで [Allow] をチェックし、[Update] をクリックします。
  7. 上のフレームで [all] リンクをクリックします。[Write][Delete] アクセス権の選択を解除します。
  8. [New Line] をクリックしてディレクトリの所有者のルールを作成します。2 番目のルールに [Allow] をチェックします。
  9. [anyone] をクリックします。下のフレームで、[User] フィールドに「me」と入力します。[Update] をクリックします。
  10. 1 番目と 2 番目のルールで、[Continue] の選択を解除します。
  11. [Submit] をクリックして保存し、変更を適用します。
この例の generated.https-serverid.acl ファイルのエントリは次のようになります。

あるファイル タイプへのアクセスの制限
この例は、拡張子が .cgi であるすべてのファイルへの書き込みおよび削除アクセスを制御します。この例は、特定のユーザだけにサーバ上で実行するプログラムを作成させたい場合に使用できます。この例では、誰でもプログラムを実行することができますが、"programmers" グループのユーザだけがプログラムを作成したり削除したりすることができます。

あるファイル タイプへのアクセスを制限するには、次の手順を実行します。

  1. サーバ マネージャで [Server Preferences] を選択します。
  2. [Restrict Access] をクリックします。
  3. [Pick a resource] セクションで、[Wildcard] をクリックします。表示されるプロンプトに「*.cgi」と入力し、[OK] をクリックします。
  4. [Edit Access Control] をクリックします。
  5. [New Line] をクリックして、すべてのユーザに読み込みアクセスを許可する最初のルールを作成します。
  6. [Deny] をクリックします。表示される下のフレームで [Allow] をクリックし、[Update] をクリックします。
  7. 上のフレームで [all] をクリックします。[Write] と [Delete] アクセス権の選択を解除します。
  8. [New Line] をクリックして、"programmers" グループに書き込みおよび削除アクセスを許可するルールを作成します。2 番目のルールに [Allow] をチェックします。
  9. [anyone] をクリックします。下のフレームで、[Group] フィールドに「programmers」と入力します。[Update] をクリックします。
  10. [Submit] をクリックして保存し、変更を適用します。
この例では、両方の [Continue] ボックスがチェックされています。これは、ファイルのリクエストがあると、サーバはまずそのファイル タイプの ACL を確認し、次に一致する他の ACL (たとえば、URI 上の ACL やパスなど)を検索することを意味しています。サーバは次の順序で ACL を確認します。

  1. obj.conf 内の Pathcheck 関数。たとえば、これはファイルまたはディレクトリのワイルドカード パターンであることがあります。ACL ファイルのエントリは、次のように表示されます。 acl "*.cgi";
  2. URI。たとえば、ドキュメント ルートに相対するパス。ACL ファイルのエントリは、次のように表示されます。 acl "uri=/my_directory";
  3. パス名。たとえば、ファイルやディレクトリへの絶対パス。ACL ファイルのエントリは、次のように表示されます。 acl "path=d:\netscape\suitespot\docroot1\sales/";
この例の generated.https-serverid.acl ファイルのエントリは次のようになります。

時刻に基づいたアクセスの制限
この例は、勤務時間中のサーバへの書き込みおよび削除アクセスを制限します。ファイルをアクセスしている人がいる可能性が高い時間帯にドキュメントを発行させたくない場合にこの例を使います。この例は、週日の夜間 (月〜金曜日の 6:00pm 〜 6:00am) と、週末 (時刻に関係なく) に発行を許可します。

時刻や曜日に基づいてアクセスを制限するには、次の手順を実行します。

  1. サーバ マネージャで、[Server Preferences] を選択します。
  2. [Restrict Access] をクリックします。
  3. [Pick a Resource] セクションで、[Editing] ドロップダウン リストから [The entire server] を選択します (どのリソースを選択してもかまいません)。[Edit Access Control] をクリックします。
  4. [New Line] ボタンをクリックします。
  5. [Deny] リンクをクリックします。表示される下のフレームで [Allow] をクリックし、[Update] をクリックします。
  6. 上のフレームで [all] リンクをクリックします。[Write][Delete] アクセス権の選択を解除します。
  7. [New Line] をクリックし、書き込みおよび削除メソッドを制限するルールを作成します。2 番目のルールに [Allow] をチェックします。
  8. [X] リンクをクリックして、カスタマイズされた式を作成します。下のフレームに、次の行を入力します。
  9. [Submit] をクリックします。カスタム式で何かエラーがあった場合は、 JavaScript 警告が表示されます。エラーを修正し、再度 [Submit] をクリックします。
サーバを再起動して変更を有効にします。


Web パブリッシングのアクセス コントロール
Web Publisher ユーザは、Web Publisher ドキュメントやディレクトリにアクセスできる人や、それぞれのユーザやグループがそれらのファイル上で実行できる操作内容を制御することができます。またファイルやフォルダへのアクセスを完全に禁止したり、アクセスを特定の認証済みのユーザだけに限定したりすることができます。

アクセス コントロール システムは、オーナと呼ばれる特別なユーザをサポートしています。ACL ルールがユーザをオーナとして指定すると、このルールによって定義される権限は、各ドキュメントの Web Publisher によって指定されたオーナに適用されます。

オーナだけが、ファイルのアクセス コントロール (ACL) ルールを修正することができます。これらのルールは、移動、コピー、名前の変更、削除のなどのファイル上でユーザが実行できるアクションを定義します。オーナは他のユーザにファイルのオーナシップを再割り当てすることができ、ファイルにオーナがない場合は、有効なユーザ名を持ったユーザなら誰でもオーナになれます。ファイルのオーナのユーザ名は変わるので、ファイルに付けるアクセス コントロールは、特定のユーザ名ではなくて、ファイルのオーナを対象にするようにします。

サーバを統制するデフォルト アクセス コントロール (ACL) が、ユーザにとって制限が少なすぎたり、柔軟でなかったりする場合は、アクセス制御機能 ([Server Preferences] を選択し、[Restrict Access] リンクをクリック) を使って、Web パブリッシングのニーズに合った ACL を作成することができます。

たとえば次のような ACL を作成することができます。

この ACL は、追加ドキュメント ディレクトリである /publisher 内のファイルのオーナだけがファイルを修正や削除できるという制限を設定するものです。

ノート Unix/Linux では、Web パブリッシング ユーザにディレクトリへドキュメント を発行させたい場合は、そのユーザにそのディレクトリへの書き込みアクセ ス権を与える Unix/Linux ファイル パーミッションを設定する必要がありま す。また、発行して欲しくないディレクトリへの書き込みパーミッションを 無効にする必要もあります。

Web Publisher には、広範囲にわたる有効なサーバ ユーザのカテゴリに制限された多数のオペレーションがあります。エージェント サービスのなどの多くの ACL ルールは、単にユーザがサーバに対して有効であることを要求します。有効なユーザとはつまり、サーバのデータベース内に存在するユーザです。

Web Publisher を起動するとすぐにユーザ名認証ダイアログ ボックスが表示されます。これを空欄のままにして匿名ユーザとして操作することもできますが、有効なユーザのみに制限されているオペレーションを実行しようとすると再度ユーザ名を要求されます。現時点では、パスワードも一緒に要求され、認証済みのユーザだけがオペレーションを続行することができます。

ファイルとフォルダのオーナシップ
Web Publisher のファイルやフォルダを個々のユーザが所有することができます。ファイルやフォルダのオーナだけが、そのアクセス コントロール定義を定義したり、オーナシップを再割り当てしたりすることができます。ファイルやフォルダにオーナがいない場合は、誰もそのアクセス コントロールを修正できません。オーナシップが再割り当てされたとしても、特定のオペレーションをファイルやフォルダの現行のオーナに制限するアクセス コントロール定義を定義することができます。

Web Publisher ユーザに対してまとめてオーナシップを割り当てた後、ユーザは「Web Publisher properties」ページで個々のファイルやフォルダに対してオーナシップを割り当てることができます。または特定のアクションを実行するときに、Web Publisher の自動割り当てによってそのユーザをファイルやフォルダのオーナにすることもできます。

 

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