ポリシー・ファイル作成および管理

インストールしたシステムのJavaセキュリティ・ポリシーを定義する、外部ポリシー構成ファイルの作成と修正を行います。

目次

はじめに

Policy Toolの使用法
Policy Toolの起動
新しいポリシー・ファイルの作成
ほかのポリシー・ファイルのオープン
キーストアの指定
新しいポリシー・エントリの追加
新しいプリンシパルの追加
プリンシパルの編集
プリンシパルの削除
新しいアクセス権の追加
アクセス権の編集
アクセス権の削除
ポリシー・エントリの追加の完了
ポリシー・エントリの編集
ポリシー・エントリの削除
ポリシー・ファイルの保存
Policy Toolの終了
警告ログの表示

ユーザー・ポリシー・ファイルの作成の開始
ポリシー・エントリの追加
キーストアの指定
SignedBy別名を指定したポリシー・エントリの追加
プリンシパルを指定したポリシー・エントリの追加
ユーザー・ポリシー・ファイルの保存
Policy Toolの終了

関連項目

はじめに

Java実行時のポリシーは、さまざまなソースを出所とするコードが、さまざまなプリンシパルとして実行されるときに、どのようなアクセス権を利用できるかを指定するもので、Policyオブジェクトによって表現されます。デフォルトのPolicyの実装は、静的なASCII形式のポリシー構成ファイルから情報を取得します。

ポリシー・ファイルは、簡単なテキスト・エディタを使用するか、このドキュメントで説明するグラフィカルなPolicy Toolユーティリティを使用して作成できます。Policy Toolを使うと、入力の手間を省けるだけでなく、ポリシー・ファイルの構文について知る必要がなくなるため、エラーを減らすことができます。

「Policy Toolの使用法」セクションでは、Policy Toolを使用してポリシー・ファイルを作成および修正する方法について説明します。

「例」セクションでは、Policy Toolの使用例を紹介し、詳しく説明します。

「関連項目」セクションでは、関連するドキュメントへのリンクを提供します。

Policy Toolの使用法

Policy Toolの起動

Policy Toolを起動するには、コマンド行に次のように入力します。

  policytool

「Policy Tool」ウィンドウが表示されます。

Policy Toolは、起動するたびに、「ユーザー・ポリシー・ファイル」とも呼ばれるファイルからポリシー情報を取得して、ウィンドウに表示しようとします。デフォルトのユーザー・ポリシー・ファイルは、ホーム・ディレクトリにある.java.policyという名前のファイルです。ポリシー・ファイルが見つからない場合は、そのことを示すメッセージと空白の「Policy Tool」ウィンドウが表示されます。つまり、ウィンドウに見出しやボタンは表示されますが、データは含まれていません(次の画面を参照)。

ポリシーを追加、編集、削除するための「Policy Tool」ウィンドウ

続いて、作業する任意のポリシー・ファイルを開くことができます。また、ポリシー・エントリを追加したり、必要に応じてキーストアを指定したりして、ファイルを保存すれば、新しいポリシー・ファイルを作成することもできます。

Policy Toolをはじめて実行した時点では、ユーザー・ポリシー・ファイルは存在していません(手動で作成した場合を除く)。

新しいポリシー・ファイルの作成

新しいポリシー・ファイルを作成するには、「ファイル」メニューから「新規」コマンドを選択します。現在開かれているポリシー・ファイルがあれば、必要に応じてファイルの保存を促すメッセージが表示された後で、そのファイルが閉じられて、新しい「Policy Tool」ウィンドウが表示されます。そのウィンドウには見出しやボタンが表示されていますが、データは含まれていません。

注: 上記の操作は、Policy Toolをはじめて実行する場合は必要ありません。Policy Toolはユーザー・ポリシー・ファイルを開こうとしますが、そのファイルがまだ存在しないため(手動で作成した場合を除く)、データが何も含まれていないウィンドウが表示されます。

新しい「Policy Tool」ウィンドウが表示されたら、ポリシー・エントリを作成したり、キーストアを指定したり(キーストア別名を指定したポリシー・エントリがある場合)することができます。ポリシー・ファイルは、いつでも保存できます。

