ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Entitlements Server管理者ガイド
11g リリース1 (11.1.1)
B65044-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

11 管理タスク

この章では、監査タスクの管理、および異なるタイプのストアからのポリシーの移行について説明します。この章には次の項目があります。

11.1 WebLogic Serverとの統合

1.3.2.2項「PDP/PEPの組合せとしてのセキュリティ・モジュール」で説明しているように、WebLogic Serverは、ロール・マッピングおよび認可プロバイダを有効化した後で、認可リクエストを自動的に捕捉できます。次の手順は、これを行う方法を説明します。ここでは、WebLogic Serverは、$DOMAINドメインの$WLSディレクトリにインストールされていることを前提としています。手順に従う場合は、インストールからの値を置き換えます。

  1. 次のコマンドを使用して、jps-atz-wls-proxyproviders.jarをWebLogic Serverプロバイダ定義ディレクトリにコピーします。

    cp jps-atz-wls-proxyproviders.jar $WLS/server/lib/mbeantypes
    
  2. 次のコマンドを使用して、$DOMAINドメインを起動します。

    $DOMAIN/startWeblogic.sh
    
  3. 認可プロキシおよびロール・マッピング・プロバイダを、ドメインを保護するレルムに追加します。

    図11-1は、これを示すWebLogic Serverコンソールのスクリーンショットです。

    図11-1 WebLogic Serverドメインのレルムへのプロバイダの追加

    図11-1の説明が続きます
    「図11-1 WebLogic Serverドメインのレルムへのプロバイダの追加」の説明

  4. ドメインを再起動します。

プロバイダを有効化したら、構成パラメータについてA.2.4項「WebLogic Serverセキュリティ・モジュール」を参照してください。

11.2 監査タスクの管理

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.2.1 イベントの監査

表11-1では、Oracle Entitlements Serverが監査するイベント(機能カテゴリごとに編成)をリストします。デフォルトでは、監査ロギングは無効になっています。

表11-1 Oracle Entitlements Serverで監査されるイベント

機能カテゴリ 機能タスク

管理ロール管理

  • AdminRoleCreation

  • AdminRoleDeletion

  • AdminRoleGrant

  • AdminRoleRevoke

  • AdminRoleResActionGrant

  • AdminRoleResActionRevoke

アプリケーション管理

  • ApplicationDeletion

権限付与管理

  • PermissionSetGrant

  • PermissionSetRevocation

権限設定管理

  • PermissionSetCreation

  • PermissionSetModification

  • PermissionSetDeletion

ポリシー・ドメイン管理

  • PolicyDomainCreation

  • PolicyDomainDeletion

ポリシー管理

  • PolicyCreation

  • PolicyModification

  • PolicyDeletion

  • PolicyGrant

  • PolicyRevoke

リソース管理

  • ResourceCreation

  • ResourceModification

  • ResourceDeletion

ロール管理

  • RoleCreation

  • RoleModification

  • RoleDeletion

  • RoleMembershipAdd

  • RoleMembershipRemove

ロール・ポリシー管理

  • RolePolicyCreation

  • RolePolicyModification

  • RolePolicyDeletion

認可

  • CheckPermission

  • IsAccessAllowed

  • CheckSubject

構成バインディング管理

  • SecurityModuleBinding

  • SecurityModuleUnbinding

構成管理

  • SecurityModuleCreation

  • SecurityModuleModification

  • SecurityModuleDeletion

ポリシー配布管理

  • PolicyDistribution

  • PdpDeregistration

  • purgeDistributionStatus


11.2.2 監査の構成

監査は、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)の場合、audit.loader.jndiも定義する必要があります。


11.2.3 その他の監査情報

次のリストは、監査フレームワークに関する情報が記載されている他のドキュメントを示します。

  • 入門資料は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

  • Enterprise Managerユーザー・インタフェースまたはWebLogic Scripting Tool (WLST)コマンドライン・インタフェースを使用して、監査ポリシーを管理できます。詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

  • Oracle Fusion Middlewareの監査フレームワークのリファレンスは、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

  • その他の構成情報は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

11.3 ポリシーの移行

この項では、あるタイプのストアから別のタイプのストアへのポリシーの移行について説明します。次の手順について説明します。

11.3.1 XMLからLDAPへの移行

次に、XMLベースのポリシー・ストアからLDAPベースのディレクトリにポリシーを移行する手順を示します。

  1. 次のサブ手順で説明するように、jps-config.xmlを変更します。

    1. 例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>
      
    2. 例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>
      
    3. 例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>
      
  2. WebLogic Scripting Toolを起動します。

    移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。

  3. 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です。

