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

前
 
次
 

6 事前定義済属性リトリーバの構成

1.3項「Oracle Entitlements Serverのアーキテクチャの概要」で説明しているように、ポリシー情報ポイント(PIP)は、属性値のソースとして機能するシステム・エンティティです。Oracle Entitlements Serverは、1つ以上のこれらのPIP情報ストアから属性値を取得するために、属性リトリーバ・プラグインに依存しています。事前定義済属性リトリーバは、Oracle Entitlements Serverに同梱されています。この章では、これらの事前定義済属性リトリーバおよび関連する構成要件について説明します。この章には次の項目があります。


注意:

カスタム属性リトリーバ、およびカスタム属性リトリーバを使用する場合のOracle Entitlements Serverの構成の詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』を参照してください。


6.1 事前定義済属性リトリーバについて

Oracle Entitlements Serverには事前定義済属性リトリーバが含まれており、これは、Lightweight Directory Access Protocol (LDAP)データ・ストアおよびリレーショナル・データベース管理システム(RDBMS)に接続し、属性値を取得するのに使用されます。これらのプラグインは、追加のプログラミングを行わずに、システムに定義された1つ以上の属性を処理できます。これには、キャッシング機能およびフェイルオーバーも含まれています。

構成情報については、6.2.3項「事前定義済属性リトリーバの個々の属性の構成」を参照してください。

6.2 事前定義済属性リトリーバの構成

これらの属性リトリーバの構成情報は、jps-config.xml構成ファイルで定義されます。2つのタイプの情報(属性問合せ情報およびリポジトリ接続情報)を構成する必要があります。


注意:

これらの事前定義済属性リトリーバは、Oracle Database 11gR1、Oracle Internet Directory 11gR1、およびOracle Virtual Directory 11gR1で構成できます。


次の各項では、各タイプの属性リトリーバの構成パラメータの詳細を説明します。前述したように、これらのパラメータは、$DOMAIN_HOME/config/fmwconfigディレクトリにある(Java EEコンテナが使用する)構成ファイルであるjps-config.xml内にあります。

6.2.1 LDAPリポジトリ属性リトリーバ・パラメータの構成

表6-1では、LDAP属性リトリーバを使用する場合に定義する必要があるパラメータについて説明します。構成のサンプル・コードは、例6-5「事前定義済LDAP属性リトリーバの使用」および例6-10「LDAPフェイルオーバーの構成」を参照してください。

表6-1 LDAP属性リトリーバ・パラメータ

名前 使用方法

name

説明: 事前定義済属性リトリーバの名前

必須

許容値: 属性リトリーバのサービス・インスタンスを定義する文字列。

description

説明: 事前定義済属性リトリーバの説明

オプション

許容値: 文字列

type

説明: 事前定義済属性リトリーバのタイプ

必須

許容値: LDAP_PIP

failed.server.retry.interval

説明: プライマリ・リポジトリとの通信が失敗した後、この属性は、プライマリ・リポジトリにスイッチ・バックする前にバックアップ・リポジトリが使用されている時間間隔を定義します。

オプション

許容値: 秒数に等しい値を指定します。デフォルト値は15です。

bootstrap.security.principal.key

説明: LDAPポリシー・ストアにアクセスするためのパスワード資格証明のキーを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。6.4項「PIP接続資格証明の設定」を参照してください。

オプション: 本番モード用のみ。

許容値: 資格証明のキー名(oes_sm_keyなど)。

bootstrap.security.principal.map

説明: LDAPポリシー・ストアにアクセスするためのパスワード資格証明のマップを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。6.4項「PIP接続資格証明の設定」を参照してください。

オプション: 本番モード用のみ。

許容値: 資格証明のマップ名(oes_sm_mapなど)。

ldap.url

説明: LDAPポリシー・ストアのURLを定義します。JEEアプリケーションおよびJSEアプリケーションで有効で、LDAPストアにのみ適用します。

必須

許容値: LDAPポリシー・ストアのURIで、形式はldap://host:portです。


6.2.2 データベース・リポジトリ属性リトリーバ・パラメータの構成

表6-2では、RDBMS属性リトリーバを使用する場合に定義する必要があるパラメータについて説明します。構成のサンプル・コードは、例6-6「JDBCでの事前定義済RDBMS属性リトリーバの使用」および例6-7「SQLでの事前定義済RDBMS属性リトリーバの使用」を参照してください。

表6-2 RDBMS属性リトリーバ・パラメータ

