Java 実行時のポリシーは、さまざまなソースを出所とするコードが、さまざまなプリンシパルとして実行されるときに、どのようなアクセス権を利用できるかを指定するもので、Policy オブジェクトによって表現されます。 デフォルトの Policy の実装は、静的な ASCII 形式のポリシー構成ファイルから情報を取得します。
ポリシーファイルは、簡単なテキストエディタを使用するか、このドキュメントで説明するグラフィカルな 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 をはじめて実行した時点では、ユーザポリシーファイルは存在していません (手動で作成した場合を除く)。
新しいポリシーファイルの作成
新しいポリシーファイルを作成するには、[File] メニューから [New] コマンドを選択します。 現在開かれているポリシーファイルがあれば、必要に応じてファイルの保存を促すメッセージが表示されたあとで、そのファイルが閉じられて、新しい [Policy Tool] ウィンドウが表示されます。そのウィンドウには見出しやボタンが表示されていますが、データは含まれていません。注: 上記の操作は、Policy Tool をはじめて実行する場合は必要ありません。 Policy Tool はユーザポリシーファイルを開こうとしますが、そのファイルがまだ存在しないため (手動で作成した場合を除く)、データが何も含まれていないウィンドウが表示されます。
新しい [Policy Tool] ウィンドウが表示されたら、ポリシーエントリを作成したり、キーストアを指定したり (キーストア別名を指定したポリシーエントリがある場合) することができます。 ポリシーファイルは、いつでも保存できます。
ほかのポリシーファイルのオープン
現在作業中のポリシーファイルとは別のポリシーファイルで作業するには、[File] メニューの [Open] コマンドを使います。現在開かれているポリシーファイルがあれば、必要に応じてファイルの保存を促すメッセージが表示されたあとで、そのファイルが閉じられ、[Open] ダイアログが表示されます。このダイアログでは、ディレクトリ構造を移動して、作業するポリシーファイルがあるディレクトリを検索できます。 ファイルを選択し、[Open] ボタンを選択します。
選択したポリシーファイルの情報が [Policy Tool] ウィンドウに表示されます。表示される情報は、ポリシーファイル名、キーストアの URL (存在する場合)、そしてポリシーファイル内の各ポリシーエントリの CodeBase、SignedBy、および Principal パートです。
キーストアの指定
ポリシーエントリの SignedBy パートで指定された別名の鍵情報を含むキーストアを指定するには、[Edit] メニューの [Change KeyStore] コマンドを選択します。ダイアログボックスが表示されたら、新しいキーストアの URL と、キーストアの型 (省略可能) を指定します。
たとえば、
D:
ドライブのtests
ディレクトリにある mykeystore という名前のキーストアを指定するには、 [New KeyStore URL] テキストボックスに URL を入力します。file:/D:/tests/mykeystoreまた、キーストアの型として JKS (Sun がサポートしている独自のキーストアの型) を指定するには、[New KeyStore Type] というラベルの付いたテキストボックスに、次のように入力します。JKS注: [New KeyStore URL] の値は URL であるため、キーストアが Microsoft Windows システム上にあるときでも、ディレクトリの区切り文字には常にスラッシュを使い、円記号は使いません。
キーストアの URL と、必要に応じて型を指定したら、[OK] を選択します。操作を取り消す場合は、[Cancel] を選択します。 操作を取り消さなかった場合は、[Keystore:] というラベルの付いたテキストボックスに、指定したキーストアの URL とタイプが表示されます。
新しいポリシーエントリの追加
新しいポリシーエントリを追加するには、[Policy Tool] メインウィンドウで [Add Policy Entry] ボタンを選択します。[Policy Entry] ダイアログボックスが表示されます。
このダイアログボックスでは、次の情報を指定します。
- [CodeBase] エントリ (省略可能)。コードの出所を表す URL を指定します。 たとえば、
D
ドライブでローカルのJavaSoft¥TESTS¥
ディレクトリからのコードを指定するには、[CodeBase] テキストボックスで次のように file: URL と入力します。file:/D:/JavaSoft/TESTS/注: CodeBase の値には URL が含まれるため、コードソースが Microsoft Windows システム上にあるときでも、ディレクトリの区切り文字には常にスラッシュを使い、円記号は使いません。
- [SignedBy] エントリ (省略可能)。コードに署名するために使われた非公開鍵を所有する署名者を参照するための、キーストアにある別名を指定します。 たとえば、「duke」という別名を指定するには、[SignedBy] テキストボックスに次のように入力します。
duke
- [Principals] エントリ (省略可能)。アクセス権が許可されるために、どのプリンシパルとしてコードを実行する必要があるかを示す、プリンシパルのリストを指定します。 「新しいプリンシパルの追加」を参照してください。
- 1 つ以上のアクセス権エントリ。CodeBase および SignedBy の値によって指定されたソースからのコード (これらの値が指定されていない場合は任意のコード) に許可するアクセス権を指定します。 「新しいアクセス権の追加」を参照してください。
SignedBy の値は、署名者に関連付けられた一式の公開鍵に、キーストアを使ってマッピングされる別名の文字列です。 これらの公開鍵は、指定されたコードソースからのクラスが、実際にこれらの署名者によって署名されていることを検証するために使われます。
SignedBy の値には、複数の署名者をコンマで区切った文字列を指定できます。たとえば、「Adam,Eve,Charles」のように指定します。この場合は、各要素が OR ではなく AND で結合され、「Adam と Eve と Charles によって署名された」という意味になります。
SignedBy の値は省略できます。省略した場合は、「任意の署名者」という意味になり、コードに署名がなされているかどうかが検証されなくなります。 同様に、CodeBase エントリを省略した場合は、「任意のコード」という意味になり、コードの出所が検証されなくなります。
このため、CodeBase エントリが存在しない場合は、指定された別名の署名が付いたすべてのコードに対し、指定されたアクセス権が与えられます。また、SignedBy エントリが存在しない場合は、コードに署名がなされているかどうか、まただれが署名したかには関係なく、指定された CodeBase を出所とするすべてのコードに対して、指定されたアクセス権が許可されます。 CodeBase エントリと SignedBy エントリがどちらも存在しない場合は、すべてのコードに対して、指定されたアクセス権が許可されます。
注: CodeBase 値の正確な意味は、末尾の文字によって異なります。 末尾が「/」の CodeBase は、指定されたディレクトリ内のすべてのクラスファイル (JAR ファイルを除く) を示します。 末尾が「/*」の CodeBase は、そのディレクトリ内にあるすべてのファイル (クラスファイルと JAR ファイルの両方) を示します。 末尾が「/-」の CodeBase は、指定されたディレクトリとその下の全サブディレクトリ内のすべてのファイル (クラスファイルと JAR ファイルの両方) を示します。
Principals エントリには、「プリンシパルの値」のリストを指定します。 それぞれのプリンシパルの値には、実行しているスレッドのプリンシパルセット内に存在していなければならない principal_type と principal_name のペアを指定します。 Principals エントリは省略可能です。省略した場合は、「任意のプリンシパル」という意味になります。
principal_type が指定されておらず、principal_name が引用符で囲まれた文字列である場合は、実行時にポリシーファイルが処理されるときに、その文字列はキーストアの別名として扱われます。 キーストアは別名を経由して X509 証明書を調査し、問い合わせます。 その証明書が見つかった場合、プリンシパルの型は javax.security.auth.x500.X500Principal であると自動的に想定され、実際のプリンシパルの名前は、証明書にある Subject として識別された名前であると想定されます。 X509 証明書へのマッピングが見つからない場合は、指定されたプリンシパルに対してアクセス権を許可しているポリシーエントリ全体が無視されます。
新しいプリンシパルの追加
新しいプリンシパルを追加するには、[Policy Entry] ダイアログボックスで [Add Principal] ボタンを選択します。 [Principals] ダイアログボックスが表示されます。
プリンシパルを追加するには、次のようにします。
プリンシパルの情報を指定したら、[OK] ボタンを選択します。操作を取り消す場合は、[Cancel] を選択します。 新しいプリンシパルの行が [Principals] エントリに表示されます。
- プリンシパルの型を入力するか、または選択します。
[Principal Type:] というラベルの付いたドロップダウンリストには、組み込まれているプリンシパルの型のリストが表示されます。 リストにある型を指定する場合は、リストからその型を選択します。選択したプリンシパルの型の完全な名前が、ドロップダウンリストの右側のテキストボックスに表示されます。
ユーザが定義したプリンシパルの型を指定する場合は、そのプリンシパルの型をテキストボックスに入力します。
- プリンシパルの名前を入力します。
プリンシパルの名前を、[Principal Name:] テキストボックスに直接入力します。 たとえば、
duke
という名前のプリンシパルを指定するには、次のように入力します。duke
このあと、同じ手順に従って別のプリンシパルを追加することができます。 既存のプリンシパルを編集または削除することもできます。
プリンシパルの編集
既存のプリンシパルを編集するには、[Principals:] エントリでプリンシパルの行を選択し、[Edit Principal] ボタンを選択します。 または、そのプリンシパルの行をダブルクリックするだけでも、プリンシパルを編集できるようになります。新しいプリンシパルを追加するときと同じ [Principals] ダイアログボックスが表示されます。ただし、この場合は、既存のプリンシパルの情報が表示されています。 表示されている情報を変更するには、ドロップダウンリストから新しい値を選択するか、またはテキストボックスの情報を新しい値で置き換えます。
編集が終わったら、[OK] ボタンを選択します。変更を取り消す場合は、[Cancel] を選択します。 [Principals:] エントリに、修正後のプリンシパルの情報が表示されます。
プリンシパルの削除
既存のプリンシパルを削除するには、[Principals:] エントリでそのプリンシパルの行を選択し、[Remove Principal] ボタンを選択します。新しいアクセス権の追加
新しいアクセス権を追加するには、[Policy Entry] ダイアログボックスで [Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスが表示されます。
アクセス権を追加するには、次のようにします。
アクセス権の情報を指定したら、[OK] ボタンを選択します。操作を取り消す場合は、[Cancel] を選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。
- アクセス権の型を入力するか、または選択します。
[Permission:] というラベルの付いたドロップダウンリストは、組み込みアクセス権型のリストを含んでいます。 リストにある型を指定する場合は、リストからその型を選択します。選択したアクセス権の型の完全な名前が、ドロップダウンリストの右側のテキストボックスに表示されます。
ユーザが定義したアクセス権の型を指定する場合は、そのアクセス権の型をテキストボックスに入力します。
- アクセス権のターゲット名を入力するか、または選択します。
[Permission:] ドロップダウンリストで組み込みアクセス権を選択した場合、そのアクセス権型で、特定のターゲット名の値が必要になるときは、[Target Name:] というラベルの付いたドロップダウンリストに含まれる値のリストから、目的の値を選択します。
ターゲット名の選択肢が無限にある場合でも、特別な意味を持つ組み込みのターゲット名があるときは、そのようなターゲット名がドロップダウンリストに表示されます。 たとえば、「File Permission」の場合のリストには、特別なターゲット名として「<<All Files>>」が表示されます。
ドロップダウンリストにないターゲット名を指定するには、[Target Name:] ドロップダウンリストから [connect] を選択して接続を得るためのアクセス権を指定します。 たとえば、
D:
ドライブのJavaSoft¥ptTest¥
ディレクトリにあるdata
という名前のファイルを指定するには、次のように入力します。D:¥JavaSoft¥ptTest¥data
- アクションを指定する必要がある場合は、1 つ以上のアクションを入力するか、または選択します。
一部のアクセス権は、ターゲット名だけを持ち、アクションを持っていません。 このようなアクセス権では、[Actions:] ドロップダウンリストの右側のテキストボックスを空白のままにしておきます。 そのアクセス権が組み込みのアクセス権の場合は、テキストボックスが自動的に淡色表示になり、利用できなくなります。
アクションの指定が必要なアクセス権の場合は、コンマで区切ったアクションのリストをテキストボックスに入力するか、またはドロップダウンリストからアクションを選択します。 たとえば、「File Permission」に指定されたファイルに対して読み込みと書き込みの両方のアクセス権を指定するには、まずリストから [
read
] (または [write
]。順序は任意) を選択します。 テキストボックスに「read」と表示されます。 次に、[write
] を選択します。コンマとスペースが入力され、そのあとに「write」と表示されます。
- 必要に応じて、[SignedBy] ラベルの右側のテキストボックスに SignedBy 別名を入力します。 アクセス権エントリでは、SignedBy の値は省略可能です。 この値が存在する場合は、署名付きアクセス権であることを示します。 つまり、そのアクセス権を与えることができるためには、アクセス権クラスそれ自体が、指定された別名によって署名されていなければなりません。
アクセス権の編集
既存のアクセス権を編集するには、[Policy Entry] ダイアログボックスでアクセス権の行を選択し、[Edit Permission] ボタンを選択します。 または、アクセス権の行をダブルクリックするだけでも、そのアクセス権を編集できるようになります。新しいアクセス権を追加するときと同じ [Permissions] ダイアログボックスが表示されます。ただし、この場合は、既存のアクセス権の情報が表示されています。 表示されている情報を変更するには、ドロップダウンリストから新しい値を選択するか、またはテキストボックスの情報を新しい値で置き換えます。
編集が終わったら、[OK] ボタンを選択します。変更を取り消す場合は、[Cancel] を選択します。 [Policy Entry] ダイアログボックスに、修正後のアクセス権の情報が表示されます。
アクセス権の削除
既存のアクセス権を削除するには、[Policy Entry] ダイアログボックスでそのアクセス権の行を選択し、[Remove Permission] ボタンを選択します。ポリシーエントリの追加の完了
ポリシーエントリの追加が終わったら、[Policy Entry] ダイアログボックスの [Done] ボタンを選択します。操作を取り消す場合は、[Cancel] を選択します。[Done] を選択すると、これまでの操作で設定されたポリシーエントリを表す行が [Policy Tool] ウィンドウに表示されます。 この行には、CodeBase、SignedBy、および Principals の情報 (存在する場合) が含まれています。 [Policy Entry] ダイアログボックスで、どの情報も指定しなかった場合は、
CodeBase <ALL>とだけ表示されます。注: キーストアにまだ存在していない SignedBy 別名がポリシーエントリに含まれている場合は、ポリシーエントリを閉じる時点で警告が表示されます。 この場合は、[OK] を選択し、該当する別名をあとで作成します。別名の指定に誤りがある場合は、ポリシーエントリを編集して、別名を修正します。
ポリシーエントリの編集
既存のポリシーエントリを編集するには、[Policy Tool] メインウィンドウでそのエントリの行を選択し、[Edit Policy Entry] ボタンを選択します。 または、エントリの行をダブルクリックするだけでも、そのエントリが編集できるようになります。新しいポリシーエントリを追加するときと同じ [Policy Entry] ダイアログボックスが表示されます。ただし、この場合は、既存のポリシーエントリの情報が表示されています。 表示されている情報を変更するには、CodeBase と SignedBy の値の場合は、必要な直接入力し、Principals と Permissions の値の場合は、ボタンを使用して情報を変更します。
編集が終わったら、[Done] ボタンを選択します。操作を取り消す場合は、[Cancel] を選択します。
ポリシーエントリの削除
ポリシーファイルからポリシーエントリを削除するには、[Policy Tool] メインウィンドウでそのエントリの行を選択し、[Remove Policy Entry] ボタンを選択します。選択したポリシーエントリ全体が表示されます。このエントリを削除するには [OK] を選択し、このエントリを削除しない場合は [Cancel] を選択します。
ポリシーファイルの保存
既存のポリシーファイルに対する変更内容を保存するには、[File] メニューの [Save] コマンドを選択します。
作成した新しいポリシーファイルを保存したり、既存のポリシーファイルを新しい名前のポリシーファイルにコピーしたりするには、[File] メニューの [Save As] コマンドを選択します。 [Save As] ダイアログボックスが表示されます。
ディレクトリ構造を移動して、ポリシーファイルの保存先のディレクトリを選択します。 ファイル名を入力し、[Save] ボタンを選択します ポリシーファイルが保存され、そのファイルの名前とパスが、[Policy File:] というラベルの付いたテキストボックスに表示されます。
Policy Tool の終了
Policy Tool を終了するには、[File] メニューの [Exit] コマンドを選択します。警告ログの表示
Policy Tool が、警告を警告ログに保存したというメッセージを表示した場合は、[Edit] メニューの [View Warning Log] コマンドを選択すれば、警告ログを表示できます。たとえば、ポリシーファイルでキーストアの URL を指定していて、このキーストアがまだ存在していない場合は、ファイルを開くときなど、さまざなな場面で警告が表示されます。 警告が存在する場合でも、ポリシーファイルの作業は続行できます。
ファイル仕様に関する注記
注: Microsoft Windows システムでは、ファイル名とパスを Policy Tool のダイアログボックスに入力するとき (ファイルアクセス権のターゲット名を入力するときなど)、ディレクトリの区切り文字として次のどれかを使用できます。
単一の円記号は、Windows での通常のディレクトリ区切り文字です。スラッシュも同様に使用できます。
- 単一の円記号 (例:
D:¥Temp¥data
)- 二重の円記号 (例:
D:¥¥Temp¥¥data
)- スラッシュ (例:
D:/Temp/data
)ただし、ポリシーファイルそのものでは、単一の円記号を使用できません。 ポリシーファイルが読み込まれるとき、文字列はトークナイザによって処理され、「¥」はエスケープ文字列として使用されます。たとえば、「¥n」は改行を表します。このため、1 つの円記号を表す場合は、二重の円記号を指定する必要があります。
区切り文字として単一の円記号を使用した場合、Policy Tool は自動的にそれを二重の円記号に変換します。たとえば、[Permission] ダイアログボックスで [OK] を選択したあとに、その変換が行われます。
Microsoft Windows の「ホーム」ディレクトリに関する注記
ユーザポリシーファイルは、デフォルトでは、user.home システムプロパティの値によって決まる「ホームディレクトリ」内の、.java.policy
という名前のファイルです。 ユーザ名が uName の場合、user.home プロパティの値は、デフォルトでは次のように設定されます。マルチユーザ Windows NT システムでは C:¥Winnt¥Profiles¥uName マルチユーザ Windows 95 システムでは C:¥Windows¥Profiles¥uName シングルユーザ Windows 95 システムでは C:¥Windowsしたがって、ユーザ名が「cathy」の場合、user.home のデフォルトは次のようになります。C:¥Winnt¥Profiles¥cathy (マルチユーザの Windows NT システムの場合) C:¥Windows¥Profiles¥cathy (マルチユーザの Windows 95 システムの場合) シングルユーザ Windows 95 システムでは C:¥Windows
このあと紹介する例では、次の操作を実行する方法を説明します。
- 新しいユーザポリシーファイルを作成する
- ポリシーエントリを追加する
- キーストアを指定する
- 署名されたコードのためのポリシーエントリを追加する
- 認証されたコードのためのポリシーエントリを追加する
- ユーザポリシーファイルを保存する
- Policy Tool を終了する
ユーザポリシーファイルの作成の開始
初期状態では、ユーザポリシーファイルは存在していません (手動で作成した場合を除く)。 ユーザポリシーファイルを作成するには、コマンド行に次のように入力して Policy Tool を起動します。
policytool[Policy Tool] ウィンドウが表示されます。
Policy Tool は、起動するたびに、「ユーザポリシーファイル」とも呼ばれるファイルからポリシー情報を取得して、ウィンドウに表示しようとします。 デフォルトのユーザポリシーファイルは、ホームディレクトリにある
.java.policy
という名前のファイルです。 ポリシーファイルが見つからない場合は、そのことを示すメッセージと空白の [Policy Tool] ウィンドウが表示されます。つまり、ウィンドウに見出しやボタンは表示されますが、データは含まれていません (次の画面を参照)。
このウィンドウでエントリを追加してファイルを保存すれば、ユーザポリシーファイルを作成できます。
ポリシーエントリの追加
ここでは、D:
ドライブのTests¥
ディレクトリにあるすべてのクラスに対して、D:¥Temp¥data¥
ディレクトリ内のmydata
という名前のファイルを読み取るアクセス権を許可するとします。 この場合は、まず、[Policy Tool] メインウィンドウで [Add Policy Entry] ボタンを選択します。[Policy Entry] ダイアログボックスが表示されます。
このダイアログボックスでは、
file:/D:/tests/という URL を [CodeBase] テキストボックスに入力します。 注: これは URL なので、円記号ではなくスラッシュを使う必要があります。コードに署名がなされている必要はないので、[SignedBy] テキストボックスは空白のままにします。
コードが認証されている必要はないので、[Principals] テキストボックスは空白のままにします。
アクセス権を追加するために、[Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスが表示されます。
アクセス権を追加するには、次のようにします。
ここまでの操作で、[Permission] ダイアログボックスには、次のように表示されています。
- [Permission:] ドロップダウンリストから [File Permission] を選択します。 アクセス権の型の完全な名前 (java.io.FilePermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- [Target Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力します。
D:¥temp¥data¥mydata- 読み取りアクセス権を指定するために、[Actions:] ドロップダウンリストから [read] を選択するか、または [Actions:] ドロップダウンリストの右側のテキストボックスに「read」と直接入力します。
アクセス権の情報を指定したら、[OK] ボタンを選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。
注: 入力したファイルパスの円記号は、「ファイル仕様に関する注記」で説明したように、それぞれ二重の円記号に置き換えられます。
これで、このポリシーエントリの指定は終わりです。[Done] ボタンを選択します。 ここで指定したポリシーエントリを表す行が [Policy Tool] ウィンドウに表示されます。 この行には CodeBase の値だけが含まれています。
キーストアの指定
ここでは、「http://java.sun.com/」という URL にあるコードのうち、別名「duke」の署名者によって署名された任意のコードに対して、D:¥tmp¥
ディレクトリ内のすべてのファイルへの読み取りアクセス権を許可するとします。 さらに、これらのコードに、任意のホストに対する送信ソケット接続を開始できるアクセス権も許可するとします。 この場合は、次の 2 つの操作を行う必要があります。ポリシーエントリの SignedBy パートで指定された別名の鍵情報を含むキーストアを指定するには、[Policy Tool] メインウィンドウで [Edit] メニューの [Change Keystore] コマンドを選択します。
- 必要な別名の入ったキーストアを指定する
- 必要なアクセス権を許可するためのポリシーエントリを作成する
ダイアログボックスが表示されたら、新しいキーストアの URL と、キーストアの型 (省略可能) を指定します。
たとえば、
D:
ドライブのtests
ディレクトリにある「mykeystore」という名前のキーストアを指定するには、[New KeyStore URL] というラベルの付いたテキストボックスに、次のようにfile:
URL を入力します。file:/D:/tests/mykeystoreキーストアの型が、セキュリティプロパティファイル内の keystore.type プロパティの値により指定されたデフォルトの型の場合は、[New KeyStore Type] の値を入力する必要はありません。 このプロパティのデフォルトの値は、「JKS」(Sun がサポートする独自のキーストアの型) です。キーストアの型を指定するには、[New KeyStore Type] というラベルの付いたテキストボックスに値を入力します。 たとえば、キーストアの型が「JKS」であることを示すには、次のように入力します。
JKSダイアログボックスには、次のように表示されます。
注: [New KeyStore URL] の値は URL であるため、キーストアが Microsoft Windows システム上にあるときでも、ディレクトリの区切り文字には常にスラッシュを使い、円記号は使いません。
キーストアの URL と型を指定したら、[OK] を選択します。 [Keystore:] というラベルの付いたテキストボックスに、指定したキーストアの URL とタイプが表示されます。
次に、ポリシーエントリを指定する必要があります。
SignedBy 別名を指定したポリシーエントリの追加
[Policy Tool] メインウィンドウで [Add Policy Entry] ボタンを選択します。 [Policy Entry] ダイアログボックスが表示されます。 [CodeBase] テキストボックスに、次のように入力します。http://java.sun.com/*「*」は、この CodeBase が指定したディレクトリ内のクラスファイルと JAR ファイルの両方を示すことを意味します。[SignedBy] テキストボックスには、次の別名を入力します。
dukeコードが認証されている必要はないので、[Principals] テキストボックスは空白のままにします。
指定する 2 つのアクセス権のうち、最初のアクセス権を追加するために、[Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスが表示されます。 次のように操作します。
[Permissions] ダイアログボックスには、次のように表示されます。
- [Permission:] ドロップダウンリストから [connect] を選択して接続を得るためのアクセス権を指定します。 アクセス権の型の完全な名前 (java.io.FilePermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- [Target Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力して、
D:¥tmp¥
ディレクトリ内のすべてのファイルを指定します。D:¥tmp¥*- [Actions:] ドロップダウンリストから [connect] を選択して接続を得るためのアクセス権を指定します。
[OK] ボタンを選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。
次に、2 つ目のアクセス権を指定する必要があります。 [Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスで、次のように操作します。
[Permissions] ダイアログボックスには、次のように表示されます。
- [Permission:] ドロップダウンリストから [connect] を選択して接続を得るためのアクセス権を指定します。 アクセス権の型の完全な名前 (java.net.SocketPermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- [Target Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力して、すべてのホストを指定します。
*- 接続を行う許可を指定するために、[Actions:] ドロップダウンリストから [connect] を選択します。
[OK] ボタンを選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。
注: 入力したファイルパスの円記号は、「ファイル仕様に関する注記」で説明したように、それぞれ二重の円記号に置き換えられます。
これで、ポリシーエントリの指定は終わりです。[Policy Entry] ダイアログの [Done] ボタンを選択します。 [Policy Tool] ウィンドウに、指定した CodeBase、SignedBy、および Principals の値を含むポリシーエントリの行が表示されます。
プリンシパルを指定したポリシーエントリの追加
ここでは、次のような X500 名を持つプリンシパルにアクセス権を許可するとします。
このプリンシパルに、CN=Duke,OU=JavaSoft,O=Sun Microsystems,C=US/tmp/
ディレクトリに対する書き込みを許可します。[Policy Tool] メインウィンドウで [Add Policy Entry] ボタンを選択します。 [Policy Entry] ダイアログボックスが表示されます。
コードの出所は制限しないので、[CodeBase] テキストボックスは空白のままにします。 コードに署名がなされている必要はないので、[SignedBy] テキストボックスは空白のままにします。
[Add Principal] ボタンを選択します。 [Principals] ダイアログボックスで、次のように操作します。
[Principals] ダイアログボックスには、次のように表示されます。
- [Principal Type:] ドロップダウンリストから [X500Principal] を選択します。 プリンシパルの型の完全な名前 (com.sun.security.auth.X500Principal) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- [Principal Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力して、X500Principal の X500 名を指定します。
CN=Duke,OU=JavaSoft,O=Sun Microsystems,C=US
[OK] ボタンを選択します。 新しいプリンシパルの行が [Principals] リストに表示されます。
アクセス権を追加するために、[Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスが表示されます。 次のように操作します。
- [Permission:] ドロップダウンリストから [File Permission] を選択します。 アクセス権の型の完全な名前 (java.io.FilePermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- [Target Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力して、
D:
ドライブのtmp/
ディレクトリ内のすべてのファイルを指定します。D:¥tmp¥*- 書き込みアクセス権を指定するために、[Actions:] ドロップダウンリストから [write] を選択します。
[OK] ボタンを選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。
これで、ポリシーエントリの指定は終わりです。[Policy Entry] ダイアログの [Done] ボタンを選択します。 [Policy Tool] ウィンドウに、指定した CodeBase、SignedBy、および Principals の値を含むポリシーエントリの行が表示されます。
ユーザポリシーファイルの保存
ここでは、Win95 システムを使用していて、作成したポリシーファイルをデフォルトの場所 (C:¥Windows¥
) にデフォルトの名前 (.java.policy) で保存するとします。作成したユーザポリシーファイルを保存するために、[File] メニューの [Save As] コマンドを選択します。 [Save As] ダイアログボックスが表示されます。
C:
ドライブのWindows
ディレクトリに移動し、次のようなファイル名を入力します.java.policy先頭にピリオドがあることに注意してください。そのあと、[Save] ボタンを選択します。 ポリシーファイルが保存され、そのファイルの名前とパスが、[Policy File:] というラベルの付いたテキストボックスに表示されます。
Policy Tool の終了
Policy Tool を終了するには、[File] メニューの [Exit] コマンドを選択します。
- Java 2 プラットフォームにおけるアクセス権
- デフォルトのポリシーの実装とポリシーファイルの構文
- keytool ツールのドキュメント
- セキュリティアーキテクチャの仕様
- Policy Tool を含むセキュリティツールの使用例については、「Java チュートリアル」の「Security」を参照してください。
Copyright © 2002 Sun Microsystems, Inc. All Rights Reserved. |
Java ソフトウェア |