11.3.2 LDAPからXMLへの移行

次に、LDAPベースのディレクトリからXMLベースのポリシー・ストアにポリシーを移行する手順を示します。

  1. 次のサブ手順で説明するように、jps-config.xmlを変更します。

    1. 例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>
      
    2. 例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>
      
    3. 例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>
      
  2. WebLogic Scripting Toolを起動します。

    移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。

  3. 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です。

11.3.3 XMLからデータベースへの移行

次に、XMLベースのポリシー・ストアからデータベースにポリシーを移行する手順を示します。

  1. 次のサブ手順で説明するように、jps-config.xmlを変更します。

    1. 例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>
      
    2. 例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>
      
    3. 例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>
      
  2. WebLogic Scripting Toolを起動します。

    移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。

  3. 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です。

11.3.4 データベースからXMLへの移行

次に、データベースからXMLベースのポリシー・ストアにポリシーを移行する手順を示します。

  1. 次のサブ手順で説明するように、jps-config.xmlを変更します。

    1. 例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>
      
    2. 例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>
      
    3. 例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>
      
  2. WebLogic Scripting Toolを起動します。

    移行コマンドがオフライン・コマンドのときは、WebLogic Scripting ToolをWebLogic Serverに接続する必要はありません。

  3. 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です。

11.4 キャッシュの構成

Oracle Entitlements Serverでは、キャッシング機能が提供されています。キャッシュ設定は、jps-config.xmlファイルで構成されます。次の各項では、適切な詳細を説明します。

11.4.1 決定キャッシングの構成

認可決定キャッシングによって、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 決定キャッシング・パラメータ

名前 説明 許容値

oracle.security.jps.pdp.AuthorizationDecisionCacheEnabled

ポリシー決定キャッシュを有効化するかどうかを指定するオプション・パラメータ。

true (デフォルト)

false

oracle.security.jps.pdp.AuthorizaionDecisionCacheEvictionCapacity

L1キャッシュの最大容量を指定するオプション・パラメータ。エントリ数がこの値を超えると、いくつかのエントリが削除されます。

エントリ数を表す整数

500 (デフォルト)

oracle.security.jps.pdp.AuthorizationDecisionCacheEvictionPercentage

最大容量に達したときに削除する必要があるL1キャッシュ内のエントリの比率を指定するオプション・パラメータ。たとえば、最大容量が200で、このパラメータの値が10の場合、20エントリがキャッシュから削除されます。

エントリの割合を表す整数

10 (デフォルトは10%)

oracle.security.jps.pdp.AuthotizationDecisionCacheTTL

L2キャッシュ内のエントリの存続時間の値(秒)を指定するオプション・パラメータ。認可決定をキャッシュする長さを定義します。

時間を秒で表す整数

60 (デフォルトは1分)


11.4.2 属性キャッシングの構成

渡された各属性に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>

注意:

cachedが属性に定義されていない場合、属性はキャッシュされません。


11.5 デバッグ

次の各項では、Oracle Entitlements Serverおよびポリシー配布コンポーネントの使用時に作成された認可ポリシーのデバッグ方法について説明します。

11.5.1 デバッグのためのロギングの構成

Oracle Entitlements Serverは、標準のJavaロギング・フレームワークを使用します。ロギングは、特定のイベントのエンティティを通知するプロセスです。Oracle Entitlements Serverの場合、エンティティはファイルまたは管理コンソールになり、イベントはデバッグ情報、ランタイム例外、またはユーザーが実行するアクションの記録になります。ロギング・フレームワークは、Oracle Entitlements Serverデプロイメントに基づいて構成されます。詳細は、次の各項に記載されています。


注意:

java.util.loggingパッケージは、プラットフォームのコア・ロギング機能のクラスおよびインタフェースを提供します。


11.5.1.1 Javaセキュリティ・モジュール・デプロイメントのためのロギングの構成

デプロイメントで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

11.5.1.2 WebLogic Serverセキュリティ・モジュール・デプロイメントのためのロギングの構成

デプロイメントでWebLogic Serverセキュリティ・モジュールを使用する際にロギングを有効化するには、WebLogic Serverドメインを起動する際に、次のコマンドを実行して、ロギング構成ファイルを指定します。

startWeblogic.sh -Djava.util.logging.config.file=logging.properties

ヒント:

相対パスを指定する場合、ベース・ディレクトリはドメイン・ホームです。startWeblogic.shがあるディレクトリではありません。


WebLogic Serverセキュリティ・モジュールに関連するその他の構成は、11.5.1.1項「Javaセキュリティ・モジュール・デプロイメントのためのロギングの構成」で定義されている構成と同様です。