名前 使用方法

name

説明: 事前定義済属性リトリーバの名前

必須

許容値: 属性リトリーバのサービス・インスタンスを定義する文字列。

description

説明: 事前定義済属性リトリーバの説明

オプション

許容値: 文字列

type

説明: 事前定義済属性リトリーバのタイプ

必須

許容値: RDBMS_PIP

failed.server.retry.interval

説明: プライマリ・リポジトリが失敗した後、この属性は、プライマリ・リポジトリにスイッチ・バックする前にバックアップ・リポジトリが使用されている時間間隔を特定します。

オプション

許容値: 秒数に等しい値を指定します。デフォルト値は15です。

bootstrap.security.principal.key

説明: データベースにアクセスするためのパスワード資格証明のキーを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。6.4項「PIP接続資格証明の設定」を参照してください。

オプション: 本番モード用のみ。

許容値: 資格証明のキー名(oes_sm_keyなど)。

bootstrap.security.principal.map

説明: データベースにアクセスするためのパスワード資格証明のマップを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。6.4項「PIP接続資格証明の設定」を参照してください。

オプション: 本番モード用のみ。

許容値: 資格証明のマップ名(oes_sm_mapなど)。

jdbc.driver

説明: Java Database Connectivity (JDBC) APIを使用してデータベースに接続する場合のドライバの場所。

必須: JDBC APIを使用してデータベースに接続している場合。

許容値: oracle.jdbc.driver.OracleDriverなど

jdbc.url

説明: データベースを指すURLを指定します。

必須: JDBC APIを使用してデータベースに接続している場合。

許容値: カンマ区切りのURLのリスト。最初はプライマリなどとして処理されます。例: jdbc:oracle:thin:@scl58116.us.oracle.com:1521:orcl

datasource.jndi.name

説明: JDBCを直接介するのではなくデータ・ソースを介してPIPインスタンスを動作させる場合のデータ・ソースJNDI名。データ・ソース・シナリオは、WebLogic ServerおよびWebSphere Application Serverのみでサポートされます。

必須: JDBCを直接介するのではなくデータ・ソースを介してPIPインスタンスを動作させる場合。

許容値: 事前定義済データ・ソース・オブジェクトのJNDI名。


6.2.3 事前定義済属性リトリーバの個々の属性の構成

表6-3では、構成された属性リトリーバによって取得された各属性に定義されるパラメータについて説明します。構成のサンプルは、例6-9「属性のキャッシュの有効化」を参照してください。

表6-3 取得する属性の構成

名前 使用方法

name

説明: ポリシー・ストアで定義されている属性の名前。LDAP事前定義済属性リトリーバを使用している場合、Oracle Entitlements Serverに定義される属性名は、LDAPストアで定義される属性名と同じである必要があります。現在、名前マッピング機能はありません。

必須

許容値: 属性名

query

説明: 問合せに使用されるSQLコマンドまたはLDAPフィルタ。ユーザーは、問合せ文字列内の組込み属性およびカスタム属性を使用できます。たとえば、組込み属性sys_userを使用して、select age from customers where name=%sys_user%;などの問合せを定義できます。データ・ストアに問合せを送信する前に、トークンはその値に自動的に置き換えられます。双方向の依存性(たとえば、属性Aの問合せ文字列に属性Bが含まれ、属性Bの問合せ文字列に属性Aが含まれている)も検出でき、このような場合、例外がスローされます。

必須

許容値: SQLコマンドまたはLDAPフィルタ。

search.base

説明: LDAP検索ベース。

必須: LDAP用のみ。

許容値: 検索ベース・オブジェクトのDN。

ttl

説明: cachedが有効化されている場合、cached属性値の存続時間(秒)。

オプション

許容値: 任意の整数。cachedが有効化されている場合、デフォルト値は60秒です。

cached

説明: 属性値のキャッシングを有効化します。

オプション

許容値: デフォルト値はfalseです。

ootb.pip.attr.type

説明: OOTB_PIP_ATTRIBUTEに設定する必要があります。

必須

許容値: OOTB_PIP_ATTRIBUTE

ootb.pip.ref

説明: OOTB PIPインスタンスに設定する必要があります。

必須

許容値: jps-config.xml<serviceInstance>セクションで定義されたPIPサービス・インスタンス名。


6.3 jps-config.xmlの変更

jps-config.xml内で事前定義済属性リトリーバを構成するには、この項の各例で説明しているように、要素を変更します。例6-3は、jps-config.xmlファイルのサンプルです。これに続く各例は、行うことができる変更を示します。

