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

前
 
次
 

A Oracle Identity Federation MBean

Oracle Identity Federationサーバーの基礎となる構成は複数のMBeanにより管理されています。構成データは次の3つのファイルに格納されています。

この付録では、各MBeanの機能および対応する構成ファイルの要素について説明します。内容は次のとおりです。

A.1 サーバー全体の構成(config.xml)

FederationConfigConfigPropertiesMapおよびPropertiesList MBeanが、config.xml内でサーバー全体の構成を管理します。

A.1.1 FederationConfig

この項では、FederationConfigMXBeanおよび対応するFederationConfig要素について説明します。

A.1.1.1 FederationConfigMXBean

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を返します。

A.1.1.2 FederationConfig要素

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>

A.1.2 Config

この項では、ConfigMXBeanおよび対応するConfig要素について説明します。

A.1.2.1 ConfigMXBean

ConfigMXBeanは、プロパティの追加、削除および取得を管理し、対応するPropertiesListMXBeanおよびPropertiesMapMXBeanのライフサイクルを管理することにより、その子PropertiesListおよびPropertiesMapを管理します。次の操作を公開します。

  • 要素名の取得

  • プロパティの取得、追加および削除

  • PropertiesListMXBeanのライフサイクル管理

  • PropertiesMapMXBeanのライフサイクル管理

要素名の取得

getNameは対応するConfig要素の名前を取得します。

プロパティの取得、追加および削除

プロパティの追加、削除および取得を管理する操作は次のとおりです。

  • hasProperty: 名前が指定されると、このConfigに指定された名前のPropertyが存在する場合にのみ、trueを返します。

  • putProperty: 名前、値およびタイプが指定されると、指定された名前、値およびタイプでPropertyをこのConfigに追加します。

    指定された名前のPropertyがすでに存在する場合は、既存のプロパティの値とタイプを指定された値とタイプに設定します。ただし、指定された名前のPropertyがすでに存在する場合は、指定されたタイプは、既存のプロパティのタイプと一致する必要があります。

    どちらの場合も、タイプはstringbooleanまたは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のライフサイクルを管理する操作と同じです。

A.1.2.2 Config要素

Config要素は、名前属性と、PropertyPropertiesListおよび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>

A.1.3 PropertiesList

この項では、PropertiesListMXBeanおよび対応するPropertiesList要素について説明します。

A.1.3.1 PropertiesListMXBean

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要素の値を返します。

A.1.3.2 PropertiesList要素

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>

A.1.4 PropertiesMap

この項では、PropertiesMapMXBeanおよび対応するPropertiesMap要素について説明します。

A.1.4.1 PropertiesMapMXBean

PropertiesMapMXBeanは、プロパティの追加、削除および取得を管理し、対応するPropertiesListMXBeanおよびPropertiesMapMXBeanのライフサイクルを管理することにより、その子PropertiesListおよびPropertiesMapを管理します。ConfigMXBeanと同じ操作に加え、次の追加の操作を公開します。

retrieveAllPropertyNames: このPropertiesMap内のProperty要素の名前を含むリストを返します。

A.1.4.2 PropertiesMap要素

PropertiesMap要素は、名前属性と、PropertyPropertiesListおよび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>

A.2 プロバイダ固有の構成

CircleOfTrustおよびPeerProvider MBeanが、cot.xml内でプロバイダ固有の構成をサポートします。

A.2.1 CircleOfTrust

この項では、CircleOfTrustMXBeanおよび対応するCircleOfTrust要素について説明します。

A.2.1.1 CircleOfTrustMXBean

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を返します。

A.2.1.2 CircleOfTrust要素

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>

A.2.2 PeerProvider

この項では、PeerProviderMXBeanおよび対応するPeerProvider要素について説明します。

A.2.2.1 PeerProviderMXBean

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を返します。

A.2.2.2 PeerProvider要素

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>

A.3 データ・ストアの構成

DatastoreおよびDiscoveryProvider MBeanが、data-store.xml内でデータ・ストアの構成を管理します。

A.3.1 Datastore

この項では、DatastoreMXBeanおよび対応するdatastore要素について説明します。

