アクセス制御設定の編集

Web サーバー上に存在するリソースは、認証、承認、アクセス制御など、いくつかのセキュリティーサービスおよび機構を使って保護できます。

認証とは、識別情報を確認するためのプロセスのことです。承認とは、ある制限されたリソースへのアクセスをあるアイデンティティーに許可することを意味しますが、それらの制限はアクセス制御機構によって実現されます。認証と承認は、いくつかのセキュリティーモデルとサービスによって実行できます。

ここでは、選択した構成のセキュリティー設定を設定するプロセスについて説明します。

認証データベースの編集

認証データベース (auth-db とも呼ばれる) は、複数の既知のユーザーの 1 つのデータベースと、そのデータベースに対するクライアント要求の認証メカニズムを表します。サーバーは、一度に複数の auth-db エントリを設定することができます。これらは同じ種類の場合や、異なる種類の場合があり、任意に組み合わせることもできます。auth-db ユーザーデータベースは、ACL エンジンによって使用されます。サーバーは Java レルムとして知られる別の種類のユーザーデータベースもサポートしています。

  1. LDAP — ユーザーデータは、Sun Java System Directory Server を含むいずれかの LDAP ディレクトリサーバーに保存されます。

  2. ファイル— ディスクファイル内にユーザーデータが格納されます。この auth-db は、ユーザーの集中管理が利用可能でない (あるいは望ましくない) ような開発用途や小規模配備用途に特に便利です。ファイル auth-db は、いくつかの異なるファイル形式をサポートしています。

  3. PAM — PAM は、Sun Java System Directory Server 7.0 によってサポートされる新しい auth-db です。PAM auth-db は、Solaris PAM スタックに認証を委任するので、Web サーバー上の既存の Solaris ユーザーも Web サーバーに対して認証を行えるようになります。PAM auth-db は Solaris 9 および 10 以上でのみサポートされており、Web サーバーインスタンスをルートとして実行する必要があります。

ユーザーとグループの編集

管理サーバーでは、LDAP auth-db とファイル auth-db の両方のユーザーアカウント、グループリスト、アクセス権、組織単位、およびその他のユーザーとグループに固有の情報に関するアプリケーションデータの編集にアクセスできます。

ユーザーとグループの情報は、テキスト形式のフラットファイルに格納されるか、あるいは Sun Java System Directory Server など、LDAP (Lightweight Directory Access Protocol) をサポートするディレクトリサーバー内に格納されます。LDAP は TCP/IP 上で実行されるオープンなディレクトリアクセスプロトコルであり、グローバルなサイズと数百万件のエントリにも対応可能なスケーラビリティーを備えています。

キーファイルは、ユーザーのハッシュ形式のパスワードと、ユーザーが属するグループのリストを含むテキストファイルです。鍵ファイル内に格納されたユーザーやグループは、file レルムによってのみ、認証や承認用として使用されます。これらは、システムのユーザーやグループとは何の関係もありません。

ユーザーを追加する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「アクセス制御」>「ユーザー」タブをクリックします。

  3. 「新規」ボタンをクリックします。

  4. ユーザー情報を追加します。

    ユーザー ID とパスワードを入力します。任意で、ユーザーが属するグループを入力します。ユーザー ID は一意である必要があります。LDAP ベースの認証データベースの場合、管理サーバーは、ユーザー ID が一意であることを確認するために、検索ベース (ベース DN) から下方にディレクトリ全体を検索し、そのユーザー ID が使用されているか確認します。ただし、利用可能な場合に Directory Server の ldapmodify コマンド行ユーティリティーを使ってユーザーを作成する場合は、必ずしも一意のユーザー ID にならないことに注意してください。

グループを追加する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「アクセス制御」>「グループ」タブをクリックします。

  3. 「新規」ボタンをクリックします。

  4. グループ名を入力します。

  5. 「グループへのユーザーの追加」セクションで、既存のユーザーを検索してグループに追加します。


    注 – keyfile や digestfile などの認証データベース内でグループを作成するには、ユーザーを少なくとも 1 人指定する必要があります。