例6-3 jps-config.xmlのサンプル・ファイル

<?xml version="1.0"?>
 
<jpsConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="
http://xmlns.oracle.com/oracleas/schema/jps-config-11_0.xsd">
 
   <property name="oracle.security.jps.jaas.mode" value="off"/>
   <property name="oracle.security.jps.enterprise.user.class" 
    value="weblogic.security.principal.WLSUserImpl"/>
   <property name="oracle.security.jps.enterprise.role.class" 
    value="weblogic.security.principal.WLSGroupImpl"/>
 
<propertySets>
<!-- These are the global authenticated role properties -->
  <propertySet name="authenticated.role.properties">
     <property name="authenticated.role.name" value="authenticated-role"/>
     <property name="authenticated.role.uniquename" value="authenticated-role"/>
     <property name="authenticated.role.description" 
        value="This is the authenticated role used by identity store 
        service instance."/>
  </propertySet>
 
<!-- attribute defined for ldap retriever -->
  <propertySet name="ootb.pip.attribute.age.ldap">
     <property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
     <property name="ootb.pip.ref" value="pip.service.ootb.ldap"/>
     <property name="name" value="oespipage"/>
     <property name="query" value="(cn=%SYS_USER%)"/>
     <property name="cached" value="true"/>
     <property name="ttl" value="60"/>
  </propertySet>
 
  <propertySet name="ootb.pip.attribute.age.based.on.myattr.ldap">
     <property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
     <property name="ootb.pip.ref" value="pip.service.ootb.ldap"/>
     <property name="name" value="oespipage_myattr"/>
     <property name="query" value="(cn=%MyAttr%)"/>
     <property name="cached" value="true"/>
     <property name="ttl" value="60"/>
  </propertySet>
 
  <propertySet name="ootb.pip.attribute.gender.ldap">
     <property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
     <property name="ootb.pip.ref" value="pip.service.ootb.ldap"/>
     <property name="name" value="oespipgender"/>
     <property name="query" value="(oespipage=%oespipage%)"/>
     <property name="cached" value="true"/>
     <property name="ttl" value="60"/>
  </propertySet>
 
<!-- attribute defined for rdbms retriever -->
  <propertySet name="ootb.pip.attribute.age.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="oespipage"/>
     <property name="query" value="select oespipage 
         from pip_info_store where username=%SYS_USER%"/>
     <property name="cached" value="true"/>
     <property name="ttl" value="60"/>
  </propertySet>
 
  <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="oespipage_myattr"/>
     <property name="query" value="select oespipage 
         as oespipage_myattr from pip_info_store where username=%MyAttr%"/>
     <property name="cached" value="true"/>
     <property name="ttl" value="60"/>
  </propertySet>
 
  <propertySet name="ootb.pip.attribute.gender.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="oespipgender"/>
     <property name="query" value="select oespipgender 
          from pip_info_store where oespipage=%oespipage%"/>
      <property name="cached" value="true"/>
     <property name="ttl" value="60"/>
  </propertySet>
</propertySets>
 
<serviceProviders>
 
  <serviceProvider type="CREDENTIAL_STORE" name="credstoressp" 
       class="oracle.security.jps.internal.credstore.ssp.
              SspCredentialStoreProvider">
     <description>SecretStore-based CSF Provider</description>
  </serviceProvider>
 
  <serviceProvider class="oracle.security.jps.az.
        internal.runtime.provider.PIPServiceProvider" 
        name="pip.service.provider" type="PIP"/>
 
  <serviceProvider type="POLICY_STORE" name="policy.rdbms" 
        class="oracle.security.jps.internal.policystore.
        OPSSPolicyStoreProvider">
     <property name="policystore.type" value="DB_ORACLE"/>
     <description>DBMS based PolicyStore</description>
  </serviceProvider>
 
  <serviceProvider name="pdp.service.provider" type="PDP" 
         class="oracle.security.jps.az.internal.
         runtime.provider.PDPServiceProvider">
      <description>OPSS Runtime PDP Service Provider</description>
  </serviceProvider>
 
  <serviceProvider name="idstore.xml.provider" type="IDENTITY_STORE" 
         class="oracle.security.jps.internal.idstore.
         xml.XmlIdentityStoreProvider">
       <description>XML-based IdStore Provider</description>
  </serviceProvider>
 
  <serviceProvider name="jaas.login.provider" type="LOGIN" 
         class="oracle.security.jps.internal.
         login.jaas.JaasLoginServiceProvider">
       <description>This is Jaas Login Service Provider and is used 
         to configure login module service instances</description>
  </serviceProvider>
 
  <serviceProvider name="policy.xml" type="POLICY_STORE"
        class="oracle.security.jps.internal.
        policystore.xml.XmlPolicyStoreProvider">
     <description>XML-based PolicyStore</description>
