この付録では、OPSSのシステム・プロパティ(サーバー起動時にスイッチ-Dを使用して設定)および構成プロパティ(構成ファイルjps-config.xmlで要素<property>および<extendedProperty>を使用して設定)について次の各項で説明します。
サーバー・プロパティをプログラムによって管理するには、OPSS MBeansを使用します。詳細と例は、第E.2.3項「OPSS Mbeansを使用したプログラミング」を参照してください。
導入または変更したシステム・プロパティは、サーバーを再起動するまで有効になりません。システム・プロパティを設定するには、管理者はsetDomainEnv.shシェル・スクリプトを編集し、そのスクリプト内の環境変数EXTRA_JAVA_PROPERTIESにプロパティを追加する必要があります。
表F-1は、OPSSで使用可能なJavaシステム・プロパティを示しています。
表F-1 OPSSで使用されるJavaシステム・プロパティ
| 名前 | 説明 |
|---|---|
|
|
JpsAuth.checkPermissionメソッドがSubject.doAsブロック内で呼び出されたときにパーミッション・チェックが失敗すると、その失敗について通知します。 setting jps.auth.debugまたはjps.auth.debug.verboseだけでは、この場合に失敗の通知を受け取ることはできません。 |
|
OPSSポリシー・ファイルの場所を指定します。 |
|
|
|
実行時およびデバッグのオーバーヘッドを軽減するJDK APIのAccessController.checkPermissionのコールの委任を有効または無効にします。 デフォルト値はFALSEです。 |
|
|
サーバーのロギング出力を制御します。デフォルト値はFALSEです。詳細は、第J.1.2.1項「jps.auth.debug」を参照してください。java.security.debugの説明も参照してください。 |
|
|
サーバーのロギング出力を制御します。デフォルト値はFALSEです。詳細は、第J.1.2.2項「jps.auth.debug.verbose」を参照してください。java.security.debugの説明も参照してください。 |
|
|
サブジェクトの保護ドメインのキャッシュを有効または無効にします。 デフォルト値はFALSEです。 |
|
|
パーミッション・チェックのトリガー時にサブジェクトの保護ドメインの評価を有効または無効にします。 デフォルト値はFALSEです。 |
|
|
WebLogic Serverにデプロイされているアプリケーションのポリシーおよび資格証明の移行を有効または無効にします。 アプリケーション・ファイルのweblogic-application.xmlにある特定のアプリケーション設定に関係なく、サーバーにデプロイされているすべてのアプリケーションについてアプリケーションのポリシーおよび資格証明の移行を無効にするにはTRUEに設定します。 デフォルト値はFALSEです。 |
|
混合モードを有効または無効にします。 混合モードを使用すると、Sun java.security.PolicyからOPSS Java PolicyProviderへの移行が容易になります。混合モードが有効になっている場合、OPSS Java Policy Providerでは、java.policyとsystem-jazn-data.xmlの両方のファイルから読取りが実行されます。 デフォルト値はTRUEです。 |
|
|
|
ドメイン構成ファイル |
この項では、様々なインスタンスのプロパティについて説明します。この項の内容は次のとおりです。
表F-2は、LDAPベースのポリシー・ストア・インスタンスのプロパティを示しています。
表F-2 LDAPベースのポリシー・ストアのプロパティ
| 名前 | 説明 |
|---|---|
|
|
LDAPポリシー・ストアにアクセスするためのパスワード資格証明のキーで、CSFストアに格納されています。 J2EEアプリケーションでのみ有効です。デフォルト値はありません。 ファイルベースからLDAPベースのストアにポリシー・ストアを移行する場合、jps-config.xmlファイルでのデフォルト値は |
|
|
LDAPポリシー・ストアにアクセスするためのパスワード資格証明のマップで、CSFストアに格納されています。 J2EEアプリケーションおよびJ2SEアプリケーションでのみ有効です。デフォルト値はBOOTSTRAP_JPSです。 |
|
|
LDAPポリシー・ストア内のドメイン・ノードのRDN形式。 J2EEアプリケーションおよびJ2SEアプリケーションで有効です。デフォルト値はありません。 |
|
|
LDAPポリシー・ストア内のルート・ノードのRDN形式。 J2EEアプリケーションおよびJ2SEアプリケーションで有効です。デフォルト値はありません。 |
|
|
LDAPポリシー・ストアのURLです。形式は、 J2EEアプリケーションおよびJ2SEアプリケーションで有効です。デフォルト値はありません。 |
|
|
LDAPポリシー・ストアのタイプ。 J2EEアプリケーションおよびJ2SEアプリケーションで有効です。デフォルト値はありません。 |
|
|
ロール・メンバーのキャッシュ・タイプ。 J2EEアプリケーションでのみ有効です。有効な値は次のとおりです。
デフォルト値はSTATICです。 |
|
|
ロール・メンバーのキャッシュで使用する方針のタイプ。 J2EEアプリケーションでのみ有効です。有効な値は次のとおりです。
デフォルト値はFIFOです。 |
|
|
ロール・メンバーのキャッシュのサイズ。 J2EEアプリケーションでのみ有効です。デフォルト値は1000です。 |
|
|
ポリシーの遅延ロードを有効または無効にします。 J2EEアプリケーションでのみ有効です。デフォルト値はTRUEです。 |
|
|
パーミッションのキャッシュで使用する方針のタイプ。 J2EEアプリケーションでのみ有効です。
デフォルト値はPERMISSION_FIFOです。 |
|
|
パーミッションのキャッシュのサイズ。 J2EEアプリケーションでのみ有効です。デフォルト値は1000です。 |
|
|
ポリシー・ストアのリフレッシュを有効または無効にします。 J2EEアプリケーションでのみ有効です。デフォルト値はTRUEです。 |
|
|
ポリシー・ストアがリフレッシュされるまでの時間(ミリ秒単位)。 J2EEアプリケーションでのみ有効です。デフォルト値は43200000(12時間)です。 |
|
|
ポリシー・ストアで変更がポーリングされる間隔(ミリ秒単位)。 J2EEアプリケーションでのみ有効です。デフォルト値は600000です。 |
|
|
パーミッションのキャッシュが無効になるまでのユーザーのパーミッションの数。 J2EEアプリケーションでのみ有効です。デフォルト値は50です。 |
|
|
このプロパティによって、ApplicationRoleメンバーシップ・キャッシュの作成方法が制御されます。TRUEに設定すると、キャッシュはサーバーの起動時に作成されます。それ以外の場合は、必要に応じて作成されます(遅延ロード)。 ユーザーおよびグループの数がアプリケーション・ロールの数を大きく上回っている場合はTRUEに設定します。それ以外の場合、つまりアプリケーション・ロールの数が非常に多い場合はFALSEに設定します。 J2EEアプリケーションでのみ有効です。デフォルト値はFALSEです。 |
次のコードは、J2EEアプリケーション用の前述のプロパティの構成を示しています。
<serviceInstance provider="ldap.policystore.provider" name="policystore.ldap">
<property value="OID" name="policystore.type"/>
<property value="bootstrap" name="bootstrap.security.principal.key"/>
<property value="cn=wls-jrfServer" name="oracle.security.jps.farm.name"/>
<property value="cn=jpsTestNode" name="oracle.security.jps.ldap.root.name"/>
<property value="ldap://stadk06.us.oracle.com:3060" name="ldap.url"/>
<property value="STATIC" name="oracle.security.jps.policystore.rolemember.cache.type"/>
<property value="FIFO" name="oracle.security.jps.policystore.rolemember.cache.strategy"/>
<property value="1000" name="oracle.security.jps.policystore.rolemember.cache.size"/>
<property value="true" name="oracle.security.jps.policystore.policy.lazy.load.enable"/>
<property value="PERMISSION_FIFO" name="oracle.security.jps.policystore.policy.cache.strategy"/>
<property value="1000" name="oracle.security.jps.policystore.policy.cache.size"/>
<property value="true" name="oracle.security.jps.policystore.refresh.enable"/>
<property value="43200000" name="oracle.security.jps.policystore.refresh.purge.timeout"/>
<property value="600000" name="oracle.security.jps.ldap.policystore.refresh.interval"/>
</serviceInstance>
次のコードは、J2SEアプリケーション用の前述のプロパティの構成を示しています。
<serviceInstance name="policystore.oid" provider="policy.oid"> <property value="OID" name="policystore.type"/> <property value="bootstrap" name="bootstrap.security.principal.key"/> <property name="ldap.url" value="ldap://sttt:3060"/> <property name="oracle.security.jps.ldap.root.name" value="cn=jpsNode"/> <property name="oracle.security.jps.farm.name" value="cn=domain1"/> </serviceInstance>
表F-3は、LDAPベースのポリシー・ストア・インスタンスのリロード/リフレッシュ・プロパティを示しています。
表F-3 LDAPベースのポリシー・ストアのリロード/リフレッシュ・プロパティ
| 名前 | 説明 |
|---|---|
|
|
キャッシュのリフレッシュを有効または無効にします。 デフォルト値はTRUEです。 |
|
|
既存のキャッシュが消去され、キャッシュ全体がリロードされるまでの時間(ミリ秒単位)。 デフォルト値は43200000(12時間)です。 |
|
|
追加、削除、更新などの変更がLDAPストアで発生していないか確認するために、ポリシーでスキャンを実行する間隔(ミリ秒単位)。 デフォルト値は43200000(12時間)です。 |
|
|
キャッシュ・オブジェクトの負荷率。 デフォルト値は0.7です。 |
|
|
キャッシュのデフォルトの初期容量(MB単位)。 デフォルト値は20です。 |
表F-4は、LDAPベースの資格証明ストア・インスタンスのプロパティを示しています。
表F-4 LDAPベースの資格証明ストアのプロパティ
| 名前 | 説明 |
|---|---|
|
|
LDAP資格証明ストアにアクセスするためのパスワード資格証明のキーで、CSFストアに格納されています。 J2EEアプリケーションでのみ有効です。デフォルト値はありません。 ファイルベースからLDAPベースのストアにポリシー・ストアを移行する場合、jps-config.xmlファイルでのデフォルト値は |
|
|
LDAP資格証明ストアにアクセスするためのパスワード資格証明のマップで、CSFストアに格納されています。 J2EEアプリケーションおよびJ2SEアプリケーションでのみ有効です。J2EEアプリケーションでのデフォルト値は、BOOTSTRAP_JPSです。 |
|
|
LDAP資格証明ストア内のドメイン・ノードのRDN形式。 J2SEアプリケーションおよびJ2EEアプリケーションで有効です。デフォルト値はありません。 |
|
|
LDAPポリシー・ストア内のルート・ノードのRDN形式。 J2SEアプリケーションおよびJ2EEアプリケーションで有効です。デフォルト値はありません。 |
|
|
LDAP資格証明ストアのURLです。形式は、 J2SEアプリケーションおよびJ2EEアプリケーションで有効です。デフォルト値はありません。 |
次のコードは、J2EEアプリケーション用の前述のプロパティの構成を示しています。
<serviceInstance provider="ldap.credentialstore.provider" name="credstore.ldap">
<property value="bootstrap" name="bootstrap.security.principal.key"/>
<property value="cn=wls-jrfServer" name="oracle.security.jps.farm.name"/>
<property value="cn=jpsTestNode" name="oracle.security.jps.ldap.root.name"/>
<property value="ldap://stttt.us.oracle.com:3060" name="ldap.url"/>
</serviceInstance>
表F-5は、LDAPベースのアイデンティティ・ストア・インスタンスのプロパティを示しています。
表F-5 LDAPベースのアイデンティティ・ストアのプロパティ
次のコードは、前述のプロパティの構成を示しています。
<serviceInstance name="idstore.ldap" provider="idstore.ldap.provider">
<property name="idstore.type" value="OID"/>
<property name="security.principal.alias" value="MAP_NAME"/>
<property name="security.principal.key" value="KEY_NAME"/>
<property name="ldap.url" value="ldap://stadk06:3060"/>
<extendedProperty>
<name>user.search.bases</name>
<values>
<value>cn=users,dc=us,dc=oracle,dc=com</value>
</values>
</extendedProperty>
<extendedProperty>
<name>group.search.bases</name>
<values>
<value>cn=groups,dc=us,dc=oracle,dc=com</value>
</values>
</extendedProperty>
</serviceInstance>
表F-6は、サービス・インスタンスで指定できるLDAPベースのストアの汎用的なプロパティを示しています。LDAPベースのアイデンティティ・ストアのサービス・インスタンスの場合は、ユーザーおよびロールAPIでJNDI接続ファクトリを使用するときに必ず接続プール・プロパティが選択されるように、アイデンティティ・ストアのサービス・インスタンスで次のプロパティを指定する必要があります。
<property name="INITIAL_CONTEXT_FACTORY" value="com.sun.jndi.ldap.LdapCtxFactory"/>
表F-6 LDAPの汎用的なプロパティ
| 名前 | 説明 |
|---|---|
|
|
JNDI接続プールが使用するLDAP接続のタイプを指定します。 値: none、simpleおよびDIGEST-MD5 デフォルト: simple |
|
|
LDAP接続プールの最大接続数を指定します。 値: 整数 例: 30 |
|
|
LDAP接続プールの最小接続数を指定します。 値: 整数 例: 5 |
|
|
LDAP接続に使用するプロトコルを指定します。 値: plain、ssl デフォルト: plain |
|
|
使用する接続プールを指定します。 値: JNDI、IDM デフォルト: JNDI |
|
|
アイドル接続がプールにとどまっていられるミリ秒数を指定します。タイムアウト後に接続が閉じられ、プールから削除されます。 値: 文字列形式の整数。 デフォルト: 300000(5分) |
|
|
LDAP接続に問題がある場合の、最大再試行回数を指定します。 値: 整数 例: 5 |
次のコードは、前述のプロパティの構成を示しています。
<jpsConfig ... >
...
<!-- These are various JPS common properties used for LDAP operations -->
<property name="oracle.security.jps.farm.name" value="cn=OracleFarmContainer"/>
<property name="oracle.security.jps.ldap.root.name"
value="cn=OracleJpsContainer"/>
<property name="oracle.security.jps.ldap.max.retry" value="5"/>
...
</jpsConfig>
表F-7に、匿名ユーザー、匿名ロールおよび認証ロールのプロパティを示します。これらのプロパティの中には、匿名サービスやアイデンティティ・ストアのログイン・モジュールの構成に使用されるものがあります。
表F-7 匿名ロールと認証ロールのプロパティ
| 名前 | 説明 |
|---|---|
|
|
匿名ロールの説明を提供します。 例: |
|
|
匿名ロールのプリンシパル名を指定します。 デフォルト値: |
|
|
匿名ロールの名前を指定します。 デフォルト値: |
|
|
匿名ユーザーのプリンシパル名を指定します。 デフォルト値: |
|
|
認証ロールの説明を提供します。 例: |
|
|
認証されたユーザーに使用されるロールのプリンシパル名を指定します。 デフォルト値: |
|
|
認証ロールの名前を指定します。 デフォルト値: |
|
|
ユーザーの認証後にサブジェクトから匿名ロールを削除する必要があるかどうかを指定します。 デフォルト値はFALSEです。 |
表F-8に、ポリシー・プロバイダのフレームワークのプロパティを示します。
表F-8 ポリシー・プロバイダのフレームワークのプロパティ
| 名前 | 説明 |
|---|---|
|
|
PolicyDelegationPermissionを拡張するパーミッションの完全修飾クラス名を指定します。これは、ポリシー・フレームワークにより、実行時にカスタム・プロバイダの委任に使用されます。デフォルトでは、このプロパティは |
|
|
ロールのメンバーの識別名(DN)を指定する静的LDAPロール・オブジェクトの属性を指定します。 例: |
|
|
ロール名を一意に識別するLDAP属性の名前を指定します。 例: |
|
|
ロールを表すLDAPスキーマ・オブジェクト・クラスを指定します。複数のクラスを指定する場合は、各クラスを空白で区切ります。 Sun Java System Directory Serverのデフォルトは 例: |
|
|
ロールが含まれているLDAPディレクトリに、空白で区切られた識別名(DN)のリストを指定します。 例: |
|
|
LDAPディレクトリ・ツリーでロールを検索するときの深さを指定します。 デフォルト値: |
次の例は、Oracle Internet Directoryを使用したポリシー・ストアのサービス・プロバイダの構成およびjpscontextでの使用を示しています。
<jpsConfig ... >
...
<serviceProviders>
<serviceProvider type="POLICY_STORE" name="policystore.ldap.provider"
class= "oracle.security.jps.internal.policystore.ldap.LdapPolicyStoreProvider">
<description>LDAP-based PolicyStore</description>
<property name="policystore.type" value="OID"/>
<property name="connection.pool.max.size" value="30"/>
<property name="connection.pool.provider.type" value="IDM"/>
</serviceProvider>
</serviceProviders>
...
<serviceInstances>
<serviceInstance name="policystore.oid" provider="policystore.ldap.provider">
<property name="max.search.filter.length" value="4096"/>
<property name="bootstrap.security.principal.key" value="bootstrap"/>
<property name="ldap.url" value="ldap://xyz.us.oracle.com:389"/>
<property name="policystore.jpsbase" value="cn=jps,cn=oraclecontext"/>
<property name="policystore.role.objectclass" value="orclrole"/>
<property name="policystore.role.searchbase" value="cn=roles"/>
<property name="policystore.role.searchscope" value="subtree"/>
<property name="policystore.role.nameattr" value="cn"/>
<property name="policystore.role.memberattr" value="uniquemember"/>
<property name="policystore.role.roleheirarchyattr" value="assignedRoles"/>
</serviceInstance>
</serviceInstances>
...
<jpsContexts default="default">
<jpsContext name="default">
<serviceInstanceRef ref="policystore.oid"/>
</jpsContext>
</jpsContexts>
</jpsConfig>
表F-9は、キーストア・サービスを構成するプロパティを示しています。暗号化または署名を使用する場合は、秘密鍵を取得するためのパスワードおよびキーストア資格証明にアクセスするためのマップを指定します。
表F-9 キーストアのプロパティ
| 名前 | 説明 |
|---|---|
|
|
キーストアへのパス。 |
|
|
キーストアのタイプ。 |
|
|
資格証明ストア内のキーストア資格証明のマップ。 |
|
|
資格証明ストア内のプライベート・パスワードへのキー。 |
|
|
署名を使用する際の資格証明ストア内の秘密鍵。 |
|
|
暗号化を使用する際の資格証明ストア内の秘密鍵。 |
次の例は、前述のプロパティの構成を示しています。
<serviceInstance provider="keystore.provider" name="keystore">
<description>Default JKS Keystore Service</description>
<property value="${oracle.instance}/config/default-keystore.jks" name="keystore.path"/>
<property value="JKS" name="keystore.type"/>
<property value="oracle.wsm.security" name="keystore.csf.map"/>
<property value="keystore-csf-key" name="keystore.pass.csf.key"/>
<property value="sign-csf-key" name="keystore.sig.csf.key"/>
<property value="enc-csf-key" name="keystore.enc.csf.key"/>
</serviceInstance>