A.3.1.1 DatastoreMXBean

DatastoreMXBeandefaultPackage属性の取得を管理し、また対応する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を返します。

A.3.1.2 datastore要素

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>

A.3.2 DiscoveryProvider

この項では、DiscoveryProviderMXBeanおよび対応するDiscoveryProvider要素について説明します。

A.3.2.1 DiscoveryProviderMXBean

DiscoveryProviderMXBeanは、属性およびClassName要素のテキスト内容の取得と設定を管理します。また、対応するDiscoveryProviderMXBeanを管理することにより、子Dependencies要素内のDiscoveryProvider要素のシーケンスも管理します。次の操作を含みます。

  • 属性の取得と設定の管理

  • ClassName要素の取得と設定の管理

  • DiscoveryProviderMXBeanのライフサイクルの管理

属性の取得と設定

属性を取得および設定する操作は次のとおりです。

  • getDependsOn: dependsOn属性の値を返します。

  • getSetter: setter属性の値を返します。

  • getType: type属性の値を返します。

子ClassName要素の取得と設定

ClassName要素を取得および設定する操作は次のとおりです。

  • changeClassNameTo: クラス名が指定されると、ClassName要素のテキスト値を指定されたクラス名に設定します。クラス名にはnullまたは空の文字列は使用できません。

  • retrieveClassName: このDiscoveryProviderClassName要素のテキスト値を返します。

孫DiscoveryProviderMXBeanのライフサイクルの管理

DiscoveryProviderMXBeanのライフサイクルを管理する操作は次のとおりです。

  • createDiscoveryProviderDependency: セッター、クラス名および依存先が指定されると、このDiscoveryProviderの子Dependencies要素内に、指定されたセッター、クラス名、依存先およびこのDiscoveryProviderのタイプで、新しいDiscoveryProvider要素を作成します。また、対応するDiscoveryProviderMXBeanも作成します。

  • destroyDiscoveryProviderDependency: セッターが指定されると、このDiscoveryProviderDependencies内の指定されたセッターのDiscoveryProvider要素を破棄し、対応するMBeanをMBeanサーバーから登録解除します。

  • hasDiscoveryProviderDependency: セッターが指定されると、このDiscoveryProviderDependenciesに指定されたセッターのDiscoveryProviderが存在する場合にのみtrueを返します。

  • retrieveDiscoveryProviderDependencies: このDiscoveryProviderDependencies内のすべての子DiscoveryProvider要素に対応するDiscoveryProviderMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。

  • retrieveDiscoveryProviderDependency: セッターが指定されると、このDiscoveryProviderDependencies内の指定されたセッターのDiscoveryProvider要素に対応するDiscoveryProviderMXBeanに対してMBeanサーバーに登録されているObjectNameを返します。

A.3.2.2 DiscoveryProvider要素

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>

A.4 Oracle Identity Federationスキーマ

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>

A.5 Oracle Identity Federation MBeanへのプログラムによるアクセス

この項では、MBeanサーバーにリモート・アクセスし、MBeanに対して操作を実行する方法について説明します。

A.5.1 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);
}

A.5.2 Oracle Identity Federation MBeanへのアクセス

最上位の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の検索には、問合せを使用します。FederationConfigMXBeanObjectNameを検索するための問合せの例を示します。

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");
}

MBeanServerConnectioninvokeメソッドを使用して、これらのMBeanを直接操作できます。


関連項目:

http://download.oracle.com/javase/1.5.0/docs/api/index.html?javax/management/MBeanServerConnection.htmlからダウンロードできる、メソッドに関するJavaドキュメント


FederationConfigMXBeanretrieveConfig操作を呼び出す例を示します。

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);
}

ConfigMXBeanObjectNameの取得後、操作を同様の方法で実行できます。たとえば、新しいプロパティを追加するには、次のようにします。

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);
}

A.6 Oracle Identity Federation MBean API

Oracle Identity Federation MBeans API(javadoc)は次のページから入手できます。

Oracle Fusion Middleware Oracle Identity Federation構成MBean Java APIリファレンス