</serviceProvider>
 
<serviceProvider type="POLICY_STORE" name="policy.oid"               
         class="oracle.security.jps.internal.
         policystore.ldap.LdapPolicyStoreProvider">
     <description>LDAP-based PolicyStore</description>
     <property name="policystore.type" value="OID"/>
     <property name="connection.pool.maxsize" value="30"/>
     <property name="connection.pool.provider.type" value="idmpool"/>
  </serviceProvider>
 
  <serviceProvider type="AUDIT" name="audit.provider" 
        class="oracle.security.jps.internal.audit.AuditProvider">
       <description>Audit Service</description>
  </serviceProvider>
</serviceProviders>
 
<serviceInstances>
 
  <serviceInstance name="credstore" provider="credstoressp" location="./">
          <description>File Based Credential Store Service Instance</description>
  </serviceInstance>
 
  <serviceInstance name="idstore.xml" provider="idstore.xml.provider">
<!-- Subscriber name must be defined for XML Identity Store -->
     <property name="subscriber.name" value="jazn.com"/>
<!-- This is the location of XML Identity Store -->
     <property name="location" value="./user-data.xml"/>
<!-- This property set defines the authenticated role -->
     <propertySetRef ref="authenticated.role.properties"/>
  </serviceInstance>
  <serviceInstance name="idstore.loginmodule" 
          provider="jaas.login.provider">
          <description>Identity Store Login Module</description>
     <property name="loginModuleClassName" value="oracle.security.jps.internal.
            jaas.module.idstore.IdStoreLoginModule"/>
     <property name="jaas.login.controlFlag" value="REQUIRED"/>
     <property name="debug" value="true"/>
     <property name="addAllRoles" value="true"/>
  </serviceInstance>
 
  <serviceInstance name="policystore.rdbms" provider="policy.rdbms">
        <property name="jdbc.url" 
           value="jdbc:oracle:thin:@scl58116.us.oracle.com:1521:orcl"/>
        <property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="bootstrap.security.principal.key" value="keyname"/>
        <property name="bootstrap.security.principal.map" value="mapname"/>
        <property name="oracle.security.jps.ldap.root.name" 
           value="cn=jpsTestNode"/>
        <property name="oracle.security.jps.farm.name" 
           value="cn=wcai_view_jing.atzsrg"/>
  </serviceInstance>
 
  <serviceInstance name="policystore.rdbms.ds" provider="policy.rdbms">
     <property name="oracle.security.jps.ldap.root.name" 
         value="cn=jpsTestNode"/>
     <property name="oracle.security.jps.farm.name" 
         value="cn=wcai_view_jing.atzsrg"/>
     <property value="atzsrgds" name="datasource.jndi.name"/>
  </serviceInstance>
 
  <serviceInstance name="pdp.service" provider="pdp.service.provider">
     <property name="oracle.security.jps.runtime.pd.client.sm_name" 
           value="${atzsrg.pdp.configuration_id}"/>
     <property name="oracle.security.jps.pdp.
           AuthorizationDecisionCacheEnabled" value="true"/>
     <property name="oracle.security.jps.pdp.
           AuthorizationDecisionCacheEvictionCapacity" value="500"/>
     <property name="oracle.security.jps.pdp.
           AuthorizationDecisionCacheEvictionPercentage" value="10"/>
     <property name="oracle.security.jps.pdp.
           AuthorizationDecisionCacheTTL" value="60"/>
     <property name="oracle.security.jps.ldap.
           policystore.refresh.interval" value="30000"/>
     <property name="oracle.security.jps.policystore.
           refresh.purge.timeout" value="600000"/> <!-- 10 minutes -->
     <property name="loading_attribute_backward_compatible" value="false"/>