ほかのポリシー・ファイルのオープン

現在作業中のポリシー・ファイルとは別のポリシー・ファイルで作業するには、「ファイル」メニューの「開く」コマンドを使います。

現在開かれているポリシー・ファイルがあれば、必要に応じてファイルの保存を促すメッセージが表示された後で、そのファイルが閉じられ、「開く」ダイアログが表示されます。このダイアログでは、ディレクトリ構造を移動して、作業するポリシー・ファイルがあるディレクトリを検索できます。ファイルを選択し、「了解」ボタンを選択します。

選択したポリシー・ファイルの情報が「Policy Tool」ウィンドウに表示されます。表示される情報は、ポリシー・ファイル名、キーストアのURL (存在する場合)、そしてポリシー・ファイル内の各ポリシー・エントリのCodeBase、SignedBy、およびプリンシパル・パートです。

キーストアの指定

ポリシー・エントリのSignedByパートで指定された別名の鍵情報を含むキーストアを指定するには、「キーストア」メニューの「編集」コマンドを選択します。

ダイアログ・ボックスが表示されたら、新しいキーストアのURLと、キーストアのタイプ(オプション)を指定します。

たとえば、/tests/ディレクトリにある「mykeystore」という名前のキーストアを指定するには、「新規キーストアのURL」というラベルの付いたテキスト・ボックスに、次のfile: URLを入力します。

  file:/tests/mykeystore

また、キーストアのタイプとしてJKS (オラクル社がサポートしている独自のキーストアのタイプ)を指定するには、「新規キーストアのタイプ」というラベルの付いたテキスト・ボックスに、次のように入力します。

  JKS

キーストアのURLと、必要に応じてタイプを指定したら、「了解」を選択します。操作を取り消す場合は、「取消し」を選択します。操作を取り消さなかった場合は、「キーストア:」というラベルの付いたテキスト・ボックスに、指定したキーストアのURLとタイプが表示されます。

新しいポリシー・エントリの追加

新しいポリシー・エントリを追加するには、「Policy Tool」メイン・ウィンドウで「ポリシー・エントリの追加」ボタンを選択します。

「ポリシー・エントリ」ダイアログ・ボックスが表示されます。

ポリシー・エントリを追加するための「ポリシー・エントリ」ダイアログ

このダイアログ・ボックスでは、次の情報を指定します

SignedByの値は、署名者に関連付けられた一式の公開鍵に、キーストアを使ってマッピングされる別名の文字列です。これらの公開鍵は、指定されたコード・ソースからのクラスが、実際にこれらの署名者によって署名されていることを検証するために使われます。

SignedByの値には、複数の署名者をカンマで区切った文字列を指定できます。たとえば、「Adam,Eve,Charles」のように指定します。この場合は、各要素がORではなくANDで結合され、「AdamとEveとCharlesによって署名された」という意味になります。

SignedByの値はオプションです。省略した場合は、「任意の署名者」という意味になり、コードに署名がなされているかどうかが検証されなくなります。同様に、CodeBaseエントリを省略した場合は、「任意のコード」という意味になり、コードの出所が検証されなくなります。

このため、CodeBaseエントリが存在しない場合は、指定された別名の署名が付いたすべてのコードに対し、指定されたアクセス権が与えられます。また、SignedByエントリが存在しない場合は、コードに署名がなされているかどうか、まただれが署名したかには関係なく、指定されたCodeBaseを出所とするすべてのコードに対して、指定されたアクセス権が与えられます。CodeBaseエントリとSignedByエントリがどちらも存在しない場合は、すべてのコードに対して、指定されたアクセス権が与えられます。