ユーザーを削除する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「アクセス制御」>「ユーザー」タブをクリックします。

  3. ユーザーを削除する必要のある認証データベースを選択します。

  4. 「ユーザーの検索」テキストボックスにユーザー ID を入力し、「検索」ボタンをクリックします。

  5. 「ユーザー ID」列からユーザーを選択し、「削除」ボタンをクリックします。


    注意 注意 – keyfile/digestfile 認証データベースから 1 人以上のユーザーを削除すると、それらのユーザーの削除後に関連する 1 つ以上のグループのメンバーが 1 人もいなくなる場合には、それらのグループも削除されます。これは、メンバーを持たないグループは、keyfile/digestfile 認証データベースでは許可されないからです。


グループを削除する

  1. 構成を選択します。

    構成のリストから構成を選択します。リストを取得するには「構成」タブをクリックします。

  2. 「アクセス制御」>「グループ」タブをクリックします。

  3. グループを削除する必要のある認証データベースを選択します。

  4. 「ユーザーの検索」テキストボックスにユーザー ID を入力し、「検索」ボタンをクリックします。

  5. 「ユーザー ID」列からユーザーを選択し、「削除」ボタンをクリックします。


    注 – グループを削除しても、そのグループに属するユーザーは削除されません。ユーザーを手動で削除するか、グループを割り当て直す必要があります。


アクセス制御の編集

サーバーは、ローカルに格納されたアクセス制御リスト (ACL) を使用することで、認証と承認をサポートします。ACL は、あるユーザーがあるリソースに対してどのようなアクセス権限を持つかを記述します。たとえば、ある ACL のエントリを使って、John という名前のユーザーに、特定のフォルダ misc に対する read アクセス権を許可することができます。

この節では、Web サイト上のファイルやディレクトリへのアクセスを制限するための手順について説明します。すべてのサーバーに対してグローバルアクセス制御規則を設定することも、特定のサーバーに対して個別に設定することもできます。たとえば、人事部門であれば、すべての認証済みユーザーが自分の給与データを参照できるが、そのデータを更新する機能へのアクセスは人事部門の給与担当者のみに制限するような ACL を作成できます。

サーバーがサポートするコア ACL では、3 種類の認証が使えます。 基本、SSL、およびダイジェストです。

アクセス制御の設定を編集するには、次のタスクを実行します。

  1. 構成」タブをクリックし、構成を選択します。

  2. アクセス制御」タブ、「アクセス制御リスト」サブタブの順にクリックします。

  3. 新規」ボタンをクリックして、新しい ACL を追加するか、既存の ACL をクリックして設定を編集します。

新しい ACL の追加

次の節では、新しい ACL を構成に追加する手順について説明します。

  1. 構成」タブをクリックし、構成を選択します。

  2. アクセス制御」タブ、「アクセス制御リスト」サブタブの順にクリックします。

  3. 新規」ボタンをクリックして新しい ACL を追加します。

次の表では、新しい ACL を追加するページのフィールドについて説明します。

表 18 フィールドの説明 > ACL の追加

フィールド

説明

リソース

「名前」、「URI」、または「パス」です。

アクセス制限を設定するリソースの種類を選択し、その値を指定します。

URI リソースの例 — “/sales”