<!-- Properties for controlled mode PD -->
     <property name="oracle.security.jps.runtime.
           pd.client.policyDistributionMode" value="non-controlled"/>
     <property name="oracle.security.jps.runtime.
           instance.name" value="${atzsrg.pdp.instance_name}"/>
  </serviceInstance>
 
  <serviceInstance name="policystore.oid" provider="policy.oid">
    <property name="max.search.filter.length" value="4096"/>
    <property name="bootstrap.security.principal.key" value="keyname"/>
    <property name="bootstrap.security.principal.map" value="mapname"/>
    <property name="ldap.url" value="ldap://scl58126.us.oracle.com:3060"/>
    <property name="oracle.security.jps.ldap.root.name" 
       value="cn=jpsTestNode"/>
    <property name="oracle.security.jps.farm.name" 
       value="cn=wcai_view_jing.atzsrg"/>
    <property name="oracle.security.jps.policystore.resourcetypeenforcementmode" 
       value="Lenient"/>
  </serviceInstance>
 
  <serviceInstance name="policystore.xml" provider="policy.xml" 
              location="./system-jazn-data.xml"/>
 
  <serviceInstance name="user.authentication.loginmodule" 
              provider="jaas.login.provider">
         <description>User Authentication Login Module</description>
         <property name="loginModuleClassName" 
              value="oracle.security.jps.internal.
              jaas.module.authentication.JpsUserAuthenticationLoginModule"/>
         <property name="jaas.login.controlFlag" value="REQUIRED"/>
  </serviceInstance>
 
  <serviceInstance name="user.assertion.loginmodule" 
              provider="jaas.login.provider">
         <description>User Assertion Login Module</description>
         <property name="loginModuleClassName" 
              value="oracle.security.jps.internal.
              jaas.module.assertion.JpsUserAssertionLoginModule"/>
         <property name="jaas.login.controlFlag" value="REQUIRED"/>
  </serviceInstance>
 
  <serviceInstance name="pip.service.ootb.ldap" provider="pip.service.provider">
         <property name="type" value="LDAP_PIP"/>
         <property name="ldap.url" value="ldap://scl58126.us.oracle.com:3060"/>
         <property name="bootstrap.security.principal.key" value="keyname"/>
         <property name="bootstrap.security.principal.map" value="mapname"/>
         <property name="search.base" value="cn=pip_info_store,
              cn=wcai_view_jing.atzsrg,cn=JPSContext,cn=jpsTestNode"/>
         <property name="failed.server.retry.interval" value="10"/>
 </serviceInstance>
<!-- 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>
 
 <serviceInstance name="pip.service.ootb.db" provider="pip.service.provider">
         <property name="type" value="RDBMS_PIP"/>
         <property name="jdbc.url" 
              value="jdbc:oracle:thin:@scl58116.us.oracle.com:1521:orcl"/>
         <property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
         <property name="bootstrap.security.principal.key" value="keyname"/>
         <property name="bootstrap.security.principal.map" value="mapname"/>
         <property name="failed.server.retry.interval" value="10"/>
 </serviceInstance>
 
 <serviceInstance name="pip.service.ootb.db.ds" provider="pip.service.provider">
         <property name="type" value="RDBMS_PIP"/>
         <property value="atzsrgds" name="datasource.jndi.name"/>
         <property name="failed.server.retry.interval" value="10"/>
 </serviceInstance>
 
</serviceInstances>
 
    <jpsContexts default="default">
        <jpsContext name="default">
            <serviceInstanceRef ref="policystore.oid"/>
            <serviceInstanceRef ref="pdp.service"/>
            <serviceInstanceRef ref="audit"/>
            <serviceInstanceRef ref="idstore.xml"/>
            <serviceInstanceRef ref="idstore.loginmodule"/>
            <serviceInstanceRef ref="pip.service.ootb.ldap"/>
            <serviceInstanceRef ref="pip.service.ootb.db"/>
        </jpsContext>
        <jpsContext name="smsec">
            <serviceInstanceRef ref="credstore"/>
        </jpsContext>
 
    </jpsContexts>
 
</jpsConfig>

例6-4は、内部Oracle Entitlements Serverクラスを定義することによって、serviceProvider要素が事前定義済属性リトリーバの使用を定義する方法を示します。

例6-4 事前定義済属性リトリーバの宣言

<serviceProvider 
  class="oracle.security.jps.az.internal.runtime.provider.PIPServiceProvider" 
  name="pip.service.provider" type="PIP"/>

次の各例は、使用する事前定義済属性リトリーバのserviceInstance要素を変更する方法を示します。

例6-5は、事前定義済LDAP属性リトリーバを使用する場合にserviceInstance要素を変更する方法を示します。