注: CodeBase値の正確な意味は、末尾の文字によって異なります。末尾が「/」のCodeBaseは、指定されたディレクトリ内のすべてのクラス・ファイル(JARファイルを除く)を示します。末尾が「/*」のCodeBaseは、そのディレクトリ内にあるすべてのファイル(クラス・ファイルとJARファイルの両方)を示します。末尾が「/-」のCodeBaseは、指定されたディレクトリとその下の全サブディレクトリ内のすべてのファイル(クラス・ファイルとJARファイルの両方)を示します。

プリンシパル・エントリには、「プリンシパルの値」のリストを指定します。それぞれのプリンシパルの値には、実行しているスレッドのプリンシパル・セット内に存在する必要があるprincipal_typeとprincipal_nameのペアを指定します。プリンシパル・エントリはオプションです。省略した場合は、「任意のプリンシパル」という意味になります。

principal_typeが指定されておらず、principal_nameが引用符で囲まれた文字列である場合は、実行時にポリシー・ファイルが処理されるときに、その文字列はキーストアの別名として扱われます。キーストアは別名を経由してX509証明書を調査し、問い合わせます。その証明書が見つかった場合、プリンシパルのタイプはjavax.security.auth.x500.X500Principalであると自動的に想定され、実際のプリンシパルの名前は、証明書にあるSubjectとして識別された名前であると想定されます。X509証明書へのマッピングが見つからない場合は、指定されたプリンシパルにアクセス権を付与しているポリシー・エントリ全体が無視されます。

新しいプリンシパルの追加

新しいプリンシパルを追加するには、「ポリシー・エントリ」ダイアログ・ボックスで「プリンシパルの追加」ボタンを選択します。「プリンシパル」ダイアログ・ボックスが表示されます。

新しいプリンシパルを追加するための「プリンシパル」ダイアログ

プリンシパルを追加するには、次のようにします。

  1. プリンシパルのタイプを入力するか、または選択します。

    「プリンシパルのタイプ:」というラベルの付いたドロップ・ダウン・リストには、組み込まれているプリンシパルのタイプのリストが表示されます。リストにあるタイプを指定する場合は、リストからそのタイプを選択します。選択したプリンシパルのタイプの完全な名前が、ドロップ・ダウン・リストの右側のテキスト・ボックスに表示されます。

    ユーザーが定義したプリンシパルのタイプを指定する場合は、そのプリンシパルのタイプをテキスト・ボックスに入力します。

  2. プリンシパルの名前を入力します。

    プリンシパルの名前を、「プリンシパルの名前:」テキスト・ボックスに直接入力します。たとえば、Signerという名前のプリンシパルを指定するには、次のように入力します

    Signer
    

プリンシパルの情報を指定したら、「了解」ボタンを選択します。操作を取り消す場合は、「取消し」を選択します。新しいプリンシパルの行が「プリンシパル」エントリに表示されます。

このあと、同じ手順に従って別のプリンシパルを追加することができます。既存のプリンシパルを編集または削除することもできます。

プリンシパルの編集

既存のプリンシパルを編集するには、「プリンシパル:」エントリでプリンシパルの行を選択し、「プリンシパルの編集」ボタンを選択します。または、そのプリンシパルの行をダブルクリックするだけでも、プリンシパルを編集できるようになります。

新しいプリンシパルを追加するときと同じ「プリンシパル」ダイアログ・ボックスが表示されます。ただし、この場合は、既存のプリンシパルの情報が表示されています。表示されている情報を変更するには、ドロップ・ダウン・リストから新しい値を選択するか、またはテキスト・ボックスの情報を新しい値で置き換えます。

終わったら、「了解」ボタンを選択します。変更を取り消す場合は、「取消し」を選択します。「プリンシパル:」エントリに、修正後のプリンシパルの情報が表示されます。

プリンシパルの削除

既存のプリンシパルを削除するには、「プリンシパル:」エントリでプリンシパルの行を選択し、「プリンシパルの削除」ボタンを選択します。

新しいアクセス権の追加

新しいアクセス権を追加するには、「ポリシー・エントリ」ダイアログ・ボックスで「アクセス権の追加」ボタンを選択します。「アクセス権」ダイアログ・ボックスが表示されます。

新しいアクセス権を追加するための「アクセス権」ダイアログ

アクセス権を追加するには、次のようにします。

  1. アクセス権のタイプを入力するか、または選択します。

    「アクセス権:」というラベルの付いたドロップ・ダウン・リストには、組み込まれているアクセス権のタイプのリストが表示されます。リストにあるタイプを指定する場合は、リストからそのタイプを選択します。選択したアクセス権のタイプの完全な名前が、ドロップ・ダウン・リストの右側のテキスト・ボックスに表示されます。

    ユーザーが定義したアクセス権のタイプを指定する場合は、そのアクセス権のタイプをテキスト・ボックスに入力します。

  2. アクセス権のターゲット名を入力するか、または選択します。

    「アクセス権:」ドロップ・ダウン・リストから組込みのアクセス権を選択した場合、そのタイプのアクセス権に特定のターゲット名の値があるときは、「ターゲット名:」というラベルの付いたドロップ・ダウン・リストにその値のリストが表示されるので、そのリストから値を選択します。

    ターゲット名の選択肢が無限にある場合でも、特別な意味を持つ組込みのターゲット名があるときは、そのようなターゲット名がドロップ・ダウン・リストに表示されます。たとえば、ファイル・アクセス権のリストには、特別なターゲット名として「<<All FILES>>」が表示されます。

    ドロップ・ダウン・リストにないターゲット名を指定するには、「ターゲット名:」ドロップ・ダウン・リストの右側のテキスト・ボックスにターゲット名を直接入力します。たとえば、/ptTest/ディレクトリ内のdataという名前のファイルを指定するには、次のように入力します。

      /ptTest/data
    
  3. アクションを指定する必要がある場合は、1つ以上のアクションを入力するか、または選択します。

    一部のアクセス権は、ターゲット名だけを持ち、アクションを持っていません。このようなアクセス権では、「アクション:」ドロップ・ダウン・リストの右側のテキスト・ボックスを空白のままにしておきます。そのアクセス権が組込みのアクセス権の場合は、テキスト・ボックスが自動的に淡色表示になり、利用できなくなります。

    アクションの指定が必要なアクセス権の場合は、カンマで区切ったアクションのリストをテキスト・ボックスに入力するか、またはドロップ・ダウン・リストからアクションを選択します。たとえば、ファイル・アクセス権に指定されたファイルに対して読込みと書込みの両方のアクセス権を指定するには、まずリストから「read」(または「write」、順序は任意)を選択します。テキスト・ボックスに「read」と表示されます。次に、「write」を選択します。カンマとスペースが入力され、その後に「write」と表示されます。

  4. 必要に応じて、「署名者」ラベルの右側のテキスト・ボックスにSignedBy別名を入力します。アクセス権エントリでは、SignedByの値はオプションです。この値が存在する場合は、署名付きアクセス権であることを示します。つまり、そのアクセス権を与えられるようにするためには、アクセス権クラスそれ自体が、指定された別名によって署名されていなければなりません。

アクセス権の情報を指定したら、「了解」ボタンを選択します。操作を取り消す場合は、「取消し」を選択します。新しいアクセス権の行が「ポリシー・エントリ」ダイアログに表示されます。

このあと、同じ手順に従ってアクセス権を追加することができます。既存のアクセス権を編集または削除することもできます。

アクセス権の編集

既存のアクセス権を編集するには、「ポリシー・エントリ」ダイアログ・ボックスでアクセス権の行を選択し、「アクセス権の編集」ボタンを選択します。または、アクセス権の行をダブルクリックするだけでも、そのアクセス権を編集できるようになります。

新しいアクセス権を追加するときと同じ「アクセス権」ダイアログ・ボックスが表示されます。ただし、この場合は、既存のアクセス権の情報が表示されています。表示されている情報を変更するには、ドロップ・ダウン・リストから新しい値を選択するか、またはテキスト・ボックスの情報を新しい値で置き換えます。

終わったら、「了解」ボタンを選択します。変更を取り消す場合は、「取消し」を選択します。「ポリシー・エントリ」ダイアログ・ボックスに、修正後のアクセス権の情報が表示されます。

アクセス権の削除

既存のアクセス権を削除するには、「ポリシー・エントリ」ダイアログ・ボックスでそのアクセス権の行を選択し、「アクセス権の削除」ボタンを選択します。

ポリシー・エントリの追加の完了

ポリシー・エントリの追加が終わったら、「ポリシー・エントリ」ダイアログ・ボックスの「完了」ボタンを選択します。操作を取り消す場合は、「取消し」を選択します。

「完了」を選択すると、これまでの操作で設定されたポリシー・エントリを表す行が「Policy Tool」ウィンドウに表示されます。この行には、CodeBase、SignedBy、およびプリンシパルの情報(存在する場合)が含まれています。「ポリシー・エントリ」ダイアログ・ボックスで、どの情報も指定しなかった場合は、

  CodeBase <ALL>

とだけ表示されます。

注意: キーストアにまだ存在していないSignedBy別名がポリシー・エントリに含まれている場合は、ポリシー・エントリを閉じる時点で警告が表示されます。この場合は、「了解」を選択し、該当する別名を後で作成します。別名の指定に誤りがある場合は、ポリシー・エントリを編集して、別名を修正します。

ポリシー・エントリの編集

既存のポリシー・エントリを編集するには、「Policy Tool」メイン・ウィンドウでそのエントリの行を選択し、「ポリシー・エントリの編集」ボタンを選択します。または、エントリの行をダブルクリックするだけでも、そのエントリが編集できるようになります。

新しいポリシー・エントリを追加するときと同じ「ポリシー・エントリ」ダイアログ・ボックスが表示されます。ただし、この場合は、既存のポリシー・エントリの情報が表示されています。表示されている情報を変更するには、CodeBaseおよびSignedByの値の場合は、必要な直接入力し、プリンシパルおよびアクセス権の値の場合は、ボタンを使用して情報を変更します。

終わったら、「完了」ボタンを選択します。操作を取り消す場合は、「取消し」を選択します。

ポリシー・エントリの削除

ポリシー・ファイルからポリシー・エントリを削除するには、「Policy Tool」メイン・ウィンドウでそのエントリの行を選択し、「ポリシー・エントリの削除」ボタンを選択します。

選択したポリシー・エントリ全体が表示されます。このエントリを削除するには「了解」を選択し、このエントリを削除しない場合は「取消し」を選択します。

ポリシー・ファイルの保存

既存のポリシー・ファイルに対する変更内容を保存するには、「ファイル」メニューの「保存」コマンドを選択します。

作成した新しいポリシー・ファイルを保存したり、既存のポリシー・ファイルを新しい名前のポリシー・ファイルにコピーしたりするには、「ファイル」メニューの「別名保存」コマンドを選択します。「別名保存」ダイアログ・ボックスが表示されます。

ディレクトリ構造を移動して、ポリシー・ファイルの保存先のディレクトリを選択します。ファイル名を入力し、「了解」ボタンを選択します。ポリシー・ファイルが保存され、そのファイルの名前とパスが、「ポリシー・ファイル:」というラベルの付いたテキスト・ボックスに表示されます

Policy Toolの終了

Policy Toolを終了するには、「ファイル」メニューの「終了」コマンドを選択します。

警告ログの表示

Policy Toolが、警告を警告ログに保存したというメッセージを表示した場合は、「ファイル」メニューの「警告ログの表示」コマンドを選択すれば、警告ログを表示できます。

たとえば、ポリシー・ファイルでキーストアのURLを指定していて、このキーストアがまだ存在していない場合は、ファイルを開くときなど、さまざまな場面で警告が表示されます。警告が存在する場合でも、ポリシー・ファイルの作業は続行できます。

このあと紹介する例では、次の操作を実行する方法を説明します。

ユーザー・ポリシー・ファイルの作成の開始

初期状態では、ユーザー・ポリシー・ファイルは存在していません(手動で作成した場合を除く)。ユーザー・ポリシー・ファイルを作成するには、コマンド行に次のように入力してPolicy Toolを起動します。

  policytool

「Policy Tool」ウィンドウが表示されます。

Policy Toolは、起動するたびに、「ユーザー・ポリシー・ファイル」とも呼ばれるファイルからポリシー情報を取得して、ウィンドウに表示しようとします。デフォルトのユーザー・ポリシー・ファイルは、ホーム・ディレクトリにある.java.policyという名前のファイルです。ポリシー・ファイルが見つからない場合は、そのことを示すメッセージと空白の「Policy Tool」ウィンドウが表示されます。つまり、ウィンドウに見出しやボタンは表示されますが、データは含まれていません(次の画面を参照)。

ユーザー・プロファイルを作成するための「Policy Tool」ウィンドウ

このウィンドウでエントリを追加してファイルを保存すれば、ユーザー・ポリシー・ファイルを作成できます。

ポリシー・エントリの追加

たとえば、/tests/ディレクトリからのすべてのクラスに対し、/temp/data/ディレクトリ内のmydataという名前のファイルを読み取るアクセス権を許可するとします。この場合は、まず、「Policy Tool」メイン・ウィンドウで「ポリシー・エントリの追加」ボタンを選択します。

「ポリシー・エントリ」ダイアログ・ボックスが表示されます。

ポリシー・エントリを追加するための「ポリシー・エントリ」ダイアログ

このダイアログ・ボックスでは、

  file:/tests/

というファイルURLを「CodeBase」テキスト・ボックスに入力します。

コードに署名がなされている必要はないので、「SignedBy」テキスト・ボックスは空白のままにします。

コードが認証されている必要はないので、「プリンシパル」リストは空白のままにします。

アクセス権を追加するために、「アクセス権の追加」ボタンを選択します。「アクセス権」ダイアログ・ボックスが表示されます。

新しいアクセス権を追加するための「アクセス権」ダイアログ

アクセス権を追加するには、次のようにします。

  1. 「アクセス権:」ドロップ・ダウン・リストから「ファイル・アクセス権」を選択します。アクセス権のタイプの完全な名前(java.io.FilePermission)が、ドロップ・ダウン・リストの右側のテキスト・ボックスに表示されます。
  2. 「ターゲット名:」というラベルの付いたリストの右側のテキスト・ボックスに、次のように入力します。
      /temp/data/mydata
    
  3. 読取りアクセス権を指定するために、「アクション:」ドロップ・ダウン・リストから「read」を選択するか、または「アクション:」ドロップ・ダウン・リストの右側のテキスト・ボックスに「read」と直接入力します。

ここまでの操作で、「アクセス権」ダイアログ・ボックスには、次のように表示されています。

追加する新しいアクセス権が表示された「アクセス権」ダイアログ

アクセス権の情報を指定したら、「了解」ボタンを選択します。新しいアクセス権の行が「ポリシー・エントリ」ダイアログに表示されます。

「ポリシー・エントリ」ダイアログに表示されたアクセス権

これで、このポリシー・エントリの指定は終わりです。「完了」ボタンを選択します。ここで指定したポリシー・エントリを表す行が「Policy Tool」ウィンドウに表示されます。この行にはCodeBaseの値のみが含まれています。

CodeBaseが1つ表示された「Policy Tool」ウィンドウ

キーストアの指定

ここでは、「http://example.com/」というURLにあるコードのうち、別名「Signer」の署名者によって署名された任意のコードに対して、/tmp/ディレクトリ内のすべてのファイルへの読取りアクセス権を許可するとします。さらに、これらのコードに、任意のホストに対する送信ソケット接続を開始できるアクセス権も許可するとします。この場合は、次の2つの操作を行う必要があります。

  1. 必要な別名の入ったキーストアを指定する
  2. 必要なアクセス権を許可するためのポリシー・エントリを作成する

ポリシー・エントリのSignedByパートで指定された別名の鍵情報を含むキーストアを指定するには、「Policy Tool」メイン・ウィンドウで「キーストア」メニューの「編集」コマンドを選択します。

ダイアログ・ボックスが表示されたら、新しいキーストアのURLと、キーストアのタイプ(オプション)を指定します。

たとえば、/tests/ディレクトリにある「mykeystore」という名前のキーストアを指定するには、「新規キーストアのURL」というラベルの付いたテキスト・ボックスに、次のfile: URLを入力します。

  file:/tests/mykeystore

キーストアのタイプが、セキュリティ・プロパティ・ファイル内のkeystore.typeプロパティの値により指定されたデフォルトのタイプの場合は、「新規キーストアのタイプ」の値を入力する必要はありません。このプロパティのデフォルトの値は、「JKS」(オラクル社がサポートする独自のキーストアのタイプ)です。

キーストアのタイプを指定するには、「新規キーストアのタイプ」というラベルの付いたテキスト・ボックスに値を入力します。たとえば、キーストアのタイプが「JKS」であることを示すには、次のように入力します。

  JKS

ダイアログ・ボックスには、次のように表示されます。

キーストアのタイプとURLを指定するための「キーストア」ダイアログ

キーストアのURLとタイプを指定したら、「了解」を選択します。「キーストア:」というラベルの付いたテキスト・ボックスに、ここで指定したキーストアのURLとタイプが表示されます。

次に、ポリシー・エントリを指定する必要があります。

SignedBy別名を指定したポリシー・エントリの追加

「ポリシー・ツール」メイン・ウィンドウで「ポリシー・エントリの追加」ボタンを選択します。「ポリシー・エントリ」ダイアログ・ボックスが表示されます。「CodeBase」テキスト・ボックスに、次のように入力します。

  http://example.com/*

「*」は、このCodeBaseが指定したディレクトリ内のクラス・ファイルとJARファイルの両方を示すことを意味します。

「SignedBy」テキスト・ボックスには、次の別名を入力します。

  Signer

コードが認証されている必要はないので、「プリンシパル」リストは空白のままにします。

指定する2つのアクセス権のうち、最初のアクセス権を追加するために、「アクセス権の追加」ボタンを選択します。「アクセス権」ダイアログ・ボックスが表示されます。次のように操作します。

  1. 「アクセス権:」ドロップ・ダウン・リストから「ファイル・アクセス権」を選択します。アクセス権のタイプの完全な名前(java.io.FilePermission)が、ドロップ・ダウン・リストの右側のテキスト・ボックスに表示されます。
  2. 「ターゲット名:」というラベルの付いたリストの右側のテキスト・ボックスに、次のように入力し、/tmp/ディレクトリ内のすべてのファイルを指定します。
      /tmp/*
    
  3. 読取りアクセス権を指定するために、「アクション:」ドロップ・ダウン・リストから「read」を選択します。

「アクセス権」ダイアログ・ボックスには、次のように表示されます。

追加する新しいアクセス権が表示された「アクセス権」ダイアログ

「了解」ボタンを選択します。新しいアクセス権の行が「ポリシー・エントリ」ダイアログに表示されます。

次に、2つ目のアクセス権を指定する必要があります。「アクセス権の追加」ボタンを選択します。「アクセス権」ダイアログ・ボックスで、次のように操作します。

  1. 「アクセス権:」ドロップ・ダウン・リストから「ソケット・アクセス権」を選択します。アクセス権のタイプの完全な名前(java.net.SocketPermission)が、ドロップ・ダウン・リストの右側のテキスト・ボックスに表示されます。
  2. 「ターゲット名:」というラベルの付いたリストの右側のテキスト・ボックスに、次のように入力し、すべてのホストを指定します。
      *
    
  3. 接続を行う許可を指定するために、「アクション:」ドロップ・ダウン・リストから「connect」を選択します。

「アクセス権」ダイアログ・ボックスには、次のように表示されます。

選択したソケット・アクセス権が表示された「アクセス権」ダイアログ

「了解」ボタンを選択します。新しいアクセス権の行が「ポリシー・エントリ」ダイアログに表示されます。

アクセス権が2つ表示された「ポリシー・エントリ」ダイアログ

これで、ポリシー・エントリの指定は終わりです。「ポリシー・エントリ」ダイアログの「完了」ボタンを選択します。「Policy Tool」ウィンドウに、指定したCodeBase、SignedByおよびプリンシパルの値を含むポリシー・エントリの行が表示されます。

CodeBaseが2つ表示された「Policy Tool」ウィンドウ

プリンシパルを指定したポリシー・エントリの追加

ここでは、次のようなX500名を持つプリンシパルにアクセス権を与えるとします。

CN=Signer,O=Oracle,C=US

このプリンシパルに、/tmp/ディレクトリに対する書込みを許可します。

「ポリシー・ツール」メイン・ウィンドウで「ポリシー・エントリの追加」ボタンを選択します。「ポリシー・エントリ」ダイアログ・ボックスが表示されます。

コードの出所は制限しないので、「CodeBase」テキスト・ボックスは空白のままにします。

コードに署名がなされている必要はないので、「SignedBy」テキスト・ボックスは空白のままにします。

「プリンシパルの追加」ボタンを選択します。「プリンシパル」ダイアログ・ボックスで、次のように操作します。

  1. 「プリンシパルのタイプ:」ドロップ・ダウン・リストから「X500Principal」を選択します。プリンシパルのタイプの完全な名前(com.sun.security.auth.X500Principal)が、ドロップ・ダウン・リストの右側のテキスト・ボックスに表示されます。
  2. 「プリンシパルの名前:」というラベルの付いたリストの右側のテキスト・ボックスに、次のように入力して、X500PrincipalのX500名を指定します。
    CN=Signer,O=Oracle,C=US
    

「プリンシパル」ダイアログ・ボックスには、次のように表示されます。

X500Principalを追加するための「プリンシパル」ダイアログ

「了解」ボタンを選択します。新しいプリンシパルの行が「プリンシパル」リストに表示されます。

X500Principalが表示された「ポリシー・エントリ」ダイアログ

アクセス権を追加するために、「アクセス権の追加」ボタンを選択します。「アクセス権」ダイアログ・ボックスが表示されます。次のように操作します。

  1. 「アクセス権:」ドロップ・ダウン・リストから「ファイル・アクセス権」を選択します。アクセス権のタイプの完全な名前(java.io.FilePermission)が、ドロップ・ダウン・リストの右側のテキスト・ボックスに表示されます。
  2. 「ターゲット名:」というラベルの付いたリストの右側のテキスト・ボックスに、次のように入力し、/tmp/ディレクトリ内のすべてのファイルを指定します。
      /tmp/*
    
  3. 書込みアクセス権を指定するために、「アクション:」ドロップ・ダウン・リストから「write」を選択します。

「了解」ボタンを選択します。新しいアクセス権の行が「ポリシー・エントリ」ダイアログに表示されます。

X500Principalとファイル・アクセス権が表示された「ポリシー・エントリ」ダイアログ

これで、ポリシー・エントリの指定は終わりです。「ポリシー・エントリ」ダイアログの「完了」ボタンを選択します。「Policy Tool」ウィンドウに、指定したCodeBase、SignedByおよびプリンシパルの値を含むポリシー・エントリの行が表示されます。

CodeBaseが3つ表示された「Policy Tool」ウィンドウ

ユーザー・ポリシー・ファイルの保存

ここでは、作成したポリシー・ファイルを、デフォルトの場所(ホーム・ディレクトリ)にデフォルトの名前(.java.policy)で保存するとします。

作成したユーザー・ポリシー・ファイルを保存するために、「ファイル」メニューの「別名保存」コマンドを選択します。「別名保存」ダイアログ・ボックスが表示されます。

ホーム・ディレクトリまでディレクトリ構造を移動します。型

  .java.policy

先頭にピリオドがあることに注意してください。その後、「了解」ボタンを選択します。ポリシー・ファイルが保存され、そのファイルの名前とパスが、「ポリシー・ファイル:」というラベルの付いたテキスト・ボックスに表示されます。

3つのCodeBase、キーストアおよびポリシー・ファイル名が表示された「Policy Tool」ウィンドウ

Policy Toolの終了

Policy Toolを終了するには、「ファイル」メニューの「終了」コマンドを選択します。

関連項目


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.