パスリソースの例 — “/usr/sun/server4/docs/cgi-bin/*”

認証データベース

認証データベース」では、サーバーがユーザーの認証に使用するデータベースを選択できます。

デフォルトは keyfile です

認証方法

  1. 基本 — HTTP メソッドを使用してクライアントから認証情報を取得します。ユーザー名とパスワードがネットワーク上で暗号化されるのは、サーバーで SSL が有効になっている場合だけです。

  2. SSL — クライアント証明書を使用してユーザーの認証を行います。このメソッドを使用するには、サーバーの SSL を有効にする必要があります。暗号化が有効になっていれば、基本と SSL の方法を組み合わせることができます。

  3. ダイジェスト — ユーザー名とパスワードを平文として送信することなしにユーザー名とパスワードに基づく認証をブラウザが行うための手段を提供する認証機構を使用します。ブラウザは MD5 アルゴリズムを使用して、ユーザーのパスワードと Web Server によって提供される情報の一部を使用するダイジェスト値を作成します。「ダイジェスト」を使用するには、背後の auth-db もダイジェストをサポートしている必要があります。つまり、digestfile を使用したファイル auth-db と、LDAP auth-db (ダイジェスト認証プラグインがインストールされている場合のみ) のいずれかということになります。

  4. その他 — アクセス制御 API を使って作成されたカスタム方法を使用します。

認証確認テキスト

認証確認テキスト」オプションでは、認証ダイアログボックス内に表示されるメッセージテキストを入力できます。このテキストを使用して、ユーザーが入力する必要のある項目について説明することができます。ブラウザによっては、確認メッセージの最初の約 40 文字がユーザーに表示されます。

Web ブラウザは通常、ユーザー名とパスワードをキャッシュし、それらをプロンプトのテキストと関連付けます。ユーザーが同じ確認テキストを持つサーバーのファイルやディレクトリにアクセスするときは、ユーザー名とパスワードを再度入力する必要はありません。特定のファイルやディレクトリでユーザーに再度認証させたい場合は、そのリソースの ACL の確認テキストを変更すればよいだけです。

アクセス拒否時の応答

あるリソースへのアクセスが拒否された場合の応答アクションを指定します。

1. デフォルトメッセージで応答 — サーバーから標準のアクセス拒否メッセージを表示する場合に、このオプションを選択します。

2. URL で応答 — ほかの外部 URL やエラーページに要求を転送する場合に、このオプションを選択します。

「新しい ACE の追加」も参照してください。

新しい ACE の追加

この節では、選択された構成に対して新しいアクセス制御エントリ (ACE) を追加するプロセスについて説明します。

  1. 構成」タブをクリックし、構成を選択します。

  2. アクセス制御」タブ、「アクセス制御リスト」、「新規」ボタンの順にクリックします。

  3. 「アクセス制御エントリ」の下の「新規」ボタンをクリックして、新しい ACE を追加します。

次の表では、新規 ACE ウィザードページのフィールドについて説明します。

表 19 フィールドの説明 > 新しい ACE の追加

フィールド

説明

作業

  • 許可する ユーザーまたはシステムが、要求されたリソースにアクセスできることを意味します

  • 許可しない ユーザーまたはシステムが、要求されたリソースにアクセスできないことを意味します

    サーバーはアクセス制御エントリ (Access Control Entry、ACE) のリストを参照して、アクセス権を決定します。

ユーザー

1.すべて (認証なし) — 認証は行われません。すべてのユーザーにアクセスを許可します。

2. 認証データベース中のすべて — 認証データベース内に指定されたすべてのユーザーにアクセスを許可します。

3. 認証データベース中の以下だけ — 認証データベースから選択されたユーザーだけにアクセスを制限します。

認証データベースに対するクエリーを、名、姓、電子メールアドレスなどの共通属性に基づいて実行できます。

グループ

グループの認証が行われる場合、ユーザーがアクセス制御規則で指定されているリソースにアクセスするには、ユーザー名とパスワードを入力する必要があります。

特定のグループにアクセスを制限する場合に、このオプションを使用します。

アクセスを許可するホスト

どのコンピュータから要求が送られたかに基づいて、管理サーバーまたは Web サイトへのアクセスを制限できます。

  • 「すべて」では、すべてのユーザーとシステムに対してアクセスを許可します

  • 「次の転送元からのみ」では、特定のホスト名または IP アドレスへのアクセスが制限できます

「次の転送元からのみ」オプションを選択する場合は、「ホスト名」フィールドまたは「IP アドレス」フィールドに、ワイルドカードパターンまたはコンマで区切ったリストを入力します。IP アドレスよりホスト名で制限する方が、より柔軟にできます。 ユーザーの IP アドレスが変更された場合でも、このリストを更新する必要がありません。ただし、IP アドレスで制限する方が、より確実です。 接続したクライアントの DNS 検索が失敗した場合、ホスト名による制限が使用できないためです。

コンピュータのホスト名または IP アドレスに一致するワイルドカードパターン用として使用できるのは、* ワイルドカード記号だけです。たとえば、指定ドメインのすべてのコンピュータに対してアクセスを許可または拒否する場合、 *.sun.com のように、特定ドメイン内のすべてのホストと一致するワイルドカードパターンを指定します。管理サーバーにアクセスするスーパーユーザーに対しては、その他のユーザーとは異なるホスト名と IP アドレスを設定することができます。

ホスト名の場合、* は名前の構成要素全体を表している必要があります。つまり、*.sun.com は許容されますが、*users.sun.com は許容されません。* がホスト名に含まれる場合、それは左端の文字でなければいけません。

たとえば、*.sun.com は許容されますが、users.*.com は許容されません。IP アドレスの場合、* はアドレスのバイト全体を表している必要があります。たとえば、198.95.251.* は許容されますが、198.95.251.3* は許容されません。IP アドレスで * を使用する場合、この記号は文字列の一番右に使用する必要があります。たとえば、198.* は許容されますが、198.*.251.30 は許容されません。

権限

アクセス権は、Web サイトのファイルやディレクトリへのアクセスを制限します。すべてのアクセス権の許可または拒否に加えて、一部のアクセス権の許可または拒否を行うための規則を指定することもできます。たとえば、ユーザーに対してファイルへの読み取り専用アクセスを許可することができます。この設定では、ユーザーは情報を表示することはできますが、ファイルを変更することはできません。

  • 「すべてのアクセス権限」はデフォルトで、すべてアクセス権を許可または拒否します。

  • 「次の権限のみ」では、許可または拒否するアクセス権の組み合わせを選択できます。

    • 読み込みでは、ユーザーはファイルを表示できます。HTTP メソッドの GET、HEAD、POST、および INDEX があります

    • 書き込み」を選択すると、ユーザーはファイルを変更または削除できます。これには、HTTP メソッド PUT、DELETE、MKDIR、RMDIR、および MOVE.が含まれます。ファイルを削除するには、ユーザーは書き込み権限と削除権限の両方を持っている必要があります

    • 実行では、ユーザーは CGI プログラム、Java アプレット、エージェントなどのサーバー側アプリケーションを実行できます。

    • 削除」を選択すると、書き込み特権も持つユーザーがファイルやディレクトリを削除できます。

    • リストでは、ユーザーは、index.html ファイルを含まないディレクトリ内のファイルのリストにアクセスできます。

    • 情報」を選択すると、ユーザーは、http_head などの URI に関する情報を受け取れます。

継続

サーバーはアクセス制御エントリ (Access Control Entry、ACE) のリストを参照して、アクセス権を決定します。たとえば、最初の ACE は通常、すべてのユーザーを拒否します。最初の ACE に「継続」が設定されている場合、サーバーはリストの 2 番目の ACE を確認し、一致している場合は、次の ACE を使用します。

「継続」チェックボックスが選択されていない場合は、すべてのユーザーがリソースへのアクセスを拒否されます。サーバーは、一致しない ACE か、一致しているが継続しないように設定されている ACE のどちらかに到達するまでリストを参照し続けます。一致する最後の ACE によって、アクセスが許可されるか拒否されるかが決まります。

「新しい ACL の追加」も参照してください。