例6-5 事前定義済LDAP属性リトリーバの使用

<serviceInstance name="pip.service.ootb.ldap" provider="pip.service.provider">
   <property name="type" value="RDBMS_PIP"/>
   <property name="ldap.url" value="ldap://dadvmg0065.us.oracle.com:3080"/>
   <property name="bootstrap.security.principal.key" value="keyname"/>
   <property name="bootstrap.security.principal.map" value="mapname"/>
   <property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

次の2つの例は、事前定義済RDBMS属性リトリーバを使用する場合にserviceInstance要素を変更する方法を示します。例6-6は、Java Database Connectivity (JDBC) APIを使用する場合です。

例6-6 JDBCでの事前定義済RDBMS属性リトリーバの使用

<serviceInstance name="pip.service.ootb.db" provider="pip.service.provider">
    <property name="type" value="RDBMS_PIP"/>
    <property name="jdbc.url" 
     value="jdbc:oracle:thin:@scl58116.us.oracle.com:1521:orcl"/>
    <property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="bootstrap.security.principal.map" value="mapname"/>
    <property name="bootstrap.security.principal.key" value="keyname"/>
    <property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

例6-7は、SQLデータベースを使用する場合です。

例6-7 SQLでの事前定義済RDBMS属性リトリーバの使用

<serviceInstance name="pip.service.ootb.db" provider="pip.service.provider">
    <property name="type" value="RDBMS_PIP"/>
    <property name="datasource.jndi.name" value="DB_RAC"/>
    <property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

例6-8は、jpsContext要素で事前定義済属性リトリーバ参照を宣言する方法を示します。このサンプルでは、事前定義済RDBMS属性リトリーバを定義しています。

例6-8 jpsContextでの事前定義済属性リトリーバの宣言

  <jpsContext name="default">
       <serviceInstanceRef ref="policystore.db"/>
       <serviceInstanceRef ref="pdp.service"/>
       <serviceInstanceRef ref="audit"/>
       <serviceInstanceRef ref="idstore.xml"/>
       <serviceInstanceRef ref="idstore.loginmodule"/>
       <serviceInstanceRef ref="pip.service.ootb.db"/>
</jpsContext>

例6-9は、特定の属性値のキャッシングを構成する方法を示します。キャッシングは属性ごとに有効化されます。この例では、キャッシュ・レコードは60秒後に削除されます。

例6-9 属性のキャッシュの有効化

<propertySet name="ootb.pip.attribute.gender.ldap">
        <property name="ootb.pip.attr.type" value="OOTB_PIP_ATTRIBUTE"/>
        <property name="ootb.pip.ref" value="pip.service.ootb.ldap"/>
        <property name="name" value="oespipgender"/>
        <property name="query" value="(oespipage=%oespipage%)"/>
        <property name="cached" value="true"/>
        <property name="ttl" value="60"/>
</propertySet>

例6-10は、フェイルオーバー動作を構成する方法を示します。この例では、プライマリ接続はldap://dadvmg0065:3080で、バックアップ接続はldap://scl58123:3060です。失敗したサーバーの再試行間隔は10秒です。

例6-10 LDAPフェイルオーバーの構成

<serviceInstance name="pip.service.ootb.ldap" provider="pip.service.provider">
      <property name="type" value="LDAP_PIP"/>
      <property name="ldap.url" 
         value="ldap://dadvmg0065:3080,ldap://scl58123:3060"/>
      <property name="bootstrap.security.principal.key" value="keyname"/>
      <property name="bootstrap.security.principal.map" value="mapname"/>
      <property name="failed.server.retry.interval" value="10"/>
</serviceInstance>

6.4 PIP接続資格証明の設定

表6-1「LDAP属性リトリーバ・パラメータ」および表6-2「RDBMS属性リトリーバ・パラメータ」に示すように、bootstrap.security.principal.keyおよびbootstrap.security.principal.mapパラメータは、データ・ストアにアクセスするためのキーおよびマップ(それぞれ)を定義します。Oracle Entitlements Serverには、ブートストラップ資格証明ストアにこれらのLDAPおよびデータベース接続資格証明を設定するoesPassword.shが付属しています。ツールは、$OES_SM_INSTANCE_DIRECTORY/bin/ディレクトリにあります。次のコマンドを使用して実行します。

./oesPassword.sh -setpass

セキュリティ・プリンシパルのキー名、セキュリティ・プリンシパルのマップ名、ユーザー名および関連するパスワードの入力が求められます。