11.5.2 認可ポリシーをデバッグするログの検索

次の各項では、ロギング・ファイルに記録された情報を検索する方法について説明します。各項には、実行するコマンドが記載されており、多くの項には、サンプル出力も記載されています。

11.5.2.1 PEPリクエスト情報の検索

次のコマンドをロギング・ファイルに対して実行して、PEPリクエスト関連の情報(認証ID、ランタイム・リソース、ランタイム・アクション、およびアプリケーション・コンテキストなど)を出力します。

grep "PepRequestImpl"

11.5.2.2 セキュリティ・モジュールのキャッシュ構成パラメータの検索

次のコマンドをロギング・ファイルに対して実行して、特定のセキュリティ・モジュールのキャッシュ構成パラメータを出力します。

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}

11.5.2.3 プリンシパルの検索

次のコマンドをロギング・ファイルに対して実行して、認可リクエストの形式でOracle Entitlements Serverが受信するプリンシパルの名前を出力します。

grep "Principal:"

例11-19は、プリンシパル検索での出力を示します。

例11-19 プリンシパル検索でのサンプル出力

com.bea.security.providers.authorization.asi.AuthorizationProviderImpl isAccessAllowed

FINE:subject: Subject:
     Principal: John
     Principal: Employee
     Principal: Administrator
     Principal: Principal Developer

11.5.2.4 リソースおよびアクションの検索

次のコマンドをロギング・ファイルに対して実行して、認可リクエストの形式でOracle Entitlements Serverが受信するリソースおよびアクションの名前を出力します。

grep "Resource:"

例11-20は、情報を返す方法を示します。定義される値は、ポリシー・オブジェクトの名前です。

  • アプリケーション = Lib

  • リソース・タイプ = libraryresourcetype

  • リソース = Book

  • アクション = borrow

例11-20 リソースおよびアクション検索でのサンプル出力

com.bea.security.providers.authorization.asi.AuthorizationProviderImpl isAccessAllowed

FINE: Resource: resource=Lib/libraryresourcetype/Book, action=borrow

11.5.2.5 属性の値の検索

次のコマンドをロギング・ファイルに対して実行して、認可リクエストの形式でOracle Entitlements Serverが受信する属性の値を出力します。

grep "<name-of-the-attribute>:"
EXAMPLE: grep "getAttributeInternal:"

例11-21は、属性の名前がNumberOfBorrowedBooksAttributeで、値が2の場合に返される情報を示します。

例11-21 属性検索の値のサンプル出力

com.bea.security.providers.authorization.asi.ARME.evaluator.EvalSession logDebug
FINE: getAttributeInternal: name: NumberOfBorrowedBooksAttribute; value: 2; type: 3

11.5.2.6 認可決定の検索

次のコマンドをロギング・ファイルに対して実行して、格納された認可決定を取得します。

grep "AccessResultLogger"

例11-22は、返される情報を示し、認可決定が肯定的であったことを確認します。

例11-22 認可決定検索でのサンプル出力

com.bea.security.providers.authorization.asi.AccessResultLogger log
FINE: Subject Subject:
Principal: John
Principal: Employee
Principal: Administrator
Principal: Principal Developer
 privilege borrow resource //app/policy/Lib/Book result PERMIT

11.5.2.7 義務の値の検索

次のコマンドをロギング・ファイルに対して実行して、特定の義務の値を出力します。

grep "adding response attribute:" | grep  "obligations"

例11-23は、プリンシパルが現在チェックアウトしているライブラリ・ブックの量が3より多い場合、義務(DenyObligationという名前)はリクエストを拒否することを示している場合に返される情報を示します。次の場合、プリンシパルは5つのブックをチェックアウトしています。

例11-23 義務の値検索でのサンプル出力

com.bea.security.providers.authorization.asi.AuthorizationProviderImpl ARMEisAccessAllowed
FINE: adding response attribute: namespace=oracle.security.oes.authorization. 
 name=obligations value={DenyObligation=
   { reason_part1=Too many borrowed books (max=3), reason_part2=5, }}

11.5.2.8 静的アプリケーション・ロールの検索

次のコマンドをロギング・ファイルに対して実行して、静的に付与されるアプリケーション・ロールの名前を出力します。

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]

11.5.3 ポリシー配布のデバッグ

ポリシー配布コンポーネントでは、ポリシー管理のLoggerインタフェースを使用します。ポリシー配布コンポーネントのデバッグを有効化するには、ロギング構成ファイルのoracle.jps.policymgmt.levelプロパティのロギング・レベルをFINESTに変更します。手順は、11.5.1項「デバッグのためのロギングの構成」で説明しています。