1.3項「Oracle Entitlements Serverのアーキテクチャの概要」で説明しているように、ポリシー情報ポイント(PIP)は、属性値のソースとして機能するシステム・エンティティです。Oracle Entitlements Serverは、1つ以上のこれらのPIP情報ストアから属性値を取得するために、属性リトリーバ・プラグインに依存しています。事前定義済属性リトリーバは、Oracle Entitlements Serverに同梱されています。この章では、これらの事前定義済属性リトリーバおよび関連する構成要件について説明します。この章には次の項目があります。
注意: カスタム属性リトリーバ、およびカスタム属性リトリーバを使用する場合のOracle Entitlements Serverの構成の詳細は、『Oracle Fusion Middleware Oracle Entitlements Server開発者ガイド』を参照してください。 |
Oracle Entitlements Serverには事前定義済属性リトリーバが含まれており、これは、Lightweight Directory Access Protocol (LDAP)データ・ストアおよびリレーショナル・データベース管理システム(RDBMS)に接続し、属性値を取得するのに使用されます。これらのプラグインは、追加のプログラミングを行わずに、システムに定義された1つ以上の属性を処理できます。これには、キャッシング機能およびフェイルオーバーも含まれています。
メモリー内キャッシュ・メカニズムは、Oracle Entitlements Serverと外部リポジトリ間の通信を減らすことでパフォーマンスを向上させるために使用されます。キャッシュは最大1000エントリを保持し、個々の属性に対して有効化できます。キャッシュ・サイズは構成できません。制限に達すると、キャッシュ項目はランダムに削除されます。例6-2は、cached
およびttl
プロパティが指定された個々の属性の定義を示します。
リポジトリ・フェイルオーバーも構成できます。属性への呼出しを受信すると、Oracle Entitlements Serverは、プライマリ・リポジトリがアクティブであるかどうかを確認します。アクティブな場合、値が取得されます。プライマリ・リポジトリがアクティブではない場合、すでに失敗しており、バックアップ・リポジトリがアクティブになります。後者の場合、Oracle Entitlements Serverは、(構成に基づいて)アクティブ・リポジトリへのスイッチ・バックのタイミングであるかどうかを確認します。スイッチ・バックのタイミングである場合、切替えが行われ、プライマリ・リポジトリから値が取得されます。構成された時間がまだ経過していない場合、アクティブなバックアップ・リポジトリから値が取得されます。
注意: プライマリ・リポジトリから値を取得中にエラーが発生した場合、Oracle Entitlements Serverは、アクティブなバックアップ・リポジトリが見つかるまで、バックアップ・リポジトリを1つずつ検索します。 |
構成情報については、6.2.3項「事前定義済属性リトリーバの個々の属性の構成」を参照してください。
これらの属性リトリーバの構成情報は、jps-config.xml
構成ファイルで定義されます。2つのタイプの情報(属性問合せ情報およびリポジトリ接続情報)を構成する必要があります。
リポジトリ接続情報は、データ・ストアに接続するために使用され、場所、JDBCドライバとURLまたはLDAP URL(いずれか該当するもの)、およびユーザー/資格証明情報が含まれます。この接続情報は、特定のリトリーバ・インスタンスに関連します。例6-1に示すように、リポジトリ接続情報は、jps-config.xml
の<serviceInstances>
セクションで定義されます。
例6-1 属性リトリーバに定義されるリポジトリ接続情報
<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>
6.2.1項「LDAPリポジトリ属性リトリーバ・パラメータの構成」、6.2.2項「データベース・リポジトリ属性リトリーバ・パラメータの構成」、および6.3項「jps-config.xmlの変更」では、リポジトリ接続構成に関する情報が記載されています。
属性問合せ情報は、特定の属性に関連し、名前、使用する事前定義済属性リトリーバの名前、取得のための検索問合せ(たとえば、ストアがリレーショナル・データベースの場合はSQL問合せ、ストアがディレクトリの場合はLDAP問合せ)、および属性キャッシング情報が含まれます。例6-2に示すように、属性問合せ情報は、jps-config.xml
の<propertySets>
セクションで定義されます。
例6-2 属性リトリーバに定義される属性問合せ情報
<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>
6.2.3項「事前定義済属性リトリーバの個々の属性の構成」および6.3項「jps-config.xmlの変更」では、属性問合せ構成に関する情報が記載されています。
注意: これらの事前定義済属性リトリーバは、Oracle Database 11gR1、Oracle Internet Directory 11gR1、およびOracle Virtual Directory 11gR1で構成できます。 |
次の各項では、各タイプの属性リトリーバの構成パラメータの詳細を説明します。前述したように、これらのパラメータは、$DOMAIN_HOME/config/fmwconfig
ディレクトリにある(Java EEコンテナが使用する)構成ファイルであるjps-config.xml
内にあります。
表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接続資格証明の設定」を参照してください。 オプション: 本番モード用のみ。 許容値: 資格証明のキー名( |
bootstrap.security.principal.map |
説明: LDAPポリシー・ストアにアクセスするためのパスワード資格証明のマップを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。LDAPストアおよびデータベース・ストアに適用します。6.4項「PIP接続資格証明の設定」を参照してください。 オプション: 本番モード用のみ。 許容値: 資格証明のマップ名( |
ldap.url |
説明: LDAPポリシー・ストアのURLを定義します。JEEアプリケーションおよびJSEアプリケーションで有効で、LDAPストアにのみ適用します。 必須 許容値: LDAPポリシー・ストアのURIで、形式は |
表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接続資格証明の設定」を参照してください。 オプション: 本番モード用のみ。 許容値: 資格証明のキー名( |
bootstrap.security.principal.map |
説明: データベースにアクセスするためのパスワード資格証明のマップを定義し、CSFストアに格納されています。JEEアプリケーションおよびJSEアプリケーションで有効です。6.4項「PIP接続資格証明の設定」を参照してください。 オプション: 本番モード用のみ。 許容値: 資格証明のマップ名( |
jdbc.driver |
説明: Java Database Connectivity (JDBC) APIを使用してデータベースに接続する場合のドライバの場所。 必須: JDBC APIを使用してデータベースに接続している場合。 許容値: |
jdbc.url |
説明: データベースを指すURLを指定します。 必須: JDBC APIを使用してデータベースに接続している場合。 許容値: カンマ区切りのURLのリスト。最初はプライマリなどとして処理されます。例: |
datasource.jndi.name |
説明: JDBCを直接介するのではなくデータ・ソースを介してPIPインスタンスを動作させる場合のデータ・ソースJNDI名。データ・ソース・シナリオは、WebLogic ServerおよびWebSphere Application Serverのみでサポートされます。 必須: JDBCを直接介するのではなくデータ・ソースを介してPIPインスタンスを動作させる場合。 許容値: 事前定義済データ・ソース・オブジェクトのJNDI名。 |
表6-3では、構成された属性リトリーバによって取得された各属性に定義されるパラメータについて説明します。構成のサンプルは、例6-9「属性のキャッシュの有効化」を参照してください。
表6-3 取得する属性の構成
名前 | 使用方法 |
---|---|
name |
説明: ポリシー・ストアで定義されている属性の名前。LDAP事前定義済属性リトリーバを使用している場合、Oracle Entitlements Serverに定義される属性名は、LDAPストアで定義される属性名と同じである必要があります。現在、名前マッピング機能はありません。 必須 許容値: 属性名 |
query |
説明: 問合せに使用されるSQLコマンドまたはLDAPフィルタ。ユーザーは、問合せ文字列内の組込み属性およびカスタム属性を使用できます。たとえば、組込み属性 必須 許容値: 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
内で事前定義済属性リトリーバを構成するには、この項の各例で説明しているように、要素を変更します。例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-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
セキュリティ・プリンシパルのキー名、セキュリティ・プリンシパルのマップ名、ユーザー名および関連するパスワードの入力が求められます。