Oracle Containers for J2EE
セキュリティ・ガイド
10g(10.1.3.4.0) B50832-01 |
|
この章では、OracleAS JAAS Providerのjazn.xml
およびsystem-jazn-data.xml
構成ファイルの参照情報について説明します。この章の内容は次のとおりです。
jazn.xml
ファイルは、次に示すような単純な階層構造です。
<jazn> <property>
この項は、jazn.xml
ファイルの要素をアルファベット順に並べた辞書です。
なし(ルート)
必須、1つのみ
これはOracleAS JAAS Providerを構成するjazn.xml
ファイルの最上位レベルの要素です。
名前 | 説明 |
---|---|
config |
この属性は、OC4J 10.1.3.1の実装では未使用です。 |
default-realm |
これは、レルムが明示的に指定されていない場合に、認証または認可のリクエストで使用されるレルムを指定します。リポジトリ内に複数のレルムが定義されている場合に、デフォルトのレルムを指定する必要があります。
注意: :この属性が設定されていないとデフォルトがありませんが、OC4Jに付属する |
jaas-mode |
これは、JAASモードを指定するために使用します。JAASモードは、 関連項目: 「JAASモードの概要」 |
location |
ファイルベース・プロバイダの場合、 Oracle Identity Management(LDAPベースのプロバイダ)では、これはOracle Internet DirectoryインスタンスのURLを示し、Application Server ControlによってOracle Internet DirectoryインスタンスをOC4Jインスタンスと関連付けるときに自動的に設定されます。 |
persistence |
これは、変更内容を |
provider |
インスタンス・レベルのセキュリティ・プロバイダ設定を指定します。
注意: :アプリケーション・レベルのセキュリティ・プロバイダは、 |
schema-major-version |
注意: この属性は、 |
schema-minor-version |
注意: この属性は、 |
なし
オプション、0以上
プロパティの設定を名前と値のペアで指定します。各セキュリティ・プロバイダと使用モードでは、固有のプロパティのセットをサポートします。たとえば、前のいくつかの章に示したように、LDAPベースのプロバイダ(Oracle Identity Management使用時)に固有のプロパティがあり、アイデンティティ管理フレームワークとJava SSOに固有のプロパティがあります。次に例を示します。
LDAPの場合:
<property name="ldap.protocol" value="no-ssl"/>
アイデンティティ管理フレームワークの場合:
<property name="idm.token.asserter.class" value="oracle.security.jazn.sso.SSOCookieTokenAsserter" />
Java SSO(アイデンティティ管理フレームワークの実装の1つ)の場合:
<property name="idm.authentication.name" value="JavaSSO" /> <property name="custom.sso.url.login" value="http://host:port/jsso/SSOLogin" />
名前 | 説明 |
---|---|
name |
プロパティの名前。 |
value |
プロパティの値。 |
この項では、system-jazn-data.xml
ファイルの要素の階層について説明します。<jazn-data>
の直下のサブ要素は、<jazn-policy>
、<jazn-realm>
、<jazn-loginconfig>
、<jacc-repository>
、<jazn-permission-classes>
および<jazn-principal-classes>
ですが、最後の3つはこのリリースではユーザー向けの使用を意図したものではありません。
system-jazn-data.xmlの階層 |
---|
<jazn-data> |
<jazn-policy> |
<jazn-realm> |
<jazn-loginconfig> |
<jacc-repository> NOT INTENDED FOR CUSTOMER USE; SUBHIERARCHY NOT SHOWN |
<jazn-permission-classes> NOT INTENDED FOR CUSTOMER USE; SUBHIERARCHY NOT SHOWN |
<jazn-principal-classes> NOT INTENDED FOR CUSTOMER USE; SUBHIERARCHY NOT SHOWN |
この項は、system-jazn-data.xml
ファイルの要素をアルファベット順に並べた辞書です。
なし
オプション、0または1
適用可能な場合、この要素は関連するパーミッションのクラスと名前に対して許可されているアクションを指定できます。次に例を示します。
<permission> <class>oracle.security.jazn.realm.RealmPermission</class> <name>jazn.com</name> <actions>droprealm</actions> </permission>
オプション、0以上
ログイン・モジュール構成では、この要素は(サブ要素によって)アプリケーションの名前を指定し、そのアプリケーションで使用するログイン・モジュールを構成します。
<principal>、<permission>または<login-module>
なし
親要素内で必須、1つのみ
この要素はいくつかの使用方法があります。
<principal>
要素内で、プリンシパル・クラスの完全修飾名を指定します。クラスは、パーミッションのセットを付与されるプリンシパルを表すためにインスタンス化されます。
<class>oracle.security.jazn.spi.xml.XMLRealmRole</class>
<permission>
要素内で、パーミッション・クラスの完全修飾名を指定します。
<class>com.evermind.server.rmi.RMIPermission</class>
<login-module>
要素内で、ログイン・モジュール・クラスの完全修飾名を指定します。次に例を示します。
<class> oracle.security.jazn.login.module.db.DBTableOraDataSourceLoginModule </class>
オプション、0または1
ポリシー構成では、<grantee>
要素内の<principals>
要素または<codesource>
要素のいずれかを使用して、付与するパーミッションを指定します。<codesource>
要素では、コードソースのURLを指定し、該当のコードソースへのパーミッションを付与します。
なし
親要素内で必須、1つのみ
この要素では、ログイン・モジュールの次のいずれかのコントロール設定を指定します。
<control-flag>required</control-flag> <control-flag>requisite</control-flag> <control-flag>sufficient</control-flag> <control-flag>optional</control-flag>
これらは、javax.security.auth.login.Configuration
クラスの標準機能に応じて使用されます。全体の認証は、RequiredおよびRequisiteのログイン・モジュールがすべて成功した場合にのみ成功します。ただし、Sufficientのログイン・モジュールが構成されていて成功した場合には、ログイン・モジュール・リスト内のSufficientのログイン・モジュールの前にあるRequiredおよびRequisiteのログイン・モジュールのみ成功する必要があります。
なし
オプション、0または1
この要素には、ユーザーの認証パスワードが含まれます。
デフォルトで、OC4Jはsystem-jazn-data.xml
(またはオプションで、アプリケーション固有のjazn-data.xml
ファイル)に指定されたパスワードに対してパスワードの不明瞭化を行います。
クリアテキスト(判読可能)のパスワードを使用するかわりに、clear
属性を"true
"に設定するか、パスワードの前に"!"を置きます。(この場合"!"はパスワードの一部とみなされません。)ただし、クリアテキストのパスワードの使用はお薦めしません。
次の指定は同じ意味になります。
<credentials clear="true">welcome</credentials> <credentials>!welcome</credentials>
名前 | 説明 |
---|---|
clear |
これを" |
なし
オプション、0または1
これには、項目を説明するテキスト文字列(親要素に応じて、ユーザーまたはロール)が含まれます。
例(ユーザーoc4jadmin
の場合):
<description>The OC4J user with administrative privileges</description>
なし
オプション、0または1
これには、項目に対して使用する表示名(親要素によって、権限受領者、ユーザーまたはロール)を指定するテキスト文字列が含まれます。
例(ユーザーoc4jadmin
の場合):
<display-name>OC4J Administrator</display-name>
オプション、0以上
ポリシー構成では、この要素には権限受領者にパーミッション・セットを割り当てる権限エントリが含まれます(コードソースまたはプリンシパルのセット)。
<display-name>、<principals>、<codesource>
親要素内で必須、1つのみ
ポリシー権限を<grant>
要素によって指定する場合、(<permissions>
要素と組み合せて使用される)<grantee>
要素は、パーミッションが付与される対象(プリンシパルのセットまたはコードソース)を指定します。
なし
オプション、0または1
この要素では、項目(親要素によって、ユーザーまたはロール)のグローバル一意識別子(GUID)を指定します。GUIDは、ユーザーまたはロールを異なるセキュリティ・プロバイダに移行する場合などに、OracleAS JAAS Providerによって生成され、内部的に使用されます。ユーザーが自分で設定する項目ではありません。
<jacc-policy>
なし
この要素とそのサブ階層(ここに示しています)は、OC4J 10.1.3.1の実装ではユーザー向けの使用を意図したものではありません。
<jacc-repository> <jacc-policy> <contextID> <excluded-policy> SAME SUBHIERARCHY AS <jazn-policy> <unchecked-policy> SAME SUBHIERARCHY AS <jazn-policy> <role-policy> SAME SUBHIERARCHY AS <jazn-policy>
なし(ルート)
<jazn-policy>、<jazn-realm>、<jazn-loginconfig>(ユーザー向けの使用を意図した場合にのみ考慮)
必須、1つのみ
これはOracleAS JAAS Providerを構成するsystem-jazn-data.xml
ファイルの最上位レベルの要素です。
オプション、0または1
これは、指定したアプリケーション(構成の一部として指定)に関連付けられたログイン・モジュールを構成する最上位レベルの要素です。次に、Oracle提供のDBTableOraDataSourceLoginModule
の例を示します(ここに示すサブ要素は、この付録内で何度か取り上げています)。
<jazn-loginconfig> <application> <name>application_name</name> <login-modules> <login-module> <class> oracle.security.jazn.login.module.db.DBTableOraDataSourceLoginModule </class> <control-flag>required</control-flag> <options> <option> <name>data_source_name</name> <value>jdbc/OracleDS</value> </option> <option> <name>table</name> <value>userinfo</value> </option> <option> <name>roles_fk_column</name> <value>userName</value> </option> <option> <name>groupMembershipGroupFieldName</name> <value>role</value> </option> <option> <name>user_pk_column</name> <value>userName</value> </option> <option> <name>passwordField</name> <value>passWord</value> </option> <option> <name>groupMembershipTableName</name> <value>groupinfo</value> </option> <option> <name>usernameField</name> <value>userName</value> </option> <option> <name>casing</name> <value>sensitive</value> </option> </options> </login-module> </login-modules> </application> ... </jazn-loginconfig>
<permission-class>
なし
この要素とそのサブ階層(ここに示しています)は、OC4J 10.1.3.1の実装ではユーザー向けの使用を意図したものではありません。
<jazn-permission-classes> <permission-class> <name> <description> <type> <class> <target-descriptors> <target-descriptor> <name> <description> <action-descriptors> <action-descriptor> <name> <description>
オプション、0または1
これは、権限受領者(プリンシパルまたはコードソース)をパーミッション・セットと関連付けるポリシー権限を指定する、ポリシー構成の最上位レベルの要素です。ここに例を示します(ここに示すサブ要素は、この付録内で何度か取り上げています)。
<jazn-policy> <grant> <grantee> <principals> <principal> <realm-name>jazn.com</realm-name> <type>role</type> <class>oracle.security.jazn.spi.xml.XMLRealmRole</class> <name>jazn.com/oc4j-administrators</name> </principal> </principals> </grantee> <permissions> <permission> <class>com.evermind.server.AdministrationPermission</class> <name>administration</name> <actions>administration</actions> </permission> <permission> <class>oracle.security.jazn.realm.RealmPermission</class> <name>jazn.com</name> <actions>modifyrealmmetadata</actions> </permission> <permission> <class>oracle.security.jazn.realm.RealmPermission</class> <name>jazn.com</name> <actions>createrealm</actions> </permission> <permission> <class>oracle.security.jazn.realm.RealmPermission</class> <name>jazn.com</name> <actions>dropuser</actions> </permission> <permission> <class>oracle.security.jazn.realm.RealmPermission</class> <name>jazn.com</name> <actions>droprealm</actions> </permission> <permission> <class>com.evermind.server.rmi.RMIPermission</class> <name>login</name> </permission> <permission> <class>com.evermind.server.rmi.RMIPermission</class> <name>subject.propagation</name> </permission> <permission> <class>oracle.security.jazn.policy.RoleAdminPermission</class> <name>jazn.com/*</name> </permission> </permissions> </grant> ... </jazn-policy>
<principal-class>
なし
この要素とそのサブ階層(ここに示しています)は、OC4J 10.1.3.1の実装ではユーザー向けの使用を意図したものではありません。
<jazn-principal-classes> <principal-class> <name> <description> <type> <class> <name-description-map> <name-description-pair> <name> <description>
オプション、0または1
これは、セキュリティ・レルムとそこに含まれるユーザーおよびロールを指定する、ユーザーおよびロールの情報の最上位レベルの要素です。ここに例を示します(ここに示すサブ要素は、この付録内で何度か取り上げています)。
<jazn-realm> <realm> <name>jazn.com</name> <users> <user deactivated="true"> <name>anonymous</name> <guid>D3D41721D3E311DABFFC25CB9F57C041</guid> <description>The default guest/anonymous user</description> </user> <user> <name>oc4jadmin</name> <display-name>OC4J Administrator</display-name> <guid>D3DB1C00D3E311DABFFC25CB9F57C041</guid> <description>OC4J Administrator</description> <credentials>{903}r7VKkMgJqP8fkDZCG7YMo7UZnT/B+HcK</credentials> </user> ... </users> <roles> <role> <name>ascontrol_admin</name> <display-name>ASControl Admin Role</display-name> <description>Administrative role for ASControl</description> <guid>D3DB1C05D3E311DABFFC25CB9F57C041</guid> <members> <member> <type>user</type> <name>oc4jadmin</name> </member> </members> </role> <role> <name>oc4j-administrators</name> <display-name>OC4J Admin Role</display-name> <description>Administrative role for OC4J</description> <guid>D3DB1C02D3E311DABFFC25CB9F57C041</guid> <members> <member> <type>user</type> <name>oc4jadmin</name> </member> ... </members> </role> ... </roles> </realm> </jazn-realm>
<class>、<control-flag>、<options>
親要素内で必須、1つ以上
この要素は、クラス名、制御フラグ、ログイン・モジュールのオプション設定を指定するサブ要素とともに、所定のアプリケーションのログイン・モジュールを指定し、構成します。
親要素内で必須、1つのみ
この要素は、1つ以上の<login-module>
サブ要素によって、所定のアプリケーションのログイン・モジュールのセットを構成します。
オプション、0以上
この要素は、適用可能なロールのメンバーの名前と、メンバーがユーザーか別のロールか(<type>
サブ要素によって)を指定します。
親要素内で必須、1つのみ
この要素はロールのメンバーを指定します。メンバーはユーザーまたは他のロールのいずれかです。
<principal>、<realm>、<role>、<user>、<member>、<application>または<option>
なし
親要素内で必須、1つのみ
この要素はいくつかの使用方法があります。
<realm>
要素内に、レルムの名前を指定します。次に例を示します。
<name>jazn.com</name>
<user>
要素内に、アプリケーション・レルム内のユーザーの一意の名前を指定します。次に例を示します。
<name>oc4jadmin</name>
<role>
要素内に、アプリケーション・レルム内のロールの一意の名前を指定します。
<name>oc4j-administrators</name>
<role>
の<member>
サブ要素内に、ロールのメンバーの名前を指定します。oc4jadmin
がロールのメンバーの場合):
<name>oc4jadmin</name>
<principal>
要素内に(プリンシパルにパーミッションを付与するために)、所定のレルム内のプリンシパルの一意の名前を指定します。次に例を示します。
<name>jazn.com/oc4j-administrators</name>
<application>
要素内に、ログイン・モジュールを構成するアプリケーションの完全修飾名を指定します。次に例を示します。
<name>oracle.security.jazn.tools.Admintool</name>
<option>
要素内に、ログイン・モジュール構成用のオプションの名前を指定します。(オプション値を示す<value>
要素を伴います。)DBTableOraDataSourceLoginModule
のオプション):
<option> <name>data_source_name</name> <value>jdbc/OracleDS</value> </option>
(この要素は、この後<permission>
のサブ要素としても別個に掲載されています。)
なし
オプション、0または1
適用可能な場合、この要素ではパーミッション・クラスに対して意味を持つ、パーミッションの名前を指定できます。次に例を示します。
<permission> <class>com.evermind.server.rmi.RMIPermission</class> <name>login</name> </permission>
(この要素は、前述のように、<principal>
、<realm>
、<role>
、<user>
、<member>
、<application>
または<option>
のサブ要素としても別個に掲載されています。)
親要素内で必須、1つ以上
各<option>
要素は、<name>
サブ要素と<value>
サブ要素を通じて、ログイン・モジュール用のオプション設定の名前と値を指定します。
オプション、0または1
この要素は、<option>
サブ要素を通じて、ログイン・モジュール用のオプション設定を指定します。
親要素内で必須、1つ以上
<permissions>
要素がポリシー権限構成で使用されるとき、各<permission>
サブ要素は該当のプリンシパルに付与される1つのパーミッションを指定します。
親要素内で必須、1つのみ
ポリシー権限を<grant>
要素によって指定する場合、(<grantee>
要素と組み合せて使用される)<permissions>
要素は、<permission>
サブ要素のセットによって、付与されるパーミッションを指定します。
<realm-name>、<class>、<type>、<name>
オプション、0以上
<principals>
要素がポリシー権限構成で使用されるとき、各<principal>
サブ要素は該当のパーミッションが付与される1つのプリンシパルを指定します。
オプション、0または1
ポリシー構成では、<grantee>
要素内の<principals>
要素または<codesource>
要素のいずれかを使用して、付与するパーミッションを指定します。<principals>
要素ではパーミッションが付与されるプリンシパルのセットを指定します。
これらのパーミッションを付与されるサブジェクトでは、指定されたすべてのプリンシパルをサブジェクトが含んでいる必要があります。
オプション、0以上
この要素は、レルムと、レルムに属するユーザーとロールを指定します。
なし
オプション、0または1
プリンシパルにパーミッションを付与する場合、この要素にはプリンシパルが属するレルムの名前を指定します。(この値は、レルムが構成される<realm>
要素の<name>
サブ要素の値に対応します。)次に例を示します。
<realm-name>jazn.com</realm-name>
レルム名が指定されていない場合、デフォルト・レルムとみなされます。
<name>、<display-name>、<description>、<guid>、<members>
オプション、0以上
この要素はロールと、そのロールのメンバーを指定します。
オプション、0または1
この要素はレルムに属するロールのセットを指定します。
なし
必須、1つのみ
<member>
のサブ要素として、ロールのメンバーの指定時に、この要素はメンバーのタイプ(つまり、メンバーがユーザーか別のロールか)を指定します。次に例を示します。
<type>user</type>
(この要素は、この後、<principal>
のサブ要素としても別個に掲載されています。)
なし
オプション、0または1
<principal>
のサブ要素として、プリンシパルへのパーミッションの付与の際に、この要素はオプションでプリンシパルのタイプ(プリンシパルがユーザーかロールか)を指定できます。次に例を示します。
<type>role</type>
(この要素は、前述のように、<member>
のサブ要素としても別個に掲載されています。)
なし
親要素内で必須、1つのみ
<codesource>
要素がポリシー権限構成で使用されるとき、<url>
サブ要素は該当のパーミッションが付与されるコードソースのURLを指定します。次に例を示します。
"file:${oracle.home}/j2ee/home/jazn.jar"
(これは、「Java 2ポリシー・ファイルの作成または更新」に示すjava2.policy
ファイルと同じ形式です。)
<name>、<display-name>、<description>、<guid>、<credentials>
オプション、0以上
この要素はレルム内のユーザーを指定します。
名前 | 説明 |
---|---|
deactivated |
構成ファイル内のユーザーを保持するが現在無効にする場合、この属性を" |
オプション、0または1
この要素はレルムに属するユーザーのセットを指定します。
なし
親要素内で必須、1つのみ
この要素はログイン・モジュールの構成用のオプションの値を指定します。(オプション名を示す<name>
要素を伴います。)
例(DBTableOraDataSourceLoginModule
のオプション):
<option> <name>data_source_name</name> <value>jdbc/OracleDS</value> </option>
|
Copyright © 2003, 2008 Oracle Corporation. All Rights Reserved. |
|