この章では、監査タスクの管理、および異なるタイプのストアからのポリシーの移行について説明します。この章には次の項目があります。
1.3.2.2項「PDP/PEPの組合せとしてのセキュリティ・モジュール」で説明しているように、WebLogic Serverは、ロール・マッピングおよび認可プロバイダを有効化した後で、認可リクエストを自動的に捕捉できます。次の手順は、これを行う方法を説明します。ここでは、WebLogic Serverは、$DOMAINドメインの$WLSディレクトリにインストールされていることを前提としています。手順に従う場合は、インストールからの値を置き換えます。
次のコマンドを使用して、jps-atz-wls-proxyproviders.jarをWebLogic Serverプロバイダ定義ディレクトリにコピーします。
cp jps-atz-wls-proxyproviders.jar $WLS/server/lib/mbeantypes
次のコマンドを使用して、$DOMAINドメインを起動します。
$DOMAIN/startWeblogic.sh
認可プロキシおよびロール・マッピング・プロバイダを、ドメインを保護するレルムに追加します。
図11-1は、これを示すWebLogic Serverコンソールのスクリーンショットです。
ドメインを再起動します。
プロバイダを有効化したら、構成パラメータについてA.2.4項「WebLogic Serverセキュリティ・モジュール」を参照してください。
Oracle Entitlements Serverは、すべての管理アクティビティおよび認可リクエスト、オプションでファイルへの情報の記録を監査します。監査フレームワークは、Oracle Platform Security Services用に開発されたフレームワークを基にしています。Oracle Platform Security Servicesの監査フレームワークの概要は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。次の情報は、Oracle Entitlements Serverでの監査機能に固有なものです。
|
注意: Oracle Entitlements Serverは、Oracle Entitlements Server自体、Oracle Platform Security Services、またはその組合せによって構成されたポリシーの結果として生じる決定を監査します。 |
表11-1では、Oracle Entitlements Serverが監査するイベント(機能カテゴリごとに編成)をリストします。デフォルトでは、監査ロギングは無効になっています。
表11-1 Oracle Entitlements Serverで監査されるイベント
| 機能カテゴリ | 機能タスク |
|---|---|
|
管理ロール管理 |
|
|
アプリケーション管理 |
|
|
権限付与管理 |
|
|
権限設定管理 |
|
|
ポリシー・ドメイン管理 |
|
|
ポリシー管理 |
|
|
リソース管理 |
|
|
ロール管理 |
|
|
ロール・ポリシー管理 |
|
|
認可 |
|
|
構成バインディング管理 |
|
|
構成管理 |
|
|
ポリシー配布管理 |
|
監査は、Java EEコンテナが使用する構成ファイルであるjps-config.xmlで構成されます。これは、$DOMAIN_HOME/config/fmwconfigディレクトリにあります。例11-1に示すように、filterPresetレベル、リポジトリ・タイプ、およびその他の情報を定義できます。
例11-1 jps-config.xmlでの監査サービスの構成パラメータ
<!-- JPS Audit Service Instance-->
<serviceInstance name="audit" provider="audit.provider">
<property name="audit.filterPreset" value="None"/>
<property name="audit.maxDirSize" value ="0"/>
<property name="audit.maxFileSize" value ="104857600"/>
<property name="audit.loader.jndi" value="jdbc/AuditDB"/>
<property name="audit.loader.interval" value="15" />
<property name="audit.loader.repositoryType" value="File" />
</serviceInstance>
表11-2では、構成パラメータの詳細を説明します。
表11-2 jps-config.xmlでの監査パラメータ
| パラメータ | 説明 |
|---|---|
|
audit.filterPreset |
なし(デフォルト)、低、中、すべて、またはカスタム |
|
audit.maxDirSize |
監査ファイルが書き込まれるディレクトリのサイズを制御します。整数値をバイト単位で指定します。 |
|
audit.maxFileSize |
監査イベントが書き込まれるバス・ストップ・ファイルのサイズを制御します。整数値をバイト単位で指定します。 |
|
audit.loader.jndi |
データベースが使用中の場合、監査イベントがアップロードされるJNDIデータ・ソースへのパスを指定します。 |
|
audit.loader.interval |
データベースが使用中の場合、監査ローダーのアップロードの頻度を制御します。整数値を秒単位で指定します。 |
|
audit.loader.RepositoryType |
監査リポジトリ・タイプを定義します。FileまたはDbのいずれかの値を指定します。タイプがデータベース(Db)の場合、 |
次のリストは、監査フレームワークに関する情報が記載されている他のドキュメントを示します。
入門資料は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。
Enterprise Managerユーザー・インタフェースまたはWebLogic Scripting Tool (WLST)コマンドライン・インタフェースを使用して、監査ポリシーを管理できます。詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。
Oracle Fusion Middlewareの監査フレームワークのリファレンスは、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。
その他の構成情報は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。
この項では、あるタイプのストアから別のタイプのストアへのポリシーの移行について説明します。次の手順について説明します。
次に、XMLベースのポリシー・ストアからLDAPベースのディレクトリにポリシーを移行する手順を示します。
次のサブ手順で説明するように、jps-config.xmlを変更します。
例11-2に示すように、ソースおよび宛先のポリシー・ストアの両方にserviceInstanceを作成します。
例11-2 ソースおよび宛先のポリシー・ストアのためのXMLからLDAPへのserviceInstance
<!-- Source XML-based policy store instance -->
<serviceInstance name="src.xml" provider="policystore.xml.provider"
location="mydir/jazn-data.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>
<!-- Destination LDAP-based policy store instance -->
<serviceInstance provider="ldap.policystore.provider"
name="policystore.ldap.destination">
<description>Replace: A. myDestDomain and myDestRootName to appropriate
values according to your destination LDAP directory structure;
B. ldap://myDestHost.com:3060 with the URL and port
number of your destination LDAP</description>
<property value="OID" name="policystore.type"/>
<property value="bootstrap" name="bootstrap.security.principal.key"/>
<property value="cn=myDestDomain" name="oracle.security.jps.farm.name"/>
<property value="cn=myDestRootName"
name="oracle.security.jps.ldap.root.name"/>
<property value="ldap://myDestHost.com:3060" name="ldap.url"/>
</serviceInstance>
例11-3に示すように、宛先LDAPディレクトリへのアクセスに使用されるブートストラップ資格証明に対応するserviceInstanceを作成します。
例11-3 ブートストラップ資格証明のためのXMLからLDAPへのserviceInstance
<!-- Bootstrap credentials to access destination LDAP -->
<serviceInstance location="./bootstrap" provider="credstoressp"
name="bootstrap.cred">
<description>Replace location with the full path of the directory
where the bootstrap file cwallet.sso is located;
typically found in destinationDomain/config/fmwconfig/</description>
</serviceInstance>
例11-4に示すように、ソースおよび宛先のストアの両方にjpsContextを作成します。
例11-4 ソースおよび宛先のポリシー・ストアのためのXMLからLDAPへのjpsContext
<jpsContext name="sourceContext"> <serviceInstanceRef ref="src.xml"/> </jpsContext> <jpsContext name="destinationContext"> <serviceInstanceRef ref="policystore.ldap.destination"/> </jpsContext> <jpsContext name="bootstrap_credstore_context"> <serviceInstanceRef ref="bootstrap.cred"/> </jpsContext>
WebLogic Scripting Toolを起動します。
移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。
WebLogic Scripting ToolのmigrateSecurityStoreコマンドを実行して、次のようにポリシー・ストアおよびアプリケーションを移行します。
ポリシー・ストアを移行するには、次を実行します。
migrateSecurityStore
(type="policyStore", src="sourceContext",
dst="destinationContext",
configFile="myDir/jps-config.xml")
ここでは、次の事項が適用されます。
対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。
jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。
アプリケーションを移行するには、次を実行します。
migrateSecurityStore
(type="appPolicies", src="sourceContext",
dst="destinationContext",
configFile="myDir/jps-config.xml",
srcApp="sourceApplication", dstApp="destinationApplication",
overWrite="true")
ここでは、次の事項が適用されます。
対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。
jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。
移行されるアプリケーションの名前は、srcAppパラメータの値です。このパラメータが渡されない場合、ソースおよび宛先のポリシー・ストアにある同じアプリケーション名を持つすべてのアプリケーションが移行されます。
宛先ポリシー・ストアにあるアプリケーションに割り当てられる名前は、dstAppパラメータの値です。このパラメータが渡されない場合、宛先ストアにあるアプリケーションの名前は、ソース・ストアで使用されている名前と同じです。
overWriteパラメータがtrueとして定義されている場合、宛先アプリケーションに固有のポリシーは、ソース・アプリケーションからのポリシーによって置き換えられます。このパラメータのデフォルト値はfalseです。
次に、LDAPベースのディレクトリからXMLベースのポリシー・ストアにポリシーを移行する手順を示します。
次のサブ手順で説明するように、jps-config.xmlを変更します。
例11-5に示すように、ソースおよび宛先のポリシー・ストアの両方にserviceInstanceを作成します。
例11-5 ソースおよび宛先のポリシー・ストアのためのLDAPからXMLへのserviceInstance
<!-- Source LDAP-based policy store instance -->
<serviceInstance provider="ldap.policystore.provider"
name="policystore.ldap.source">
<description></description>
<property value="OID" name="policystore.type"/>
<property value="bootstrap" name="bootstrap.security.principal.key"/>
<property value="cn=mySourceDomain" name="oracle.security.jps.farm.name"/>
<property value="cn=mySourceRootName"
name="oracle.security.jps.ldap.root.name"/>
<property value="ldap://mySourceHost.com:3060" name="ldap.url"/>
</serviceInstance>
<!-- Destination XML-based policy store instance -->
<serviceInstance name="dst.xml" provider="policystore.xml.provider"
location="/scratch/divyasin/WithPSR/jazn-data-fscm.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>
例11-6に示すように、宛先LDAPディレクトリへのアクセスに使用されるブートストラップ資格証明に対応するserviceInstanceを作成します。
例11-6 ブートストラップ資格証明のためのLDAPからXMLへのserviceInstance
<!-- Bootstrap credentials to access source LDAP -->
<serviceInstance location="./bootstrap" provider="credstoressp"
name="bootstrap.cred">
<description>Replace location with the full path of the directory where the
bootstrap file cwallet.sso is located; typically found in
destinationDomain/config/fmwconfig/</description>
</serviceInstance>
例11-7に示すように、ソースおよび宛先のストアの両方にjpsContextを作成します。
例11-7 ソースおよび宛先のポリシー・ストアのためのLDAPからXMLへのjpsContext
<jpsContext name="sourceContext"> <serviceInstanceRef ref="policystore.ldap.source"/> </jpsContext> <jpsContext name="destinationContext"> <serviceInstanceRef ref="dst.xml"/> </jpsContext> <jpsContext name="bootstrap_credstore_context"> <serviceInstanceRef ref="bootstrap.cred"/> </jpsContext>
WebLogic Scripting Toolを起動します。
移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。
WebLogic Scripting ToolのmigrateSecurityStoreコマンドを実行して、次のようにポリシー・ストアおよびアプリケーションを移行します。
ポリシー・ストアを移行するには、次を実行します。
migrateSecurityStore
(type="policyStore", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml")
ここでは、次の事項が適用されます。
対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。
jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。
アプリケーションを移行するには、次を実行します。
migrateSecurityStore
(type="appPolicies", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml",
srcApp="sourceApplication", dstApp="destinationApplication",
overWrite="true")
ここでは、次の事項が適用されます。
対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。
jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。
移行されるアプリケーションの名前は、srcAppパラメータの値です。このパラメータが渡されない場合、ソースおよび宛先のポリシー・ストアにある同じアプリケーション名を持つすべてのアプリケーションが移行されます。
宛先ポリシー・ストアにあるアプリケーションに割り当てられる名前は、dstAppパラメータの値です。このパラメータが渡されない場合、宛先ストアにあるアプリケーションの名前は、ソース・ストアで使用されている名前と同じです。
overWriteパラメータがtrueとして定義されている場合、宛先アプリケーションに固有のポリシーは、ソース・アプリケーションからのポリシーによって置き換えられます。このパラメータのデフォルト値はfalseです。
次に、XMLベースのポリシー・ストアからデータベースにポリシーを移行する手順を示します。
次のサブ手順で説明するように、jps-config.xmlを変更します。
例11-8に示すように、ソースおよび宛先のポリシー・ストアの両方にserviceInstanceを作成します。
例11-8 ソースおよび宛先のポリシー・ストアのためのXMLからデータベースへのserviceInstance
<!-- Source XML-based policy store instance -->
<serviceInstance name="src.xml" provider="policystore.xml.provider"
location="/scratch/divyasin/WithPSR/jazn-data-fscm.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>
<!-- Destination DB-based policy store instance -->
<serviceInstance provider="ldap.policystore.provider"
name="policystore.db.destination">
<description>DB Based Policy Store Service Instance</description>
<property name="policystore.type" value="DB_ORACLE"/>
<property name="jdbc.url"
value="jdbc:oracle:thin:@sc.us.oracle.com:1722:orcl"
<jdbc:oracle:thin:@sc.us.oracle.com:1722:orcl>/>
<property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="bootstrap.security.principal.key"
value="bootstrap_DWgpEJgXwhDIoLYVZ2OWd4R8wOA=" />
<property name="oracle.security.jps.ldap.root.name" value="cn=jpsTestNode"/>
<property name="oracle.security.jps.farm.name" value="cn=view_steph.atz"/>
</serviceInstance>
例11-9に示すように、宛先LDAPディレクトリへのアクセスに使用されるブートストラップ資格証明に対応するserviceInstanceを作成します。
例11-9 ブートストラップ資格証明のためのXMLからデータベースへのserviceInstance
<!-- Bootstrap credentials to access source DB -->
<serviceInstance location="./bootstrap" provider="credstoressp"
name="bootstrap.cred">
<description>Replace location with the full path of the directory
where the bootstrap file cwallet.sso is located;
typically found in destinationDomain/config/fmwconfig/</description>
</serviceInstance>
例11-10に示すように、ソースおよび宛先のストアの両方にjpsContextを作成します。
例11-10 ソースおよび宛先のポリシー・ストアのためのXMLからデータベースへのjpsContext
<jpsContext name="sourceContext"> <serviceInstanceRef ref="src.xml"/> </jpsContext> <jpsContext name="destinationContext"> <serviceInstanceRef ref="policystore.db.destination"/> </jpsContext> <jpsContext name="bootstrap_credstore_context"> <serviceInstanceRef ref="bootstrap.cred"/> </jpsContext>
WebLogic Scripting Toolを起動します。
移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。
WebLogic Scripting ToolのmigrateSecurityStoreコマンドを実行して、次のようにポリシー・ストアおよびアプリケーションを移行します。
ポリシー・ストアを移行するには、次を実行します。
migrateSecurityStore
(type="policyStore", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml")
ここでは、次の事項が適用されます。
対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。
jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。
アプリケーションを移行するには、次を実行します。
migrateSecurityStore
(type="appPolicies", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml",
srcApp="sourceApplication", dstApp="destinationApplication",
overWrite="true")
ここでは、次の事項が適用されます。
対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。
jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。
移行されるアプリケーションの名前は、srcAppパラメータの値です。このパラメータが渡されない場合、ソースおよび宛先のポリシー・ストアにある同じアプリケーション名を持つすべてのアプリケーションが移行されます。
宛先ポリシー・ストアにあるアプリケーションに割り当てられる名前は、dstAppパラメータの値です。このパラメータが渡されない場合、宛先ストアにあるアプリケーションの名前は、ソース・ストアで使用されている名前と同じです。
overWriteパラメータがtrueとして定義されている場合、宛先アプリケーションに固有のポリシーは、ソース・アプリケーションからのポリシーによって置き換えられます。このパラメータのデフォルト値はfalseです。
次に、データベースからXMLベースのポリシー・ストアにポリシーを移行する手順を示します。
次のサブ手順で説明するように、jps-config.xmlを変更します。
例11-11に示すように、ソースおよび宛先のポリシー・ストアの両方にserviceInstanceを作成します。
例11-11 ソースおよび宛先のポリシー・ストアのためのデータベースからXMLへのserviceInstance
<!-- Source DB-based policy store instance -->
<serviceInstance provider="ldap.policystore.provider"
name="policystore.db.source">
<description>DB Based Policy Store Service Instance</description>
<property name="policystore.type" value="DB_ORACLE"/>
<property name="jdbc.url"
value="jdbc:oracle:thin:@sc.us.oracle.com:1722:orcl" <jdbc:oracle:thin:@sc.us.oracle.com:1722:orcl>/>
<property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="bootstrap.security.principal.key"
value="bootstrap_DWgpEJgXwhDIoLYVZ2OWd4R8wOA=" />
<property name="oracle.security.jps.ldap.root.name" value="cn=jpsTestNode"/>
<property name="oracle.security.jps.farm.name" value="cn=view_steph.atz"/>
</serviceInstance>
<!-- Destination XML-based policy store instance -->
<serviceInstance name="dst.xml" provider="policystore.xml.provider"
location="/scratch/divyasin/WithPSR/jazn-data-fscm.xml">
<description>File Based Policy Store Service Instance</description>
</serviceInstance>
例11-12に示すように、宛先LDAPディレクトリへのアクセスに使用されるブートストラップ資格証明に対応するserviceInstanceを作成します。
例11-12 ブートストラップ資格証明のためのデータベースからXMLへのserviceInstance
<!-- Bootstrap credentials to access source and destination LDAPs -->
<serviceInstance location="./bootstrap" provider="credstoressp"
name="bootstrap.cred">
<description>Replace location with the full path of the directory where
the bootstrap file cwallet.sso is located; typically found in
destinationDomain/config/fmwconfig/</description>
</serviceInstance>
例11-13に示すように、ソースおよび宛先のストアの両方にjpsContextを作成します。
例11-13 ソースおよび宛先のポリシー・ストアのためのデータベースからXMLへのjpsContext
<jpsContext name="sourceContext"> <serviceInstanceRef ref="policystore.db.source"/> </jpsContext> <jpsContext name="destinationContext"> <serviceInstanceRef ref="dst.xml"/> </jpsContext> <jpsContext name="bootstrap_credstore_context"> <serviceInstanceRef ref="bootstrap.cred"/> </jpsContext>
WebLogic Scripting Toolを起動します。
移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。
WebLogic Scripting ToolのmigrateSecurityStoreコマンドを実行して、次のようにポリシー・ストアおよびアプリケーションを移行します。
ポリシー・ストアを移行するには、次を実行します。
migrateSecurityStore
(type="policyStore", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml")
ここでは、次の事項が適用されます。
対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。
jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。
アプリケーションを移行するには、次を実行します。
migrateSecurityStore
(type="appPolicies", src="sourceContext",
dst="destinationContext",
configFile="/scratch/divyasin/WithPSR/jps-config.xml",
srcApp="sourceApplication", dstApp="destinationApplication",
overWrite="true")
ここでは、次の事項が適用されます。
対応するjpsContext (ステップ1ですでに作成済)の名前は、srcおよびdstパラメータに渡されます。
jps-config.xmlファイル(ステップ1ですでに変更済)の名前は、configFileパラメータに渡されます。値は、完全パス情報を持つ完全修飾ファイル名である必要があります。
移行されるアプリケーションの名前は、srcAppパラメータの値です。このパラメータが渡されない場合、ソースおよび宛先のポリシー・ストアにある同じアプリケーション名を持つすべてのアプリケーションが移行されます。
宛先ポリシー・ストアにあるアプリケーションに割り当てられる名前は、dstAppパラメータの値です。このパラメータが渡されない場合、宛先ストアにあるアプリケーションの名前は、ソース・ストアで使用されている名前と同じになります。
overWriteパラメータがtrueとして定義されている場合、宛先アプリケーションに固有のポリシーは、ソース・アプリケーションからのポリシーによって置き換えられます。このパラメータのデフォルト値はfalseです。
Oracle Entitlements Serverでは、キャッシング機能が提供されています。キャッシュ設定は、jps-config.xmlファイルで構成されます。次の各項では、適切な詳細を説明します。
認可決定キャッシングによって、Oracle Entitlements Serverは、同一コールが行われると、認可コールの結果をキャッシュし、その決定を今後使用できます。決定キャッシュは、2つの階層レベルで構成されます。
第1レベル(L1)は、認可コールで使用されるサブジェクトをキャッシュします。
第2レベル(L2)は、指定したサブジェクトの認可決定およびロール・マッピング決定をキャッシュします。
|
注意: 決定キャッシュは、ポリシーが変更されると自動的に無効化されます。 |
キャッシュのキーは、ポリシー評価中に使用される受信サブジェクト、権限および属性です。キャッシュの値は、決定および義務です。
すべてのパラメータ名には、接頭辞としてoracle.security.jps.pdpが付けられます。例11-14は、決定キャッシュ・パラメータをjps-config.xmlに設定する方法を示します。
例11-14 決定キャッシングを構成するXML
<serviceInstance name="pdp.service" provider="pdp.service.provider">
…
<property name="oracle.security.jps.pdp.AuthorizationDecisionCacheEnabled"
value="true"/>
<property name="oracle.security.jps.pdp.
AuthorizationDecisionCacheEvictionCapacity"
value="1000"/>
<property name="oracle.security.jps.pdp.
AuthorizationDecisionCacheEvictionPercentage"
value="15"/>
<property name=" oracle.security.jps.pdp.AuthorizationDecisionCacheTTL"
value="180"/>
…
</serviceInstance>
表11-3では、決定キャッシング・パラメータを説明します。
表11-3 決定キャッシング・パラメータ
| 名前 | 説明 | 許容値 |
|---|---|---|
|
|
ポリシー決定キャッシュを有効化するかどうかを指定するオプション・パラメータ。 |
true (デフォルト) false |
|
|
L1キャッシュの最大容量を指定するオプション・パラメータ。エントリ数がこの値を超えると、いくつかのエントリが削除されます。 |
エントリ数を表す整数 500 (デフォルト) |
|
|
最大容量に達したときに削除する必要があるL1キャッシュ内のエントリの比率を指定するオプション・パラメータ。たとえば、最大容量が200で、このパラメータの値が10の場合、20エントリがキャッシュから削除されます。 |
エントリの割合を表す整数 10 (デフォルトは10%) |
|
|
L2キャッシュ内のエントリの存続時間の値(秒)を指定するオプション・パラメータ。認可決定をキャッシュする長さを定義します。 |
時間を秒で表す整数 60 (デフォルトは1分) |
渡された各属性にcachedプロパティが定義されている場合、その属性をキャッシュできます。cachedが有効化されている場合、対応する存続時間(TTL)の値も定義する必要があります。キャッシュのキーは、属性URIです。キャッシュの値は、属性オブジェクトです。例11-15は、属性キャッシュをjps-config.xmlに設定する方法を示します。
例11-15 属性キャッシングを構成するXML
<propertySet name="ootb.pip.attribute.age.based.on.myattr.rdbms">
<property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
<property name="ootb.pip.ref" value="pip.service.ootb.db"/>
<property name="name" value=" myattr"/>
<property name="query" value="select value from table"/>
<property name="cached" value="true"/>
<property name="TTL" value="60"/>
</propertySet>
|
注意:
|
次の各項では、Oracle Entitlements Serverおよびポリシー配布コンポーネントの使用時に作成された認可ポリシーのデバッグ方法について説明します。
Oracle Entitlements Serverは、標準のJavaロギング・フレームワークを使用します。ロギングは、特定のイベントのエンティティを通知するプロセスです。Oracle Entitlements Serverの場合、エンティティはファイルまたは管理コンソールになり、イベントはデバッグ情報、ランタイム例外、またはユーザーが実行するアクションの記録になります。ロギング・フレームワークは、Oracle Entitlements Serverデプロイメントに基づいて構成されます。詳細は、次の各項に記載されています。
|
注意:
|
デプロイメントでJavaセキュリティ・モジュールを使用する際にロギングを有効化するには、次の構成を行う必要があります。
セキュリティ・モジュールを開始する際に次のコマンドを実行して、ロギング構成ファイルを指定します。
-Djava.util.logging.config.file=logging.properties
構成ファイルに次の行を追加して、ロギング・レベルを設定します。
oracle.jps.authorization.level=FINEST oracle.jps.openaz.level=FINEST
ロギング・レベルは、ロギング・レコードの複雑度を定義し、ロギング・レベルには、(低いものから高いものの順に) VERBOSE (単純な情報)、WARNING、INFO、CONFIG、FINE、FINER、FINEST (複雑な情報)があります。
構成ファイルを指定しない場合、$JAVA_HOME/jre/lib/にあるlogging.propertiesファイルが使用されます。例11-16は、管理コンソールに情報を記録するようにlogging.propertiesを構成する方法を示します。
例11-16 管理コンソール・ロギングのための構成
#The messages will we printed to the standard output handlers=java.util.logging.ConsoleHandler #The default level for all loggers is INFO .level=INFO #Override the default level for OES authorization to FINEST oracle.jps.authorization.level=FINEST oracle.jps.openaz.level=FINEST #Use default formatter to print the messages java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
例11-17は、ファイルに情報を記録するようにlogging.propertiesを構成する方法を示します。
例11-17 ファイル・ロギングのための構成
#The messages will be written to a file handlers=java.util.logging.FileHandler #The default level for all loggers is INFO .level=INFO #Override the default level for OES authorization to FINEST oracle.jps.authorization.level=FINEST oracle.jps.openaz.level=FINEST #Configure file information. %h – is the user home directory java.util.logging.FileHandler.pattern = %h/java%u.log java.util.logging.FileHandler.limit = 50000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
デプロイメントでWebLogic Serverセキュリティ・モジュールを使用する際にロギングを有効化するには、WebLogic Serverドメインを起動する際に、次のコマンドを実行して、ロギング構成ファイルを指定します。
startWeblogic.sh -Djava.util.logging.config.file=logging.properties
|
ヒント: 相対パスを指定する場合、ベース・ディレクトリはドメイン・ホームです。 |
WebLogic Serverセキュリティ・モジュールに関連するその他の構成は、11.5.1.1項「Javaセキュリティ・モジュール・デプロイメントのためのロギングの構成」で定義されている構成と同様です。
次の各項では、ロギング・ファイルに記録された情報を検索する方法について説明します。各項には、実行するコマンドが記載されており、多くの項には、サンプル出力も記載されています。
次のコマンドをロギング・ファイルに対して実行して、PEPリクエスト関連の情報(認証ID、ランタイム・リソース、ランタイム・アクション、およびアプリケーション・コンテキストなど)を出力します。
grep "PepRequestImpl"
次のコマンドをロギング・ファイルに対して実行して、特定のセキュリティ・モジュールのキャッシュ構成パラメータを出力します。
grep "AuthotizationDecisionCacheTTL"
この検索では、次のプロパティが返されます。プロパティがログに表示されない場合、プロパティはjps-config.xmlで指定されていません。このような場合、プロパティのデフォルト値が使用されます。
AuthorizationDecisionCacheTTLは、認可決定キャッシュの存続時間(秒)を定義します。デフォルト値は60です。
AuthorizationDecisionCacheEvictionPercentageは、認可決定キャッシュが最大容量に達したときに削除する認可決定の比率を定義します。デフォルト値は10です。
AuthorizationDecisionCacheEvictionCapacityは、決定キャッシュ・サイズがこのサイズに達した場合に認可決定キャッシュを削除するのに使用する数を定義します。デフォルト値は500です。
AuthorizationDecisionCacheEnabledは、認可決定キャッシュを有効化するかどうかを指定します。デフォルト値はtrueです。
例11-18は、この検索での出力を示します。
例11-18 キャッシュ構成パラメータ検索でのサンプル出力
oracle.security.jps.az.internal.runtime.service.AbstractPDPService
FINE: properties : {
oracle.security.jps.pdp.AuthotizationDecisionCacheTTL=60,
oracle.security.jps.pdp.AuthorizationDecisionCacheEvictionPercentage=10,
oracle.secuirty.jps.pdp.AuthorizationDecisionCacheEvictionCapacity=1000,
oracle.security.jps.pdp.AuthorizationDecisionCacheEnabled=true}
次のコマンドをロギング・ファイルに対して実行して、認可リクエストの形式でOracle Entitlements Serverが受信するプリンシパルの名前を出力します。
grep "Principal:"
例11-19は、プリンシパル検索での出力を示します。
次のコマンドをロギング・ファイルに対して実行して、認可リクエストの形式でOracle Entitlements Serverが受信するリソースおよびアクションの名前を出力します。
grep "Resource:"
例11-20は、情報を返す方法を示します。定義される値は、ポリシー・オブジェクトの名前です。
アプリケーション = Lib
リソース・タイプ = libraryresourcetype
リソース = Book
アクション = borrow
次のコマンドをロギング・ファイルに対して実行して、認可リクエストの形式でOracle Entitlements Serverが受信する属性の値を出力します。
grep "<name-of-the-attribute>:" EXAMPLE: grep "getAttributeInternal:"
例11-21は、属性の名前がNumberOfBorrowedBooksAttributeで、値が2の場合に返される情報を示します。
次のコマンドをロギング・ファイルに対して実行して、格納された認可決定を取得します。
grep "AccessResultLogger"
例11-22は、返される情報を示し、認可決定が肯定的であったことを確認します。
次のコマンドをロギング・ファイルに対して実行して、特定の義務の値を出力します。
grep "adding response attribute:" | grep "obligations"
例11-23は、プリンシパルが現在チェックアウトしているライブラリ・ブックの量が3より多い場合、義務(DenyObligationという名前)はリクエストを拒否することを示している場合に返される情報を示します。次の場合、プリンシパルは5つのブックをチェックアウトしています。
次のコマンドをロギング・ファイルに対して実行して、静的に付与されるアプリケーション・ロールの名前を出力します。
grep "AbstractRoleManager" | grep "getGrantedStaticAppRoles"
例11-24は、2つの静的ロール(組込みロールとReaderの認証ロール、およびLibraryという名前のアプリケーションで定義されるアプリケーション・ロール)をプリンシパルのリストに追加する方法を示します。
例11-24 静的ロール検索でのサンプル出力
oracle.security.jps.az.internal.runtime.entitymanager.AbstractRoleManager getGrantedStaticAppRoles(Set) FINER: RETURN [authenticated-role, ApplicationRoleLibrary/Readeruname: cn=Writer,cn=Roles,cn=Lib,cn=akapisni_dwps1_ view1.atzsrg,cn=JPSContext,cn=jpsTestNode,guid: 411EBF807CD411E0BF887FB1A0F3878F]
ポリシー配布コンポーネントでは、ポリシー管理のLoggerインタフェースを使用します。ポリシー配布コンポーネントのデバッグを有効化するには、ロギング構成ファイルのoracle.jps.policymgmt.levelプロパティのロギング・レベルをFINESTに変更します。手順は、11.5.1項「デバッグのためのロギングの構成」で説明しています。