Oracle Identity Federationサーバーの基礎となる構成は複数のMBeanにより管理されています。構成データは次の3つのファイルに格納されています。
config.xml: サーバー全体の構成が格納されます。
cot.xml: プロバイダ固有の構成が格納されます。
datastore.xml: バックエンドのデータ・ストアの構成が格納されます。
この付録では、各MBeanの機能および対応する構成ファイルの要素について説明します。内容は次のとおりです。
FederationConfig、Config、PropertiesMapおよびPropertiesList MBeanが、config.xml内でサーバー全体の構成を管理します。
この項では、FederationConfigMXBeanおよび対応するFederationConfig要素について説明します。
FederationConfigMXBeanは、Config要素のシーケンスおよび対応するConfigMXBeanのライフサイクルを管理します。次の操作を公開します。
createEmptyConfig: 名前が指定されると、新しいConfig要素および対応するConfigMXBeanを作成します。名前にはnullまたは空の文字列は指定できません。また、名前はこのFederationConfig内のすべてのConfig要素で一意である必要があります。
destroyConfig: 名前が指定されると、指定された名前のConfig要素を破棄し、対応するConfigMXBeanを登録解除します。
hasConfig: 名前が指定されると、このFederationConfigに指定された名前のConfig要素が存在する場合にのみ、trueを返します。
retrieveConfig: 名前が指定されると、指定されたConfig要素に対応するConfigMXBeanの、MBeanサーバーに登録されているObjectNameを返します。
retrieveConfigs: 名前が指定されると、すべての子Config要素に対応するConfigMXBeanの、MBeanサーバーに登録されているObjectNameを返します。
FederationConfigは、config.xmlファイルの最上位要素です。Config要素のシーケンスを含みます。
<fed:FederationConfig xmlns:fed="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd">
<fed:Config name="serverconfig">
…
</fed:Config>
<fed:Config name="idpglobal">
…
</fed:Config>
…
</fed:FederationConfig>
この項では、ConfigMXBeanおよび対応するConfig要素について説明します。
ConfigMXBeanは、プロパティの追加、削除および取得を管理し、対応するPropertiesListMXBeanおよびPropertiesMapMXBeanのライフサイクルを管理することにより、その子PropertiesListおよびPropertiesMapを管理します。次の操作を公開します。
要素名の取得
プロパティの取得、追加および削除
PropertiesListMXBeanのライフサイクル管理
PropertiesMapMXBeanのライフサイクル管理
要素名の取得
getNameは対応するConfig要素の名前を取得します。
プロパティの取得、追加および削除
プロパティの追加、削除および取得を管理する操作は次のとおりです。
hasProperty: 名前が指定されると、このConfigに指定された名前のPropertyが存在する場合にのみ、trueを返します。
putProperty: 名前、値およびタイプが指定されると、指定された名前、値およびタイプでPropertyをこのConfigに追加します。
指定された名前のPropertyがすでに存在する場合は、既存のプロパティの値とタイプを指定された値とタイプに設定します。ただし、指定された名前のPropertyがすでに存在する場合は、指定されたタイプは、既存のプロパティのタイプと一致する必要があります。
どちらの場合も、タイプはstring、booleanまたはlongのいずれかであり、値は指定したタイプのものでなければなりません。名前はnullまたは空の文字列にはできません。
removeAllProperties: このConfig内のすべてのProperty要素を削除します。
removeProperty: 名前が指定されると、このConfigから指定された名前のPropertyを削除します。
retrievePropertyType: 名前が指定されると、このConfig内の指定された名前のPropertyのタイプを返します。
retrievePropertyValue: 名前が指定されると、このConfig内の指定された名前のPropertyの値を返します。
PropertiesListMXBeanのライフサイクルの管理
PropertiesListMXBeanのライフサイクルを管理する操作は次のとおりです。
createPropertiesList: 名前が指定されると、新しいPropertiesList要素と対応するPropertiesListMXBeanを作成します。名前にはnullまたは空の文字列は指定できず、また名前はこのConfig内のすべてのPropertiesList要素にわたって一意である必要があります。
destroyAllPropertiesLists: すべてのPropertiesList要素を破棄し、対応するPropertiesListMXBeanを登録解除します。
destroyPropertiesList: 名前が指定されると、このConfig内の指定された名前のPropertiesList要素を破棄し、対応するPropertiesListMXBeanを登録解除します。
hasPropertiesList: 名前が指定されると、このConfigに指定された名前のPropertiesListが存在する場合にのみ、trueを返します。
retrieveAllPropertiesLists: すべての子PropertiesList要素に対応するPropertiesListMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。
retrievePropertiesList: 名前が指定されると、このConfig内の指定された名前のPropertiesList要素に対応するPropertiesListMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。
PropertiesMapMXBeanのライフサイクル管理
PropertiesMapMXBeanのライフサイクルを管理する操作は、子PropertiesListMXBeanのライフサイクルを管理する操作と同じです。
Config要素は、名前属性と、Property、PropertiesListおよびPropertiesMap子要素を持ちます。
<fed:FederationConfig xmlns:fed="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd">
<fed:Config name="serverconfig">
…
</fed:Config>
<fed:Config name="idpglobal">
<fed:Property name="providerid" type="string"> http://node1.us.example.com:1234/fed/idp</fed:Property>
<fed:Property name="lib11enabled" type="boolean">true</fed:Property>
<fed:PropertiesList name="sendattributefornameid">
…
</fed:PropertiesList>
<fed:PropertiesMap name="attr-value-filters">
…
</fed:PropertiesMap>
<fed:PropertiesMap name="attr-value-mappings">
…
</fed:PropertiesMap>
</fed:Config>
…
</fed:FederationConfig>
この項では、PropertiesListMXBeanおよび対応するPropertiesList要素について説明します。
PropertiesListMXBeanは、指定された索引にあるプロパティの追加、削除および取得を管理します。次の操作を公開します。
addProperty(オーバーロード): 値、タイプおよび索引が指定されると、指定された索引で指定された名前とタイプのPropertyを追加します。タイプはstring、booleanまたはlongのいずれかであり、値は指定したタイプのものでなければなりません。
addProperty(オーバーロード): 値およびタイプが指定されると、このPropertiesListの最後に、指定された名前とタイプのPropertyを追加します。タイプはstring、booleanまたはlongのいずれかであり、値は指定したタイプのものでなければなりません。
getName: このPropertiesListの名前を返します。
hasPropertyValue: 値が指定されると、このPropertiesListに指定された値のPropertyが存在する場合にのみ、trueを返します。
indexOf: 値が指定されると、指定された値を持つ最初のPropertyの索引を、またはこのPropertiesList内のいずれのPropertyもこの値を持たない場合は-1を返します。
removeAllProperties: このPropertiesListからすべてのProperty要素を削除します。
removeProperty(オーバーロード): 索引が指定されると、指定された索引にあるProperty要素を削除します。
removeProperty(オーバーロード): 値が指定されると、指定された値を持つ最初のProperty要素を削除します。
retrieveAllPropertyValues: このPropertiesList内のProperty要素の値を含むリストを返します。値は、Property要素の表示順と同じ順序で返されます。
retrieveNumberOfProperties: このPropertiesList内のPropertyの数を返します。
retrievePropertyType: 索引が指定されると、指定された索引にあるProperty要素のタイプを返します。
retrievePropertyValue: 索引が指定されると、指定された索引にあるProperty要素の値を返します。
PropertiesListは、名前属性と、Property子要素を持ちます。PropertiesList内のProperty要素には名前はありません。
<fed:FederationConfig xmlns:fed="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd">
<fed:Config name="serverconfig">
…
</fed:Config>
<fed:Config name="idpglobal">
…
</fed:Config>
<fed:Config name="idpliberty11">
<fed:PropertiesList name="ssobindings">
<fed:Property type="string">artifact</fed:Property>
<fed:Property type="string">httppost</fed:Property>
</fed:PropertiesList>
<fed:PropertiesList name="authnreqbindings">
<fed:Property type="string">httppost</fed:Property>
<fed:Property type="string">httpredirect</fed:Property>
</fed:PropertiesList>
…
</fed:Config>
…
</fed:FederationConfig>
この項では、PropertiesMapMXBeanおよび対応するPropertiesMap要素について説明します。
PropertiesMapMXBeanは、プロパティの追加、削除および取得を管理し、対応するPropertiesListMXBeanおよびPropertiesMapMXBeanのライフサイクルを管理することにより、その子PropertiesListおよびPropertiesMapを管理します。ConfigMXBeanと同じ操作に加え、次の追加の操作を公開します。
retrieveAllPropertyNames: このPropertiesMap内のProperty要素の名前を含むリストを返します。
PropertiesMap要素は、名前属性と、Property、PropertiesListおよびPropertiesMap子要素を持ちます。
<fed:FederationConfig xmlns:fed="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd">
…
<fed:Config name="fedusersearch">
<fed:PropertiesMap name="fedldap">
<fed:Property name="includesearchattrs" type="boolean">true</fed:Property>
<fed:Property name="defaultsorton"
type="string">orclFedOwnerGUID</fed:Property>
<fed:PropertiesList name="defaultsearch">
…
</fed:PropertiesList>
<fed:PropertiesList name="defaultdisplay">
…
</fed:PropertiesList>
<fed:PropertiesMap name="displaynames">
…
</fed:PropertiesMap>
</fed:PropertiesMap>
…
</fed:Config>
…
</fed:FederationConfig>
CircleOfTrustおよびPeerProvider MBeanが、cot.xml内でプロバイダ固有の構成をサポートします。
この項では、CircleOfTrustMXBeanおよび対応するCircleOfTrust要素について説明します。
CircleOfTrustMXBeanは、PeerProvider要素のシーケンスおよび対応するPeerProviderMXBeanのライフサイクルを管理します。次の操作を公開します。
createPeerProvider: 説明、プロバイダID、プロバイダ・タイプおよびバージョンが指定されると、新しいPeerProvider要素と対応するPeerProviderMXBeanを作成します。いずれのパラメータもnullにすることはできません。また、プロバイダID、プロバイダ・タイプおよびバージョンに空の文字列は使用できません。指定されたプロバイダIDのPeerProviderがすでに存在する場合は、既存のプロバイダは破棄され、新しいプロバイダで置き換えられます。
destroyPeerProvider: プロバイダIDが指定されると、このCircleOfTrust内の指定されたプロバイダIDのPeerProvider要素を破棄し、対応するPeerProviderMXBeanをMBeanサーバーから登録解除します。
hasPeerProvider: プロバイダIDが指定されると、このCircleOfTrustに指定されたプロバイダIDのPeerProvider要素が存在する場合にのみ、trueを返します。
loadMetadata: ピア・プロバイダのメタデータを含む文字列が指定されると、メタデータ内の情報を使用して新しいPeerProvider要素を作成し、対応するPeerProviderMXBeanを作成します。メタデータをnullにすることはできません。またXMLフォーマットである必要があります。さらに、メタデータはSAML 1.x、SAML 2.0またはLiberty 1.x仕様に準拠する必要があります。
retrievePeerProvider: プロバイダIDが指定されると、このCircleOfTrust内の指定されたプロバイダIDのPeerProvider要素に対応するPeerProviderMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。
retrievePeerProviders: すべての子PeerProvider要素に対応するPeerProviderMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。
CircleOfTrustは、cot.xmlファイルの最上位要素です。PeerProvider要素のシーケンスを含みます。
<CircleOfTrust xmlns="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd">
…
<PeerProvider version="SAML1.0" succinctID="Iyrw+aKYfAkLFKROZCE2qe2w0Qk=" providerType="idp" providerID="http://node2.us.example.com:1234/fed/idp" description="">
…
</PeerProvider>
<PeerProvider version="SAML2.0" succinctID="AZh2wC8biWp6uPwO4KgKLY82EQ8=" providerType="idp" providerID="http://node3.us.example.com:1234/fed/idp" description="">
…
</PeerProvider>
…
</CircleOfTrust>
この項では、PeerProviderMXBeanおよび対応するPeerProvider要素について説明します。
PeerProviderMXBeanは、属性およびMetadata要素のテキスト内容の取得と設定を管理します。また、Config要素の対応するConfigMXBeanのライフサイクルも管理します。次の操作を公開します。
属性の取得と設定
子Metadata要素の取得と設定
子ConfigMXBeanのライフサイクル管理
属性の取得と設定
属性を取得および設定する操作は次のとおりです。
get/setDescription: 説明属性の値を取得または設定します。値としてnullは設定できません。
getProviderID: プロバイダID属性の値を取得します。
get/setProviderType: プロバイダ・タイプ属性の値を取得または設定します。値としてnullまたは空の文字列は設定できません。
get/setVersion: バージョン属性の値を取得または設定します。値としてnullまたは空の文字列は設定できません。
get/setSuccinctID: 簡潔なID属性の値を取得または設定します。値としてnullまたは空の文字列は設定できません。
子Metadata要素の取得と設定
Metadata要素を取得および設定する操作は次のとおりです。
retrieveMetadata: このピア・プロバイダのメタデータをXMLフォーマットで含む文字列を返します。
updateMetadata: メタデータを含む文字列が指定されると、このピア・プロバイダのMetadata要素のテキスト値を指定されたメタデータに設定します。指定されるメタデータは、XMLフォーマットである必要があります。
子ConfigMXBeanのライフサイクル管理
retrieveConfigは、このPeerProvider内のConfig要素に対応するConfigMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。
PeerProvider要素は次の属性を持ちます。説明、プロバイダID、プロバイダ・タイプ、バージョンおよび簡潔なID。また子要素として、1つのMetadata要素および1つのConfig要素も持ちます。
<CircleOfTrust xmlns="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd">
…
<PeerProvider version="SAML2.0" succinctID="AZh2wC8biWp6uPwO4KgKLY82EQ8=" providerType="idp" providerID="http://node3.us.example.com:1234/fed/idp" description="">
<Metadata>
…
<Metadata>
<Config name="http://node2.us.example.com:1234/fed/idp">
…
</Config>
</PeerProvider>
…
</CircleOfTrust>
DatastoreおよびDiscoveryProvider MBeanが、data-store.xml内でデータ・ストアの構成を管理します。
この項では、DatastoreMXBeanおよび対応するdatastore要素について説明します。
DatastoreMXBeanはdefaultPackage属性の取得を管理し、また対応するDiscoveryProviderMXBeanを制御することによりDiscoveryProvider要素のシーケンスも管理します。次の操作を公開します。
getDefaultPackage: defaultPackage属性の値を返します。
createDiscoveryProvider: タイプ、セッター、クラス名および依存先が指定されると、新しいDiscoveryProvider要素および対応するDiscoveryProviderMXBeanを作成します。いずれのパラメータもnullにすることはできません。また、クラス名およびセッターに空の文字列は使用できません。タイプは、このdatastore内のすべてのDiscoveryProvider要素にわたって一意である必要があります。
destroyDiscoveryProvider: タイプが指定されると、指定されたタイプのDiscoveryProvider要素を破棄し、対応するDiscoveryProviderMXBeanを登録解除します。
hasDiscoveryProvider: タイプが指定されると、このdatastoreに指定されたタイプのDiscoveryProviderが存在する場合にのみtrueを返します。
retrieveDiscoveryProvider: タイプが指定されると、このdatastore内の指定されたタイプのDiscoveryProviderに対応するDiscoveryProviderMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。
retrieveDiscoveryProviders: すべての子DiscoveryProvider要素に対応するDiscoveryProviderMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。
datastoreは、data-store.xmlファイルの最上位要素です。defaultPackage属性を持ち、DiscoveryProvider要素のシーケンスを含みます。
<datastore xmlns="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd" defaultPackage="oracle.security.fed.jvt.discovery.model">
<DiscoveryProvider type="ActiveIdentityProviderFederationDiscovery">
…
</DiscoveryProvider>
<DiscoveryProvider type="ActiveServiceProviderFederationDiscovery">
…
</DiscoveryProvider>
…
<DiscoveryProvider type="ConfigurationDiscovery">
…
</DiscoveryProvider>
…
</datastore>
この項では、DiscoveryProviderMXBeanおよび対応するDiscoveryProvider要素について説明します。
DiscoveryProviderMXBeanは、属性およびClassName要素のテキスト内容の取得と設定を管理します。また、対応するDiscoveryProviderMXBeanを管理することにより、子Dependencies要素内のDiscoveryProvider要素のシーケンスも管理します。次の操作を含みます。
属性の取得と設定の管理
子ClassName要素の取得と設定の管理
孫DiscoveryProviderMXBeanのライフサイクルの管理
属性の取得と設定
属性を取得および設定する操作は次のとおりです。
getDependsOn: dependsOn属性の値を返します。
getSetter: setter属性の値を返します。
getType: type属性の値を返します。
子ClassName要素の取得と設定
子ClassName要素を取得および設定する操作は次のとおりです。
changeClassNameTo: クラス名が指定されると、ClassName要素のテキスト値を指定されたクラス名に設定します。クラス名にはnullまたは空の文字列は使用できません。
retrieveClassName: このDiscoveryProviderのClassName要素のテキスト値を返します。
孫DiscoveryProviderMXBeanのライフサイクルの管理
DiscoveryProviderMXBeanのライフサイクルを管理する操作は次のとおりです。
createDiscoveryProviderDependency: セッター、クラス名および依存先が指定されると、このDiscoveryProviderの子Dependencies要素内に、指定されたセッター、クラス名、依存先およびこのDiscoveryProviderのタイプで、新しいDiscoveryProvider要素を作成します。また、対応するDiscoveryProviderMXBeanも作成します。
destroyDiscoveryProviderDependency: セッターが指定されると、このDiscoveryProviderのDependencies内の指定されたセッターのDiscoveryProvider要素を破棄し、対応するMBeanをMBeanサーバーから登録解除します。
hasDiscoveryProviderDependency: セッターが指定されると、このDiscoveryProviderのDependenciesに指定されたセッターのDiscoveryProviderが存在する場合にのみtrueを返します。
retrieveDiscoveryProviderDependencies: このDiscoveryProviderのDependencies内のすべての子DiscoveryProvider要素に対応するDiscoveryProviderMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。
retrieveDiscoveryProviderDependency: セッターが指定されると、このDiscoveryProviderのDependencies内の指定されたセッターのDiscoveryProvider要素に対応するDiscoveryProviderMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。
DiscoveryProvider要素は、type、setterおよびdependsOn属性を持ちます。また子要素として、1つのClassName要素および1つのDependencies要素も持ちます。Dependencies要素は、DiscoveryProvider要素のシーケンスを含みます。
<datastore xmlns="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd" defaultPackage="oracle.security.fed.jvt.discovery.model">
…
<DiscoveryProvider type="ConfigurationDiscovery">
<ClassName>
oracle.security.fed.jvt.discovery.model.config.ChainingConfigDiscoveryProvider
</ClassName>
<Dependencies>
<DiscoveryProvider type="ConfigurationDiscovery" setter="setConfigurationDiscovery">
…
</DiscoveryProvider>
…
</Dependencies>
</DiscoveryProvider>
…
</datastore>
Oracle Identity Federationスキーマは次のとおりです。
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd"
elementFormDefault="qualified" attributeFormDefault="unqualified"
xmlns:fed="http://xmlns.oracle.com/fed/schema/oif-11_2.xsd">
<xsd:element name="FederationConfig" type="fed:FederationConfigType"/>
<xsd:complexType name="FederationConfigType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="fed:Config"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Config" type="fed:ConfigType"/>
<xsd:complexType name="ConfigType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="fed:Property"/>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="fed:PropertiesList"/>
<xsd:element ref="fed:PropertiesMap" maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string"/>
</xsd:complexType>
<xsd:element name="Property" type="fed:PropertyType"/>
<xsd:complexType name="PropertyType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="name" use="required" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="PropertiesList" type="fed:PropertiesListType"/>
<xsd:complexType name="PropertiesListType">
<xsd:choice>
<xsd:element ref="fed:Property" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attribute name="name" use="required" type="xsd:string"/>
</xsd:complexType>
<xsd:element name="PropertiesMap" type="fed:PropertiesMapType"/>
<xsd:complexType name="PropertiesMapType">
<xsd:choice>
<xsd:element ref="fed:Property" maxOccurs="unbounded" minOccurs="0"/>
<xsd:element ref="fed:PropertiesList" maxOccurs="unbounded"
minOccurs="0"/>
<xsd:element ref="fed:PropertiesMap" maxOccurs="unbounded" minOccurs="0"/>
</xsd:choice>
<xsd:attribute name="name" use="required" type="xsd:string"/>
</xsd:complexType>
<xsd:element name="CircleOfTrust" type="fed:CircleOfTrustType"/>
<xsd:complexType name="CircleOfTrustType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="fed:PeerProvider"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="PeerProvider" type="fed:PeerProviderType"/>
<xsd:complexType name="PeerProviderType">
<xsd:sequence>
<xsd:element ref="fed:Metadata"/>
<xsd:element ref="fed:Config"/>
</xsd:sequence>
<xsd:attribute name="providerID" type="xsd:string" use="required"/>
<xsd:attribute name="succinctID" type="xsd:string" use="required"/>
<xsd:attribute name="description" type="xsd:string"/>
<xsd:attribute name="providerType" type="xsd:string" use="required"/>
<xsd:attribute name="version" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:element name="Metadata" type="fed:MetadataType"/>
<xsd:complexType name="MetadataType">
<xsd:simpleContent>
<xsd:extension base="xsd:string"/>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="datastore" type="fed:datastoreType"/>
<xsd:complexType name="datastoreType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="fed:DiscoveryProvider"/>
</xsd:sequence>
<xsd:attribute name="defaultPackage" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:element name="DiscoveryProvider" type="fed:DiscoveryProviderType"/>
<xsd:complexType name="DiscoveryProviderType">
<xsd:sequence>
<xsd:element ref="fed:ClassName"/>
<xsd:element ref="fed:Dependencies"/>
</xsd:sequence>
<xsd:attribute name="type" use="required" type="xsd:string"/>
<xsd:attribute name="setter" type="xsd:string"/>
<xsd:attribute name="dependsOn" type="xsd:string"/>
</xsd:complexType>
<xsd:element name="ClassName" type="fed:ClassNameType"/>
<xsd:complexType name="ClassNameType">
<xsd:simpleContent>
<xsd:extension base="xsd:string"/>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="Dependencies" type="fed:DependenciesType"/>
<xsd:complexType name="DependenciesType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="fed:DiscoveryProvider"/>
</xsd:sequence>
</xsd:complexType>
この項では、MBeanサーバーにリモート・アクセスし、MBeanに対して操作を実行する方法について説明します。
MBeanサーバーにリモートからアクセスする場合には、いくつかの変数を定義する必要があります。
HOSTNAME: Oracle Identity Federationがデプロイされているマシンのホスト名
PORT: Oracle Identity Federationのリスニング・ポート
USERNAMEとPASSWORD: 管理者のユーザー名とパスワード
次のコードは、MBeanサーバーにリモート・アクセスする方法を示しています。このコードを実行するには、クラスパス内に次のライブラリが必要です。
WL_HOME/server/lib/weblogic.jar
WL_HOME/server/lib/wljmxclient.jar
WL_HOME/server/lib/wlclient.jar
MBeanServerConnection mbs = null;
try{
JMXServiceURL url = new JMXServiceURL ("t3", HOSTNAME, Integer.parseInt(PORT), "/jndi/weblogic.management.mbeanservers.runtime");
HashMap<String, Object> env = new HashMap<String,Object>();
env.put(javax.naming.Context.SECURITY_PRINCIPAL, USERNAME);
env.put(javax.naming.Context.SECURITY_CREDENTIALS, PASSWORD);
env.put(javax.management.remote.JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote");
JMXConnector connector = JMXConnectorFactory.connect(url, env);
mbs = connector.getMBeanServerConnection();
} catch(Exception e){ //should log exception throw new RuntimeException(e.toString(), e);
}
最上位のOracle Identity Federation構成MBeanは、表A-1に示す、ObjectNameのグローバル/変換バージョンで登録されます(ObjectNameは名前の衝突を防ぐために変換されます)。
表A-1 Oracle Identity Federation構成MBeanのObjectName
| 構成MBean | ObjectName |
|---|---|
|
FederationConfig |
com.oracle.security.fed:type=OIFConfigMBean,name=ServerConfig |
|
CircleOfTrust |
com.oracle.security.fed:type=OIFConfigMBean,name=CircleOfTrust |
|
Datastore |
com.oracle.security.fed:type=OIFConfigMBean,name=Datastore |
MBeanのグローバル/変換ObjectNameの検索には、問合せを使用します。FederationConfigMXBeanのObjectNameを検索するための問合せの例を示します。
String fedObjNameQueryString = "com.oracle.security.fed:name=ServerConfig,type=OIFConfigMBean,*";
Set s = mbs.queryNames(new ObjectName(fedObjNameQueryString), null);
ObjectName FED_CONFIG_OBJ_NAME = null;
if(s != null && !s.isEmpty())
FED_CONFIG_OBJ_NAME = (ObjectName)s.iterator().next();
else{
//should log exception
throw new RuntimeException("Cannot find FedConfigMBean");
}
MBeanServerConnectionのinvokeメソッドを使用して、これらのMBeanを直接操作できます。
|
関連項目:
|
FederationConfigMXBeanでretrieveConfig操作を呼び出す例を示します。
try
{
ObjectName configObjName = (ObjectName)mbs.invoke(FED_CONFIG_OBJ_NAME, "retrieveConfig", new Object[]{configName}, new String[]{String.class.getName()});
} catch(Exception e){
//should log exception
throw new RuntimeException(e.toString(), e);
}
ConfigMXBeanのObjectNameの取得後、操作を同様の方法で実行できます。たとえば、新しいプロパティを追加するには、次のようにします。
try
{
String previousValue = (String)mbs.invoke(configObjName, "putProperty", new Object[]{propertyName, propertyValue, propertyType}, new String[]{String.class.getName(), String.class.getName(), String.class.getName()});
} catch(Exception e){
//should log exception
throw new RuntimeException(e.toString(), e);
}
Oracle Identity Federation MBeans API(javadoc)は次のページから入手できます。
Oracle Fusion Middleware Oracle Identity Federation構成MBean Java APIリファレンス