ヘッダーをスキップ
Oracle Access Manager開発者ガイド
10g(10.1.4.2.0)
E05808-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

2 IdentityXMLの関数およびパラメータ

IdentityXML関数を使用すると、アイデンティティ・システム・アプリケーションで操作をプログラムによって実行できます。たとえば、IdentityXMLを使用すると、次のような機能を実行できます。

内容は次のとおりです。

2.1 IdentityXMLの概要

IdentityXMLを使用すると、アイデンティティ・システム・アプリケーションで様々なアクションを実行するプログラムを作成できます。

ユーザー・マネージャ: ユーザー・マネージャでは、ユーザーおよび管理者はユーザー・アイデンティティに関する情報を追加、変更および削除できます。また、エンドユーザーは他のユーザーの表示や自分のID情報の変更を行うことができます。あるユーザーが表示できるユーザーおよび変更できるID情報は、マスター管理者から付与される権限によって異なります。

グループ・マネージャ: グループ・マネージャでは、管理者はグループを作成または削除できます。このアプリケーションでは、ユーザーはグループの表示、グループへのサブスクライブおよびグループからのサブスクライブ解除を行うことができます。ユーザーによるグループの作成および削除と各種グループへのサブスクライブが可能かどうかは、マスター管理者から付与される権限によって異なります。

組織マネージャ: 組織マネージャでは、管理者は、組織や、ユーザー・マネージャまたはグループ・マネージャに属さないその他のオブジェクト(フロア配置や資産など)を作成および削除できます。ユーザーによるオブジェクトの表示、追加および変更が可能かどうかは、マスター管理者から付与される権限によって異なります。

IdentityXMLを使用して、ユーザー・マネージャへのユーザーの追加や組織マネージャ内のエントリの属性値の変更などのアクションを実行するプログラムを作成できます。

また、アイデンティティ・システムのワークフロー機能を使用するプログラムも作成できます。IDワークフローでは、アクションをアイデンティティ・システムで一連のステップとして示されるイベントの自動連鎖にリンクできます。ワークフロー定義の作成時は、各アクションを実行するユーザーを指定します。通常は、このプロセスで外部アプリケーションが1回以上コールされます。

2.1.1 IdentityXMLの概要

IdentityXMLのデプロイを計画するプロセスの概要は、このガイドの別の箇所で説明されています。詳細は、「IdentityXMLとアイデンティティWebサービス」を参照してください。この章では、IdentityXMLのリクエストおよびレスポンスの書式も詳しく説明しています。詳細は、「IdentityXMLリクエストの書式設定」および「IdentityXMLレスポンスの書式設定」を参照してください。

Oracle Access Managerのインストールには多数のIdentityXMLサンプルが含まれています。これらのサンプルはサポートされていませんが、特定の関数を指定する方法の参考になります。サンプルを確認するには、次のディレクトリを参照してください。

IdentityServer_install_dir\identity\oblix\unsupported\integsvcs

2.1.2 IdentityXMLの関数およびパラメータの概要

IdentityXML関数は、GUIを通じて手動で実行できる操作と同じ目的を果すコードの一部分です。パラメータは、関数の定義の構成要素です。「共通関数」以降のIdentityXML関数に関する項で説明されているように、各IdentityXML関数には1つ以上のパラメータが含まれます。たとえば、workflowTicketSearchという名前のIdentityXML関数は、targetapplicationおよびtickettypeなどのパラメータを取ります。このドキュメントでは、必須パラメータはIdentityXML文で使用する必要があります。オプション・パラメータの名前と値は省略できます。この場合は、デフォルトが一般に適用されます。デフォルト値が説明にない場合、そのパラメータにはデフォルトはありません。オプション・パラメータの名前を入力してその値を入力しないと、エラーが発生します。

2.1.2.1 関数のタイプ

IdentityXML関数の基本タイプは次のとおりです。

  • 共通関数: すべてのアイデンティティ・システム・アプリケーションに適用できる関数です。

    詳細は、「共通関数」を参照してください。

  • ユーザー・マネージャ関数: ユーザー・マネージャ・アプリケーションでアクションを実行する関数です。

    詳細は、「ユーザー・マネージャ関数」を参照してください。

  • グループ・マネージャ関数: グループ・マネージャ・アプリケーションでアクションを実行する関数です。

    詳細は、「グループ・マネージャ関数」を参照してください。

  • 組織マネージャ関数: 組織マネージャ・アプリケーションでアクションを実行する関数です。

    詳細は、「組織マネージャ関数」を参照してください。

各関数は、次の2つの基本アクティビティのいずれかを実行します。

  • 特定のユーザーに特定の操作を実行する権限があるかどうかを確認するテスト

  • 操作の実際の実行(ユーザーの検索など)

2.1.2.2 関数に適したパラメータ値の検索

ほとんどのパラメータの値は、表示値ではなく、ディレクトリ内のDN値です。DN値の検索には、ディレクトリの参照とDNエントリの表示を可能にするツールを使用できます。このようなツールの例としては、Windowsシステムに付属のldp.exeがあります。

属性を操作するほとんどのパラメータの値は、表示名ではなく、属性のLDAPスキーマ名です。次の手順では、属性のスキーマ名を検索する例としてユーザー・マネージャを使用します。

属性のスキーマ名を検索する手順

  1. アイデンティティ・システム・コンソールに移動します。

  2. 「ユーザー・マネージャ構成」をクリックします。

  3. 「タブ」をクリックします。

  4. タブのリンクをクリックします。

  5. 「属性の変更」をクリックします。

    アプレットが表示されます。左上にある「属性」フィールドに属性のスキーマ名のリストが表示されます。右上には「表示名」フィールドがあります。このフィールドでは、属性の名前がGUI上と同様に表示されます。

2.2 検索パラメータ

多くのIdentityXML関数の基本構成要素として、検索操作があります。ここでは、検索を実行するIdentityXML関数に構成可能な検索パラメータを示します。

検索パラメータは、タプルを区切るConditionタグを使用して表されます。次に例を示します。

<oblix:tab_id>Employees</oblix:tab_id>
               <oblix:SearchParams>

                  <oblix:noOfFields>2</oblix:noOfFields>
                  <oblix:Condition>
                        <oblix:SearchAttr>cn</oblix:SearchAttr>
                        <oblix:SearchOperation>OSM</oblix:SearchOperation>
                        <oblix:SearchString>john</oblix:SearchString>
                  </oblix:Condition>
                  <oblix:Condition>
                        <oblix:SearchAttr>cn</oblix:SearchAttr>
                        <oblix:SearchOperation>OSM</oblix:SearchOperation>
                        <oblix:SearchString>mary</oblix:SearchString>
                  </oblix:Condition>
               </oblix:SearchParams>

検索パラメータは次のとおりです。

パラメータ searchAttr
説明: 文字列値が検索対象の属性。属性は、アプリケーション別に1つ以上のタブに関連付けられます。属性は、tab_idパラメータで指定されるタブ名に対して検索可能としてマークされている必要があります。マークされていない場合、エラーが戻されます。

属性には、管理者によって検索可能フラグが設定されている必要があります。

ルール: 必須。複数値、1〜n。nについては、noOfFieldsパラメータの説明を参照してください。

パラメータ searchOperation
説明: 文字列データの選択方法。有効なエントリはすべて文字Oで始まり、次の2文字は検索タイプの略語になります。

使用可能な値は次のとおりです。

OSM: Substring match(部分文字列一致)。検索結果には、このパラメータに入力されたデータを含む値を持つエントリが含まれます。

OGE: Greater than or equal to(以上)。検索結果には、このパラメータに入力されたデータ以上の文字列値を持つエントリが含まれます。

OLE: Less than or equal to(以下)。検索結果には、このパラメータに入力されたデータ以上の文字列値を持つエントリが含まれます。

OBW: Begins with(で始まる)。検索結果には、このパラメータに入力されたデータで始まる文字列値を持つエントリが含まれます。

OEW: Ends with(で終わる)。検索結果には、このパラメータに入力されたデータで終わる文字列値を持つエントリが含まれます。

OSL: Sounds like(音が類似)。入力されたデータに対する音の一致検索を試行します。

OEM: Exact match(完全一致)。検索結果には、このパラメータに入力されたデータと同じ文字列値を持つエントリが含まれます。

OOS: Oracle-specific substring match(Oracle固有の部分文字列一致)。OSMとは異なります。複数の検索文字列を空白で区切って入力できます。結果には、2つの文字列の両方に一致するエントリが含まれます。

このリストに記載されていない値を指定すると、エラー(「無効なパラメータ」)が戻されます。

ルール: 必須。単一値。
デフォルト: なし。無効な値が指定された場合、または値が指定されない場合は、エラーが戻されます。

パラメータ searchString
説明: このパラメータは、テキスト文字列に一致する項目の検索に使用する。
ルール: 必須。単一値。
デフォルト: 値が指定されない場合、デフォルトではクラス属性に対する空白検索を行う。つまり、選択したsearchAttr属性に対していずれかの値(NULL値以外)を持つエントリがすべて戻されます。

パラメータ noOfFields
説明: 検索で使用された場合、検索対象の値を持つ属性の数を表す。このパラメータの値に基づいて、SearchAttribute、SearchOperationおよびSearchStringパラメータの条件を同じ数だけ指定する必要があります。たとえば、noOfFieldsが2の場合、SearchParams要素に2つの条件を指定し、各条件に検索パラメータのセットを指定する必要があります。

検索の結果は、すべてのパラメータ・セットを満たすANDになります。

noOfFieldsの入力値またはデフォルト値は、セット数以上である必要があります。セット数より大きい場合、エラーは報告されず、nに正しい値を入力した場合と同様の動作になります。

ルール: オプション。1以上の整数の単一値。
デフォルト: 1

2.3 属性パラメータ

多くのIdentityXML関数では、属性を追加、変更および削除できます。たとえば、ある関数は、新規の属性を追加し、ユーザー・プロファイルの古い属性値を置換できます。次の各項では、属性値を検索、追加および置換するパラメータや、これらのパラメータの構文、および属性に複数の値を指定する方法について説明します。

2.3.1 一般的な属性パラメータの構文

属性パラメータは次のように表されます。

         <oblix:AttributeParams>
             <oblix:GenericAttribute>
             <!--Generic string type attribute-->
                     <oblix:AttrName>genphonenumber</oblix:AttrName>
                     <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                     <oblix:AttrOldValue>408</oblix:AttrOldValue>
                     <oblix:AttrNewValue>650</oblix:AttrNewValue>
             </oblix:GenericAttribute>
         </oblix:AttributeParams>

Generic(一般)、Password(パスワード)、Date(日付)、DateISO8601(ISO8601の日付)およびPostalAddress(住所)という表示タイプの属性値を指定するテンプレートが用意されています。次に例を示します。

<oblix:noOfFields>5</oblix:noOfFields>
         <oblix:AttributeParams>
              <oblix:GenericAttribute>
              <!--Generic string type attribute-->
                     <oblix:noOfFields>1</oblix:noOfFields>
                     <oblix:AttrName>cn</oblix:AttrName>
                     <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                     <oblix:AttrOldValue>jim</oblix:AttrOldValue>
                     <oblix:AttrNewValue>james</oblix:AttrNewValue>
              </oblix:GenericAttribute>

              <oblix:PasswordAttribute>
              <!--Password type attribute-->
                     <oblix:AttrName>pwd</oblix:AttrName>
                     <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                     <oblix:AttrOldValue>mypassword</oblix:AttrOldValue>
                     <oblix:AttrNewValue>mynewpassword</oblix:AttrNewValue>
               </oblix:PasswordAttribute>

               <oblix:DateAttribute>
               <!--Generic datetype attribute-->
                     <oblix:AttrName>date</oblix:AttrName>
                     <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                     <oblix:AttrOldValue>
                        <oblix:day>21</oblix:day>
                        <oblix:month>7</oblix:month>
                        <oblix:year>2003</oblix:year>
                        <oblix:hours>22</oblix:hours>
                        <oblix:minutes>33</oblix:minutes>
                        <oblix:seconds>11</oblix:seconds>
                     </oblix:AttrOldValue>
                     <oblix:AttrNewValue>
                        <oblix:day>2</oblix:day>
                        <oblix:month>10</oblix:month>
                        <oblix:years>2004</oblix:year>
                        <oblix:hours>15</oblix:hours>
                        <oblix:minutes>10</oblix:minutes>
                        <oblix:seconds>3</oblix:seconds>
                     </oblix:AttrNewValue>
                </oblix:DateAttribute>

                <oblix:DateAttributeISO8601>
                <!--ISO8601 date type attribute-->
                     <oblix:AttrName>date</oblix:AttrName>
                     <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                     <oblix:AttrOldValue>
                        <oblix:bahead_utc>2100</oblix:bahead_utc>
                        <oblix:tz_hours>22</oblix:tz_hours>
                        <oblix:tz_minutes>33</oblix:tz_minutes>
                     </oblix:AttrOldValue>
                     <oblix:AttrNewValue>
                        <oblix:bahead_utc>400</oblix:bahead_utc>
                        <oblix:tz_hours>10</oblix:tz_hours>
                        <oblix:tz_minutes>8</oblix:tz_minutes>
                     </oblix:AttrNewValue>
                </oblix:DateAttributeISO8601>

                <oblix:PostalAddressAttribute>
                <!--Postal address type attribute-->
                     <oblix:AttrName>addr</oblix:AttrName>
                     <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                     <oblix:AttrOldValue>
                        <oblix:field>123 Main St.</oblix:field>
                        <oblix:field>San Jose</oblix:field>
                     </oblix:AttrOldValue>
                     <oblix:AttrNewValue>
                     <oblix:noOfFields>2</oblix:noOfFields>
                        <oblix:field>100 Forge Dr.</oblix:field>
                        <oblix:field>Cupertino</oblix:field>
                     </oblix:AttrNewValue>
                </oblix:PostalAddressAttribute>
               </oblix:AttributeParams>

noOfFieldsパラメータは、<oblix:AttributeParams>タグの外に指定されます。noOfFieldsパラメータは、指定されている属性の合計数を表します。各属性は、タグ要素の適切なデリミタ(PostalAddressの場合はGenericAttributeなど)で囲む必要があります。次に例を示します。

<oblix:noOfFields>3</oblix:noOfFields>
          <oblix:AttributeParams>
               <oblix:GenericAttribute>
                        <oblix:AttrName>cn</oblix:AttrName>
                        <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                        <oblix:AttrOldValue>jim</oblix:AttrOldValue>
                        <oblix:AttrNewValue>james</oblix:AttrNewValue>
               </oblix:GenericAttribute>
               <oblix:GenericAttribute>
                        <oblix:AttrName>title</oblix:AttrName>
                        <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                        <oblix:AttrOldValue>development</oblix:AttrOldValue>
                        <oblix:AttrNewValue>sales</oblix:AttrNewValue>
               </oblix:GenericAttribute>
               <oblix:PostalAddressAttribute>
                        <oblix:AttrName>addr</oblix:AttrName>
                        <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                        <oblix:AttrOldValue>
                        <oblix:field>123 Main St.</oblix:field>
                        <oblix:field>San Jose</oblix:field>
                        </oblix:AttrOldValue>
                        <oblix:AttrNewValue>
                        <oblix:field>100 Forge Dr.</oblix:field>
                        <oblix:field>Cupertino</oblix:field>
                        </oblix:AttrNewValue>
               </oblix:PostalAddressAttribute>
         </oblix:AttributeParams>

パラメータ attrName
説明: 表示または変更する1つ以上の属性の名前。表示名ではなく、ディレクトリのスキーマ名を使用します。属性は、アイデンティティ・システムで構成され、ユーザー、グループまたはオブジェクトのプロファイル用に構成されたパネルに含まれている必要があります。

特定のattrNameの組合せは1回のみ使用できます。複数回使用された場合、その属性名に対する最初の操作以外の操作はすべて無視されます。無効な属性名や、関連する関数用のパネルに関連付けられていない属性名は無視されます。

viewやmyGroupsProfileなどの関数に対してはオプションです。

ルール: 必須またはオプション。単一値文字列、1〜n
デフォルト: 名前が指定されない場合は、関数に基づいて、ユーザーが表示を許可されている属性のみが考慮される。

パラメータ attrOldValue
説明: このパラメータは、属性値の変更に使用される。attrNameで指定された属性の古い値を指定するために使用します。
ルール: attrOperationがREPLACEの場合は必須で、それ以外の場合は無視される。単一値文字列。attrOldValueの複数のインスタンスは、attrNewValueに指定された値で置換することができます。

パラメータ attrOperation
説明: 属性に実行する操作のタイプ。有効な値は次のとおりです。

ADD: 属性の名前と値を既存の属性に追加します。その組合せがすでに存在する場合は、エラーが戻されます。LDAP属性のみに有効です。

DELETE: 属性と値を既存の属性から削除します。その組合せが存在しない場合は、エラーが戻されます。

REPLACE: 古い属性の名前と値の組合せを1つ削除し、新規属性の名前と値の組合せに置換できます。REPLACEを使用する場合、attrOldValueパラメータも使用する必要があります。LDAP属性のみに有効です。

REPLACE_ALL: 古い属性と名前の組合せを複数削除し、新規属性の名前と値の組合せに置換できます。これは、古い値が何であるかを考慮せずにすべて置換する場合に使用します。この場合、attrOldValueは使用されません。その他の値を指定すると、「属性の値が無効です」などのエラー・メッセージが戻されます。LDAP属性およびテンプレート属性に対して指定できます。

obparent locationdnなど、表示タイプlocationの属性に対する操作はIdentityXMLではサポートされていません。

ルール: 必須。単一値文字列。

パラメータ attrNewValue
説明: attrNameで指定された属性に対して追加、削除または置換する値。一部の属性では、複数の値を持つことができます。複数の値を指定するには、attrNewValueを再度使用します。

日付には、少なくとも指定が必要な日、月および年の3つのフィールドが含まれます。内容は、oblixbaseparams.xmlでDATETYPEに定義されている構文に一致する必要があります。

DateAttributeISO8601は、少なくとも1つの追加フィールド(bahead_utc)を取り、タイムゾーンのオフセットを可能にします。この接尾辞の内容がZの場合、オフセットおよび追加の接尾辞はありません。内容が+または-の場合は、時間と分にtz_hoursおよびtz-minutesをそれぞれ使用して、オフセットを指定する必要があります。

パスワードには、指定が必要な3つのフィールド(新規の値、確認用の値および古い値)が含まれます。

追加または変更操作の場合: 新規パスワードおよび確認用のパスワードを指定する必要があります。自分のパスワードを変更する場合は、パスワードの古い値も指定する必要があります。

この場合のattrOperationは、ADD、REPLACEまたはREPLACE_ALLのいずれかになります。

パスワード・タイプの属性を削除する必要がある場合は、attrOperationにDELETEを指定します。パラメータの古い値や新規の値を指定する必要はありません。

住所には6つのフィールドを使用できます。

属性に対する有効な値は、通常、実行する関数に対応するGUIに示される値に一致します。ただし、一部の例外があり、これについては「属性値の例外」で説明されています。

ルール: 必須。単一値。

パラメータ noOfFields(ワークフローおよび変更での使用時)
説明: ワークフローおよび属性変更で使用された場合、変更する属性の数。
ルール: 必須。整数の単一値。

2.3.2 ロスト・パスワード管理属性パラメータの構文

『Oracle Access Manager Administration Guide』のロスト・パスワード管理に関する項で説明されているように、複数のチャレンジ・フレーズおよびレスポンスを構成できます。プロファイル変更操作の実行時、または作成、自己登録および属性変更ワークフローの操作の実行時に、チャレンジ・フレーズおよびレスポンスを追加、変更および削除できます。

チャレンジ・フレーズおよびレスポンスの属性値は、単一の値としてディレクトリに格納されます。

次の各項では、チャレンジ・フレーズおよびレスポンスのIdentityXML構文について詳しく説明します。

2.3.2.1 Add(追加)操作

チャレンジ・フレーズおよびレスポンスの追加には次の要件があります。

  • ChallengeValueおよびResponseValue要素の数は、ユーザー・エントリに構成するチャレンジの最小数以下である必要があります。

    たとえば、管理者がチャレンジの最小数を3と構成していて、2つのチャレンジがユーザー・エントリに存在する場合、Add操作でさらに追加できるチャレンジは1つのみです。

  • チャレンジ・フレーズまたはレスポンスを追加するときは、attrOldValue要素を含めないでください。

  • 各チャレンジ・レスポンスで、各AttrNewValue要素に対して1つのAttrConfirmValue要素を指定します。

    これらの2つの要素の値は、先頭および末尾の空白や大/小文字も含め、完全一致である必要があります。

次に、チャレンジ・フレーズを追加するIdentityXMLの例を示します。

<oblix:ChallengeAttribute>
      <oblix:AttrName>genChallengePhrase</oblix:AttrName>
      <oblix:AttrOperation>ADD</oblix:AttrOperation>
            <oblix:ChallengeValue>
                        <oblix:AttrNewValue>phrase1</oblix:AttrNewValue>
            </oblix:ChallengeValue>
            <oblix:ChallengeValue>
                        <oblix:AttrNewValue>phrase2</oblix:AttrNewValue>
            </oblix:ChallengeValue>
            <oblix:ChallengeValue>
                        <oblix:AttrNewValue>phrase3</oblix:AttrNewValue>
            </oblix:ChallengeValue>
</oblix:ChallengeAttribute>

次に、チャレンジ・レスポンスを追加するIdentityXMLの例を示します。

<oblix:ResponseAttribute>
      <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
      <oblix:AttrOperation>ADD</oblix:AttrOperation>
             <oblix:ResponseValue>
                        <oblix:AttrNewValue>response1</oblix:AttrNewValue>
                        <oblix:AttrConfirmValue>response1</oblix:AttrConfirmValue>
             </oblix:ResponseValue>
             <oblix:ResponseValue>
                        <oblix:AttrNewValue>response2</oblix:AttrNewValue>
                        <oblix:AttrConfirmValue>response2</oblix:AttrConfirmValue>
             </oblix:ResponseValue>
             <oblix:ResponseValue>
                        <oblix:AttrNewValue>response3</oblix:AttrNewValue>
                        <oblix:AttrConfirmValue>response3</oblix:AttrConfirmValue>
             </oblix:ResponseValue>
</oblix:ResponseAttribute>

2.3.2.2 Delete(削除)操作

チャレンジ・フレーズおよびレスポンスの削除には次の要件があります。

  • このユーザーに対して有効なロスト・パスワード管理ポリシーがないことを確認します。

  • チャレンジ・フレーズに許可されるChallengeValue要素は1つのみです。

  • チャレンジ・フレーズを削除するときは、attrOldValue要素を含めないでください。

  • チャレンジ・レスポンスを削除するときは、ResponseValue要素は使用できません。

    このため、attrOldValue、AttrNewValueまたはAttrConfirmValue要素も含めないでください。

次に、チャレンジ・フレーズおよびレスポンスを削除する例を示します。

<oblix:ChallengeAttribute>
      <oblix:AttrName>genChallengePhrase</oblix:AttrName>
      <oblix:AttrOperation>DELETE</oblix:AttrOperation>
             <oblix:ChallengeValue>
                        <oblix:AttrNewValue>phrase1</oblix:AttrNewValue>
             </oblix:ChallengeValue>
</oblix:ChallengeAttribute>
<oblix:ResponseAttribute>
      <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
      <oblix:AttrOperation>DELETE</oblix:AttrOperation>
</oblix:ResponseAttribute>

2.3.2.3 Replace(置換)操作

Replace操作は、置換する値がディレクトリ内のユーザー・エントリに存在する場合にのみ使用できます。Replaceは中間値に使用できます。

チャレンジ・フレーズおよびレスポンスの置換には次の要件があります。

  • ChallengeValueおよびResponseValue要素の数は、ロスト・パスワード管理ポリシーが存在する場合、チャレンジの最小数以下である必要があります。

    ユーザーに対して有効なロスト・パスワード管理ポリシーがない場合は、1つのチャレンジおよび1つのレスポンスのみに対するReplace操作が可能です。

  • チャレンジ・フレーズでは、各attrNewValue要素に対して1つのattrOldValue要素が必要です。

  • チャレンジ・レスポンスでは、各AttrNewValue要素に対してAttrOldValue要素およびAttrConfirmValue要素がそれぞれ1つ必要です。

    AttrNewValue要素およびAttrConfirmValue要素の値は、先頭および末尾の空白や大/小文字も含め、完全一致である必要があります。

  • AttrOldValue要素の値は、ディレクトリ内のユーザー・エントリの値に一致する必要があります。

次に、チャレンジ・フレーズおよびレスポンスを置換する例を示します。

<oblix:ChallengeAttribute>
      <oblix:AttrName>genChallengePhrase</oblix:AttrName>
      <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
             <oblix:ChallengeValue>
                        <oblix:AttrOldValue>phrase2</oblix:AttrOldValue>
                        <oblix:AttrNewValue>phrase2_new</oblix:AttrNewValue>
             </oblix:ChallengeValue>
             <oblix:ChallengeValue>
                        <oblix:AttrOldValue>phrase3</oblix:AttrOldValue>
                        <oblix:AttrNewValue>phrase3_new</oblix:AttrNewValue>
             </oblix:ChallengeValue>
</oblix:ChallengeAttribute>

<oblix:ResponseAttribute>
      <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
      <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
            <oblix:ResponseValue>
                        <oblix:AttrOldValue>response2</oblix:AttrOldValue>
                        <oblix:AttrNewValue>response2_new</oblix:AttrNewValue>
                        <oblix:AttrConfirmValue>response2_new</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
            <oblix:ResponseValue>
                        <oblix:AttrOldValue>response3</oblix:AttrOldValue>
                        <oblix:AttrNewValue>response3_new</oblix:AttrNewValue>
                        <oblix:AttrConfirmValue>response3_new</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
 </oblix:ResponseAttribute>

ロスト・パスワード・ポリシーが有効で、「重複レスポンスを許可」が有効化されている状況では、ResponseValue要素で索引属性が必要な場合があります。2つのレスポンスに同じ値があり、その一方のみを変更する場合は、索引をResponseValue要素で指定する必要があります。2つのレスポンスに同じ値があり、索引がリクエストで指定されない場合は、両方の値が新規の値に変更されます。

たとえば、チャレンジ・フレーズAおよびBに同じレスポンスCがある場合、索引を使用してReplace操作を構成し、2つのチャレンジ・フレーズおよびレスポンスのペア(A-CとB-C)を区別できます。

次に、同じレスポンス・フレーズを持つ2つの異なるチャレンジ・フレーズを更新するmodifyUser関数の例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">

<soapenv:Body>
<oblix:authentication>
      <oblix:login>admin</oblix:login>
            <oblix:password>oblix</oblix:password>
      </oblix:authentication>

<oblix:request application="userservcenter" function="modifyUser" version="NPWSDL1.0">
    <oblix:params>
    <oblix:uid>cn=user1,ou=Policy2,o=company,c=us</oblix:uid>
    <oblix:noOfFields>2</oblix:noOfFields>
    <oblix:AttributeParams>
     <oblix:ChallengeAttribute>
            <oblix:AttrName>genChallengePhrase</oblix:AttrName>
                <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                <oblix:ChallengeValue>
                <oblix:AttrOldValue>phrase1</oblix:AttrOldValue>
                <oblix:AttrNewValue>phrase1_new</oblix:AttrNewValue>
                </oblix:ChallengeValue>
                <oblix:ChallengeValue>
                <oblix:AttrOldValue>A</oblix:AttrOldValue>
                <oblix:AttrNewValue>A_new</oblix:AttrNewValue>
                </oblix:ChallengeValue>
                <oblix:ChallengeValue>
               <oblix:AttrOldValue>B</oblix:AttrOldValue>
               <oblix:AttrNewValue>B_new</oblix:AttrNewValue>
                </oblix:ChallengeValue>
   </oblix:ChallengeAttribute>

   <oblix:ResponseAttribute>
                <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
                <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
                <oblix:ResponseValue>
                <oblix:AttrOldValue>response1</oblix:AttrOldValue>
                <oblix:AttrNewValue>response1_new</oblix:AttrNewValue>
                <oblix:AttrConfirmValue>response1_new</oblix:AttrConfirmValue>
                 </oblix:ResponseValue>
            <oblix:ResponseValue index="1">
                <oblix:AttrOldValue>C</oblix:AttrOldValue>
                <oblix:AttrNewValue>C_new1</oblix:AttrNewValue>
                <oblix:AttrConfirmValue>C_new1</oblix:AttrConfirmValue>
                </oblix:ResponseValue>
                <oblix:ResponseValue index="2">
                <oblix:AttrOldValue>C</oblix:AttrOldValue>
                <oblix:AttrNewValue>C_new2</oblix:AttrNewValue>
                <oblix:AttrConfirmValue>C_new2</oblix:AttrConfirmValue>
                </oblix:ResponseValue>
   </oblix:ResponseAttribute>

   </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

2.3.2.4 Replace_ALL(すべて置換)操作

Replace_ALL操作は、すべてのチャレンジまたはレスポンスを置換します。

すべてのチャレンジ・フレーズおよびレスポンスの置換には次の要件があります。

  • ChallengeValueおよびResponseValue要素の数は、ユーザーに対するロスト・パスワード・ポリシーが存在する場合、構成するチャレンジの最小数に完全に一致する必要があります。

    ユーザーに対して有効なロスト・パスワード管理ポリシーがない場合は、1つの値の置換のみが可能です。

  • チャレンジ・フレーズのChallengeValue要素にはAttrOldValue要素を含めないでください。

  • チャレンジ・フレーズにはAttrNewValue要素が必須です。

  • チャレンジ・レスポンスでは、ユーザーが自分のレスポンスを置換している場合、AttrOldValue要素はディレクトリ内のユーザー・エントリの値に一致する必要があります。

    別のユーザーがReplace_ALL操作を実行している場合は、AttrOldValue要素はリクエストで必須ではありません。

  • Replace_ALLは、ディレクトリ内のユーザー・エントリにチャレンジ・フレーズまたはレスポンスがなくても使用できます。

  • チャレンジ・レスポンスでは、各AttrNewValue要素に対して1つのAttrConfirm要素が必要です。

    AttrNewValue要素およびAttrConfirmValue要素の値は、先頭および末尾の空白や大/小文字も含め、完全一致である必要があります。

次に、Replace_ALL操作の例を示します。

<oblix:ChallengeAttribute>
      <oblix:AttrName>genChallengePhrase</oblix:AttrName>
      <oblix:AttrOperation>REPLACE_ALL</oblix:AttrOperation>
            <oblix:ChallengeValue>
                        <oblix:AttrNewValue>phrase1_new</oblix:AttrNewValue>
            </oblix:ChallengeValue>
            <oblix:ChallengeValue>
                        <oblix:AttrNewValue>phrase2_new</oblix:AttrNewValue>
            </oblix:ChallengeValue>
            <oblix:ChallengeValue>
                        <oblix:AttrNewValue>phrase3_new</oblix:AttrNewValue>
            </oblix:ChallengeValue>
</oblix:ChallengeAttribute>

<oblix:ResponseAttribute>
      <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
      <oblix:AttrOperation>REPLACE_ALL</oblix:AttrOperation>
            <oblix:ResponseValue>
                        <oblix:AttrNewValue>response1_new</oblix:AttrNewValue>
                        <oblix:AttrConfirmValue>response1_new</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
            <oblix:ResponseValue>
                        <oblix:AttrNewValue>response2_new</oblix:AttrNewValue>
                        <oblix:AttrConfirmValue>response2_new</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
            <oblix:ResponseValue>
                        <oblix:AttrNewValue>response3_new</oblix:AttrNewValue>
                        <oblix:AttrConfirmValue>response3_new</oblix:AttrConfirmValue>
           </oblix:ResponseValue>
</oblix:ResponseAttribute>

2.4 属性値の例外

一般に、関数で使用される属性の有効な値は、GUIで使用される値と一致します。ただし例外もあります。表2-1に、関数とGUIで示される値が異なる属性をリストします。

表2-1 属性値の例外

属性名 説明

obgroupsubscribenotification

この属性が設定されている場合、対象のUIDはグループへのサブスクライブまたはグループからのサブスクライブ解除の際に通知を受ける。

NotifyUponSubscription: グループへのサブスクライブの際にユーザーが通知を受ける場合(GUIの「登録」に相当)。

NotifyUponUnsubscription: グループからのサブスクライブ解除の際にユーザーが通知を受ける場合(GUIの「登録解除」に相当)。

obgroup subscriptiontype

ユーザーをグループにサブスクライブできる条件を定義するために設定される。

SubscriptionPolicyOpen: GUIの「オープン」に相当。

SubscriptionPolicyOpenFilter: GUIの「フィルタでオープン」に相当。

SubscriptionPolicyControlledWorkflow: GUIの「ワークフロー経由で制御」に相当。

SubscriptionPolicyClosed: GUIの「クローズ済」に相当。


2.5 共通関数

ここでは、アイデンティティ・システム・アプリケーション全体で使用される関数について説明します。すべての関数は次のような類似した構文を持ちます。

<oblix:request application="userservcenter|groupservcenter|objservcenter" function="function name" version="version">

次に例を示します。

<oblix:request application="userservcenter" function="search" version="NPWSDL1.0">

注意:

versionタグは、Oracle Access Manager 6.5以降のバージョンでIdentityXMLを使用する場合に必須です。

6.5より前のIdentityXMLのversionタグに関するドキュメントは、次のサイトを参照してください。

http://www.oracle.com/technology/


2.5.1 特定の基準に基づくエントリの検索

関数名 search
リクエスト例: <oblix:request application="userservcenter" function="search" version="NPWSDL1.0">
説明: 1つ以上のエントリの検索。エントリは、ユーザーがアクセスできる検索ベース内に存在する必要があります。
使用対象: グループ・マネージャ、組織マネージャおよびユーザー・マネージャ。
結果: 出力は、スキーマ・ファイルoblix\WebServices\XMLSchema\component_search.xsdで定義されている。
出力スキーマ: oblix\WebServices\XMLSchema\searchResults.xsd
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\common_search.wsdl
パラメータ
SearchAttr 必須。詳細は、「検索パラメータ」を参照してください。
SearchOperation 必須。詳細は、「検索パラメータ」を参照してください。
SearchString 必須。詳細は、「検索パラメータ」を参照してください。
attrname オプション。値が指定されない場合は、表ビューのデフォルトの属性が使用されます。詳細は、「属性パラメータ」を参照してください。
noOfFields オプション。詳細は、「属性パラメータ」を参照してください。
noOfRecords 検索結果で戻されるエントリの最大数。showAllResultsパラメータでオーバーライドされます。

ルール: オプション。1以上の整数の単一値。

デフォルト: oblixbaseparams.xmlカタログのdefaultDisplayResultValパラメータから取得された値。これ以外の場合は、カスタムCookieから取得されます。

showAllResults 検索のすべての結果を戻すよう指定する。値がtrueの場合、noOfRecordsパラメータの値はオーバーライドされます。

ルール: オプション。trueまたはfalse。

デフォルト: false(noOfRecordsパラメータで指定される上限まで結果を戻します)。

sortBy 結果のソートに使用する属性。

ルール: オプション。単一値。

デフォルト: 値が指定されない場合、tab_idで指定されるタブの構造化オブジェクト・クラスのクラス属性が使用されます。

sortOrder 昇順または降順のソート順序。

ルール: オプション。ascending(昇順)またはdescending(降順)の単一値。

デフォルト: ascending。

startFrom このパラメータは、検索結果の長いリストで、選択した数の項目をスキップし、指定した項目からリストを開始するために使用する。たとえば、検索で100のエントリが見つかった場合、このパラメータの値として80を入力すると、80〜100の項目のみを示すレスポンスが戻されます。

ルール: オプション。整数の単一値。

デフォルト: 1(検索結果リストの先頭から表示を開始します)。

tab_id 検索対象の情報カテゴリを示すタブの名前。ユーザー・マネージャとグループ・マネージャでは、1つのタブのみを使用できます。組織マネージャでは、複数のタブを使用できます。

省略された場合、アイデンティティ・システムでは1番左のタブのtab_idのデフォルト値を使用します。tab_idの値は常に指定することをお薦めします。組織マネージャでは、タブの表示順序を変更できます。デフォルトのtab_idを使用すると、ポータル機能が影響を受ける場合があります。

tab_idは数値です。この数値を取得するには、アプリケーションの構成メニューに移動します。構成タブを選択します。tab_idを取得するタブにカーソルを置いて右クリックし、tab_idを取得するタブ名をクリックします。表示された新規ウィンドウで「オープン」を選択します。ページの上部に表示されるURLに、tab_idの値が示されます。

ルール: オプション。単一値。

デフォルト: ユーザー・マネージャとグループ・マネージャでは、タブは1つのみであり、このタブがデフォルトになります。

組織マネージャでは、複数のタブがあり、1番左のタブがデフォルトになります。


例2-1に、search関数を示します。

例2-1 ユーザー・マネージャで名前Johnを検索する例

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body>
<oblix:authentication xmlns:oblix="http://www.oblix.com" type="basic">                           
<oblix:login>J.Smith</oblix:login>
<oblix:password>J.Smith</oblix:password>
</oblix:authentication>
<oblix:request application="userservcenter" function ="search" version="NPWSDL1.0">
<oblix:params>
<oblix:SearchParams>
<oblix:Condition>
<oblix:SearchAttr>cn</oblix:SearchAttr>
<oblix:SearchOperation>OSM</oblix:SearchOperation>
<oblix:SearchString>john</oblix:SearchString>
</oblix:Condition>
</oblix:SearchParams>
</oblix:params>
</oblix:request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

2.5.1.1 保留中、完了済またはすべてのチケットの検索

関数名 workflowTicketSearch
リクエスト例: <oblix:request application="userservcenter" function="workflowTicketSearch" version="NPWSDL1.0">
説明: 保留中、完了済またはすべてのワークフロー・リクエストを検索する。
使用対象: グループ・マネージャ、組織マネージャ、ユーザー・マネージャ。
結果: 出力は、スキーマ・ファイルoblix\WebServices\XMLSchema\component_search.xsdで定義されている。
出力スキーマ: oblix\WebServices\XMLSchemasearch\Results.xsd
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ common_workflowTicketSearch.wsdl
パラメータ
requestType 検索対象のリクエスト・キュー・タイプ。

incomingRequests: 処理が必要なリクエスト。

outgoingRequests: 自分で発行したリクエスト。

ルール: 必須。単一値。

targetApplication チケットを検索するアプリケーション。すべてのアプリケーションを検索するには、値allApplicationsを使用します。特定のアプリケーションを検索するには、そのアプリケーションの名前を次のように入力します。

groupservcenter: グループ・マネージャの場合。

objservcenter: 組織マネージャの場合。

userservcenter: ユーザー・マネージャの場合。

ルール: 必須。単一値。

ticketType 検索対象のリクエストのステータス・タイプ。次の3つのエントリのいずれかを使用できます。

WfAllTickets: ステータスを問わず、すべてのリクエストを検索します。

WfCompletedTickets: 処理が完了しているリクエストを検索します。

WfPendingTickets: 保留中(処理待ち)のリクエストを検索します。

ルール: 必須。単一値。

days 過去n日間に発行されたリクエストを検索する。アイデンティティ・システムでは、カレンダ上の日ではなく、チケット作成後の24時間を1日とみなします。

ルール: オプション。1以上の整数の単一値。

デフォルト: 0(最も古いリクエストまで検索が行われます)。

noOfRecords 検索結果で戻されるエントリの最大数。showAllResultsパラメータでオーバーライドされます。

ルール: オプション。1以上の整数の単一値。

デフォルト: oblixbaseparams.xmlカタログのdefaultDisplayResultValパラメータから取得された値。これ以外の場合は、カスタムCookieから取得されます。

sortBy 結果のソートに使用する属性。

ルール: オプション。単一値。

デフォルト: 値が指定されない場合、tab_idで指定されるタブの構造化オブジェクト・クラスのクラス属性が使用されます。ワークフロー・チケットの場合、クラス・ソート属性は次のいずれかの値のみを持つことができます。

obticketid: チケット番号の場合。

obapp: アプリケーション名の場合。

obactionname: アクションの場合。

obwfstatus: ステータスの場合。

obwftypename: リクエスト・タイプの場合。

obtargetdn: リクエスト対象の場合。

obcurrentdn: リクエスタの場合。

obactordn: アクション実行者の場合。

obdateprocessed: 処理日の場合。

oblockedby: ロック者の場合。

obsubflow: サブフロー番号の場合。

属性が無効な場合、「パラメータsortByの値が無効です」などのエラーが戻されます。属性が指定されない場合、管理者が構成したワークフロー・チケット検索テーブルの最初の属性(通常はobticketid)がデフォルトになります。このテーブルを参照するには、「アイデンティティ・システム・コンソール」→「共通構成」→「ワークフロー・パネル」→「チケット検索テーブル」の順に選択します。

sortOrder 昇順または降順のソート順序。無効な順序を指定すると、エラー・メッセージが戻されます。

ルール: オプション。ascending(昇順)またはdescending(降順)の単一値。

デフォルト: ascending。

startFrom このパラメータは、検索結果の長いリストで、多数の項目をスキップし、指定した項目からリストを開始するために使用する。たとえば、検索で100のエントリが見つかった場合、このパラメータの値として80を入力すると、80〜100の項目のみを示すレスポンスが戻されます。

ルール: オプション。整数の単一値。

デフォルト: 1(検索結果リストの先頭から開始します)。


workflowTicketSearchに関する注意

モードがdataonly(データのみ)の場合、obwfstatusに使用可能な値は次の整数になります。

Unknown = -1

Success = 0

Failed = 1

PendingUser = 2

PendingSubflow = 3

PendingPreAction = 4

PendingPostAction = 5

PendingUserInPre = 6

PendingUserInPost = 7

LastStepDone = 8

Asynch = 9

PendingExecution = 10

Cancelled = 11

PendingPreNotify = 12

PendingPreSubflow = 13

PendingPostNotify = 14

TriggerSubflows = 15

ForceCommit = 16

Retry = 17

PendingRetry = 18

出力(整数/文字列)では、store-as(格納形式)は整数です。文字列は、ユーザー・インタフェースで表示される値です。

例2-2に、着信チケットに対するsearch関数を示します。

例2-2 ユーザー・マネージャで着信チケットを検索する例

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/">

<SOAP-ENV:Body>
<oblix:authentication xmlns:oblix="http://www.oblix.com" type="basic">
<oblix:login>J.Smith</oblix:login>
<oblix:password>J.Smith</oblix:password>
</oblix:authentication>
<oblix:request application="userservcenter" function="workflowTicketSearch" version="NPWSDL1.0">

<oblix:params>
<oblix:tab_id>Employees</oblix:tab_id>
<oblix:requestType>incomingRequests</oblix:requestType>
<oblix:ticketType>allTickets</oblix:ticketType>
</oblix:params>
</oblix:request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

2.5.1.2 特定のワークフロー・チケットに関する情報の取得

関数名 workflowTicketInfo
リクエスト例: <oblix:request application="userservcenter" function="workflowTicketInfo" version="NPWSDL1.0">
説明: 特定のリクエストに関する情報を取得する。
使用対象: グループ・マネージャ、組織マネージャ、ユーザー・マネージャ。
結果: 出力は、スキーマ・ファイルoblix\WebServices\XMLSchema\wfTicketInfo.xsdで定義されている。
出力スキーマ: 操作が正しく終了すると、XMLスキーマoblix\WebServices\XMLSchema\wfTicketInfo.xsdに基づいてグループのプロファイルが戻される。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ common_workflowTicketInfo.wsdl
パラメータ
workflowInstanceDn 情報が必要なワークフローのDN。ワークフローのDNは、ワークフロー定義ビューに表示されます。『Oracle Access Manager Administration Guide』を参照してください。

ルール: 必須。DNの単一値。

workflowStepInstanceId 情報が必要なworkflowInstanceDnで指定されるワークフロー内のステップ。

ルール: 必須。整数の単一値。


2.5.1.3 非同期ワークフローの再開

関数名 asynchResumeWorkflowProcess
リクエスト例: <oblix:request application="asynch" function="asynchResumeWorkflowProcess" version="NPWSDL1.0">
説明: アイデンティティ・イベントAPIのコールからSTATUS_PPP_WF_ASYNCのステータスが戻されたワークフローの続行を可能にする。asyncResumeWorkflowProcess関数は、ワークフロー・インスタンスDNとステップIDを入力として取得します。

asynch_retcode = 0でワークフローを再開。

asynch_retcode = 1でワークフローを中断(デフォルト値= 0)。

詳細は、第3章「アイデンティティ・イベント・プラグインAPI」を参照してください。

対象のワークフローの要件に基づき、この表の「パラメータ」の項にオプションと記載されている1つ以上のパラメータを指定する必要があります。

使用対象: 非同期ワークフロー。
出力スキーマ: 現在時点で、次のような出力をHTML形式で常に生成する不具合がある。

<html>アクションは正常に完了しました。ワークフロー・ページを参照してください。</html>

WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ common_asynchResumeWorkflowProcess.wsdl
パラメータ
workflowInstanceDn 情報が必要なワークフローのDN。ワークフローのDNは、ワークフロー定義ビューに表示されます。『Oracle Access Manager Administration Guide』を参照してください。

ルール: 必須。DNの単一値。

workflowStepInstanceId 情報が必要なworkflowInstanceDnで指定されるワークフロー内のステップ。

ルール: 必須。整数の単一値。

attrName オプション。詳細は、「属性パラメータ」を参照してください。
attrOldValue オプション。詳細は、「属性パラメータ」を参照してください。
attrOperation オプション。詳細は、「属性パラメータ」を参照してください。
attrNewValue オプション。詳細は、「属性パラメータ」を参照してください。
noOfFields オプション。詳細は、「属性パラメータ」を参照してください。

例2-3および例2-4に、非同期ワークフローの再開を示します。

例2-3 非同期ワークフローの再開(1/2)

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/">

<SOAP-ENV:Body>
<oblix:authentication xmlns:oblix="http://www.oblix.com" type="basic"> 
<oblix:login>authenticationAttribute</oblix:login> 
<oblix:password>authenticationPassword</oblix:password>
</oblix:authentication>

<oblix:request function="asynchResumeWorkflowProcess">
<oblix:params>
<oblix:param name="workflowInstanceDn">obwfinstanceid=wfinstanceid,
obcontainerId=workflowInstances,o=Oblix,ou=Apps, o=mycompany</oblix:param> 
<oblix:param name="workflowStepInstanceId">1</oblix:param>
<!-- See Return codes at the bottom of this file -->
<oblix:param name="asynch_retcode">0</oblix:param>

<!-- Add the attributes required by the workflow in the order the -->
<!-- workflow expects them. Include even the optional and hidden fields. -->
<!-- Start with n=1 -->
<oblix:param name="attrName_n">attr. name</oblix:param>
<oblix:param name="attrValue_n">attr. value</oblix:param>
<!-- ... all other workflow expected attributes -->
<!-- The operation depends on what you want to do with the attributes. -->
<!-- In this case I know the attribute does not currently exist in the user -->
<!-- entry so I want to add them. However, you might want to replace the -->
<!-- values of the attributes, and so on. -->
<oblix:param name="attrOperation">ADD</oblix:param>
</oblix:params>
</oblix:request>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<!-- The values for the return code, async_retcode, is as follows: -->
<!-- 0 - Success -->
<!-- 1 - Action Failed -->
<!-- -11 - Pre-Action Failed -->
<!-- -12 - Post-Action Failed -->
<!-- -13 - External-Action Failed -->

例2-4 非同期ワークフローの再開(2/2)

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/">

<SOAP-ENV:Body>
<oblix:authentication xmlns:oblix="http://www.oblix.com" type="basic"> 
<oblix:login>authenticationAttribute</oblix:login> <oblix:password>authenticationPassword</oblix:password>
</oblix:authentication>

<oblix:request function="asynchResumeWorkflowProcess" version="NPWSDL1.0">
<oblix:params>
<oblix:workflowInstanceDn>obwfinstanceid=wfinstanceid,obcontainerId=workflowInstances,o=Oblix,ou=Apps, 
o=mycompany</oblix:workflowInstanceDn>
<oblix:workflowStepInstanceId>1</oblix:workflowStepInstanceId>
<!-- See Return codes at the bottom of this file -->
<oblix:asynch_retcode>0</oblix:asynch_retcode>
<!-- Add the attributes required by the workflow in the order the -->
<!-- workflow expects them. Include even the optional and hidden fields. -->
   <oblix:attributeParams>
        <oblix:genericAttribute>
         <oblix:attrName> name of attr </oblix:attrName>
         <oblix:attrNewValue> value of attr </oblix:attrNewValue>
         <oblix:attrOperation> operation like ADD or DELETE or REPLACE or REPLACE_ALL</oblix:attrOperation>
       </oblix:genericAttribute>
       <!-- any more attributes -->

<!-- ... all other workflow expected attributes -->
   </oblix:attributeParams>

</oblix:params>
</oblix:request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<!-- The values for the return code, async_retcode, is as follows: -->
<!-- 0 - Success -->
<!-- 1 - Action Failed -->
<!-- -11 - Pre-Action Failed -->
<!-- -12 - Post-Action Failed -->
<!-- -13 - External-Action Failed -->

2.5.1.4 グループへの自身のサブスクライブ

関数名 subscribe
リクエスト例: <oblix:request application="groupservcenter" function="subscribe" version="NPWSDL1.0">
説明: 自分自身をグループに追加(サブスクライブ)する。レスポンスでは、グループのプロファイルが戻されます。
使用対象: グループ・マネージャ。
結果: 出力は、スキーマ・ファイルoblix\WebServices\XMLSchema\gsc_groupprofile.xsdで定義されているグループのプロファイル。
出力スキーマ: 操作が正常に終了すると、次のXMLスキーマに基づいてグループのプロファイルが戻される。

oblix\WebServices\XMLSchema\gsc_groupprofile.xsd

操作が失敗すると、次のようなエラー・メッセージが戻されます。

<SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="0" type="text/xsl"?>
<Oblix>
<ObError>
<ObRequestInfo> 161660048 </ObRequestInfo> <ObTextMessage> You do not have access rights. </ObTextMessage>
</ObError>
</Oblix>
</SOAP-ENV:Envelop>
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_subscribe.wsdl
パラメータ
uid この場合、uidはサブスクライブ先のグループのDNを示す。

ルール: 必須。DNの単一値。



注意:

グループにユーザーを追加する場合、サブスクリプション・ポリシーは必須ではありません。たとえば、グループがすでに存在し、そのグループにユーザーを追加する場合は、関連アクセス制御ポリシーをuniquemember属性に設定し、セレクタを使用してメンバーを追加できます。ただし、各ユーザーが自分自身をグループにサブスクライブできるようにする場合は、サブスクリプション機能を使用してその環境を実装します。

2.5.1.5 グループからの自身のサブスクライブ解除

関数名 unsubscribe
リクエスト例: <oblix:request application="groupservcenter" function="unsubscribe" version="NPWSDL1.0">
説明: 自分自身をグループから削除(サブスクライブ解除)する。
使用対象: グループ・マネージャ。
結果: レスポンスでは、スキーマ・ファイルoblix\WebServices\XMLSchema\gsc_groupprofile.xsdで定義されているグループのプロファイルが戻される。
出力スキーマ: 操作が正常に終了すると、XMLスキーマoblix\WebServices\XMLSchema\gsc_groupprofile.xsdに基づいてグループのプロファイルが戻される。

操作が失敗すると、次のようなエラー・メッセージが戻されます。

<SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="0" type="text/xsl"?> <Oblix>
<ObError>
<ObRequestInfo> 161660048 </ObRequestInfo> <ObTextMessage> You do not have access rights. </ObTextMessage>
</ObError>
</Oblix>
</SOAP-ENV:Envelop>
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_unsubscribe.wsdl
パラメータ
uid サブスクライブを解除する対象のグループのDN。

ルール: 必須。DNの単一値。


2.5.1.6 グループへのユーザーのサブスクライブ

関数名 subscribeUserToGroup
リクエスト例: <oblix:request application="groupservcenter" function="subscribeUserToGroup" version="NPWSDL1.0">
説明: 自分以外のユーザーをグループにサブスクライブする。そのユーザーのログインは不要です。
使用対象: グループ・マネージャ。
結果: 出力は、スキーマ・ファイルoblix\WebServices\XMLSchema\gsc_groupprofile.xsdで定義されているグループのプロファイル。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_subscribeUserToGroup.wsdl
パラメータ
uid グループ・エントリのDN。
proxysourceuid サブスクライブする非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。


例2-5に、グループへのユーザーのサブスクライブを示します。

例2-5 グループへのRobert Fultonのサブスクライブ

<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/">
 <SOAP-ENV:Body> <oblix:authentication xmlns:oblix="http://www.oblix.com" type="basic"> 
<oblix:login>J.Smith</oblix:login> <oblix:password>J.Smith</oblix:password> 
</oblix:authentication>
<oblix:request application="groupservcenter" function="subscribeUserToGroup" version="NPWSDL1.0">
<oblix:params>
<oblix:proxysourceuid>
cn=Robert Fulton, ou=Corporate, o=Company, c=US
</oblix:proxysourceuid>
<oblix:uid>
cn=Marketing Team, ou=Marketing, o=Company, c=US
</oblix:uid>
</oblix:params>
</oblix:request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

注意:

グループにユーザーを追加する場合、サブスクリプション・ポリシーは必須ではありません。たとえば、グループがすでに存在し、そのグループにユーザーを追加する場合は、関連アクセス制御ポリシーをuniquemember属性に設定し、セレクタを使用してメンバーを追加できます。ただし、各ユーザーが自分自身をグループにサブスクライブできるようにする場合は、サブスクリプション機能を使用してその環境を実装します。

2.5.1.7 グループからのユーザーのサブスクライブ解除

関数名 unsubscribeUserFromGroup
リクエスト例: <oblix:request application="groupservcenter" function="unsubscribeUserFromGroup" version="NPWSDL1.0">
説明: 自分以外のユーザーをグループからサブスクライブ解除する。そのユーザーのログインは不要です。
使用対象: グループ・マネージャ。
結果: レスポンスでは、スキーマ・ファイルoblix\WebServices\XMLSchema\gsc_groupprofile.xsdで定義されているグループのプロファイルが戻される。
出力スキーマ: 操作が正常に終了すると、次のXMLスキーマに基づいてグループのプロファイルが戻される。

oblix\WebServices\XMLSchema\gsc_groupprofile.xsd

操作が失敗すると、次のようなエラー・メッセージが戻されます。

<SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="0" type="text/xsl"?>
<Oblix>
<ObError>
<ObRequestInfo> 161660048 </ObRequestInfo>
<ObTextMessage> You do not have access rights. </ObTextMessage>
</ObError>
</Oblix>
</SOAP-ENV:Envelop>
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_unsubscribeUserFromGroup.wsdl
パラメータ
uid サブスクライブを解除する対象のグループのDN。

ルール: 必須。DNの単一値。

proxysourceuid サブスクライブ解除する非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。


例2-6に、グループからのサブスクライブ解除を示します。

例2-6 グループからのRobert Fultonのサブスクライブ解除

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
   <oblix:authentication xmlns:oblix="http://www.oblix.comÓ type="basic">
      <oblix:login>J.Smith</oblix:login>
      <oblix:password>J.Smith</oblix:password>
   </oblix:authentication>
<oblix:request application="groupservcenter"
      function="unsubscribeUserFromGroup" version="NPWSDL1.0">
   <oblix:params>
      <oblix:proxysourceuid=cn=Robert Fulton, ou=Corporate, o=Company,
         c=US</oblix:proxysourceuid>
      <oblix:uid>cn=Marketing Team, ou=Marketing, o=Company,c=US</oblix:uid>
   </oblix:params>
   </oblix:request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>

2.6 ユーザー・マネージャ関数

管理者は、ユーザー・マネージャを使用してユーザーIDを追加、変更および削除できます。通常、ユーザー・マネージャにより、エンドユーザーは他のユーザーを表示し、自分のID情報を変更できます。あるユーザーが表示できるユーザーおよび変更できるID情報は、マスター管理者から付与される権限によって異なります。

次の各IdentityXML関数を使用すると、プログラムによってユーザー・マネージャ・アプリケーションにアクセスできます。すべての関数は次のような類似した構文を持ちます。

<oblix:request application="userservcenter" function="name" version="version">

次に例を示します。

<oblix:request application="userservcenter" function="canIViewUserProfile" version="NPWSDL1.0">

注意:

versionタグは、Oracle Access Manager 6.5以降のバージョンでIdentityXMLを使用する場合に必須です。

6.5より前のIdentityXMLのversionタグに関するドキュメントは、次のサイトを参照してください。

http://www.oracle.com/technology/


2.6.1 属性の権限をテストする関数

次の各関数では、特定の属性に設定されている読取り、書込み、委任および通知権限を自分自身または別のユーザーが持っているかどうかについて、yesまたはnoのレスポンスを戻します。

2.6.1.1 自分がユーザーのプロファイルを表示できるかを確認する関数

関数名 canIViewUserProfile
リクエスト例: <oblix:request application="userservcenter" function="canIViewUserProfile" version="NPWSDL1.0">
説明: 自分がユーザーのプロファイルを表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanIViewUserProfile.wsdl
パラメータ
uid 表示されるプロファイルを持つユーザーのDN。

ルール: 必須。DNの単一値。


2.6.1.2 自分がユーザーのプロファイル内の属性を表示できるかを確認する関数

関数名 canIViewUserProfileAttr
リクエスト例: <oblix:request application="userservcenter" function="canIViewUserProfileAttr" version="NPWSDL1.0">
説明: 自分がユーザーのプロファイル内の特定の属性を表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanIViewUserProfileAttr.wsdl
パラメータ
uid 表示される属性を持つユーザーのDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.6.1.3 自分がユーザーのプロファイル内の属性を変更できるかを確認する関数

関数名 canIModifyUserProfileAttr
リクエスト例: <oblix:request application="userservcenter" function="canIModifyUserProfileAttr" version="NPWSDL1.0">
説明: 自分がユーザーのプロファイル内の特定の属性を変更できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_canIModifyUserProfileAttr.wsdl
パラメータ
uid 変更される属性を持つユーザーのDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.6.1.4 自分がワークフローを使用してユーザーのプロファイル内の属性を変更できるかを確認する関数

関数名 canIRequestUserAttrModification
リクエスト例: <oblix:request application="userservcenter" function="canIRequestUserAttrModification" version="NPWSDL1.0">
説明: 自分がワークフローを使用してユーザーのプロファイル内の特定の属性を変更できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanIRequestUserAttrModification.wsdl
パラメータ
uid 変更される属性を持つユーザーのDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.6.1.5 自分が新規ユーザーを作成できるかを確認する関数

関数名 canICreateUser
リクエスト例: <oblix:request application="userservcenter" function="canICreateUser" version="NPWSDL1.0">
説明: 自分が新規ユーザーを作成できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanICreateUser.wsdl
パラメータ
ObDomainName テストをリクエストする対象のサブツリー。

ルール: オプション。DNの単一値。

デフォルト: 値が指定されない場合、アイデンティティ・システムではすべてのドメインでテスト対象の権限があるかどうかをチェックします。


2.6.1.6 自分が既存ユーザーを削除できるかを確認する関数

関数名 canIDeleteUser
リクエスト例: <oblix:request application="userservcenter" function="canIDeleteUser" version="NPWSDL1.0">
説明: 自分が既存ユーザーを削除できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanIDeleteUser.wsdl
パラメータ
uid 変更対象のエントリDN。

ルール: 必須。DNの単一値。


2.6.1.7 特定のユーザーが別のユーザーのプロファイルを表示できるかを確認する関数

関数名 canUserViewUserProfile
リクエスト例: <oblix:request application="userservcenter" function="canUserViewUserProfile" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが別のユーザーのプロファイルを表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanUserViewUserProfile.wsdl
パラメータ
uid 表示されるプロファイルを持つユーザーのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。


2.6.1.8 特定のユーザーが別のユーザーのプロファイル内の属性を表示できるかを確認する関数

関数名 canUserViewUserProfileAttr
リクエスト例: <oblix:request application="userservcenter" function="canUserViewUserProfileAttr" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが別のユーザーのプロファイル内の特定の属性を表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanUserViewUserProfileAttr.wsdl
パラメータ
uid 表示されるプロファイルを持つユーザーのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.6.1.9 特定のユーザーがワークフローを使用して別のユーザーのプロファイル内の属性を変更できるかを確認する関数

関数名 canUserRequestUserAttrModification
リクエスト例: <oblix:request application="userservcenter" function="canUserRequestUserAttrModification" version="NPWSDL1.0">
説明: あるユーザーが属性の変更をリクエストできるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanUserRequestUserAttrModification.wsdl
パラメータ
uid 変更対象のエントリDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

targetattribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.6.1.10 特定のユーザーが新規ユーザーを作成できるかを確認する関数

関数名 canUserCreateUser
リクエスト例: <oblix:request application="userservcenter" function="canUserCreateUser" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが新規ユーザーを作成できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanUserCreateUser.wsdl
パラメータ
proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

ObDomainName テストをリクエストする対象のサブツリー。

ルール: オプション。DNの単一値。

デフォルト: 値が指定されない場合、アイデンティティ・システムではすべてのドメインでテスト対象の権限があるかどうかをチェックします。


2.6.1.11 特定のユーザーが既存ユーザーを削除できるかを確認する関数

関数名 canUserDeleteUser
リクエスト例: <oblix:request application="userservcenter" function="canUserDeleteUser" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが既存ユーザーを削除できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanUserDeleteUser.wsdl
パラメータ
proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

これらのユーザーのDN以外のDNは、このパラメータを使用する関数の対象外ですが、使用することは可能です。

ルール: 必須。DNの単一値。

uid 変更対象のエントリDN。

ルール: 必須。DNの単一値。


2.6.1.12 特定のユーザーが別のユーザーの属性を変更できるかを確認する関数

関数名 canUserModifyUserProfileAttr
リクエスト例: <oblix:request application="userservcenter" function="canUserModifyUserProfileAttr" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが別のユーザーのプロファイル内の特定の属性を変更できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanUserModifyUserProfileAttr.wsdl
パラメータ
uid 変更される属性を持つユーザーのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.6.1.13 特定のユーザーがワークフローを使用して別のユーザーのプロファイルの変更をリクエストできるかを確認する関数

関数名 canUserRequestUserAttrModification
リクエスト例: <oblix:request application="userservcenter" function="canUserRequestUserAttrModification" version="NPWSDL1.0">
説明: 非ログイン・ユーザーがワークフローを使用して、別のユーザーのプロファイル内の特定の属性変更をリクエストできるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_CanUserRequestUserAttrModification.wsdl
パラメータ
uid 変更される属性を持つユーザーのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

これらのユーザーのDN以外のDNは、このパラメータを使用する関数の対象外ですが、使用することは可能です。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.6.2 ユーザー・マネージャのアクションを実行する関数

次の各関数を使用すると、ユーザーの作成などの特定のアイデンティティ・システム・アクションを自分自身または別のユーザーが実行できます。これらの関数は、getおよびset関数です。

2.6.2.1 ユーザー属性の表示

関数名 view
リクエスト例: <oblix:request application="userservcenter" function="view" version="NPWSDL1.0">
説明: この関数は、属性の表示に使用する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_view.wsdl
パラメータ
uid ユーザーのDN(ユーザー・マネージャの場合)。uidが指定されない場合、ログイン・ユーザーのプロファイルが表示されます。

ルール: ユーザー・マネージャの場合のみオプション。DNの単一値。

注意: このパラメータは、この関数がグループ・マネージャまたは組織マネージャで使用されている場合、表示される属性を持つグループまたは組織のDNにも適用されます。

attrName オプション。詳細は、「属性パラメータ」を参照してください。

attrNameが指定されない場合は、ログイン・ユーザーが表示アクセス権を持つエントリのすべての属性が戻されます。これらの属性は、アイデンティティ・システムで構成されていて、ユーザー・マネージャ、グループ・マネージャまたは組織マネージャのパネルに追加されている必要があります。



注意:

リクエスタがマスター管理者の場合、または管理者に権限付与およびワークフロー・モニタリングの管理権限が委任されている場合は、この関数により非アクティブなユーザーが表示されます。

例2-7に、view関数を示します。

例2-7 viewの例

<SOAP-ENV:Envelope xmlns:oblix=http://www.oblix.com" xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
   <oblix:authentication xmlns:oblix="http://www.oblix.com" type="basic"?
      <oblix:login>admin</oblix:login>
      <oblix:password>oblix></oblix:password>
   </oblix:authentication>
   <oblix:request application="userservcenter" function="view" version="NPWSDL1.0">
      <oblix:params>
         <oblix:uid>
            cn=test1,o=Company,c=US
         </oblix:uid>
         <oblix:attrName>
            genuserid
         </oblix:attrname>
         <oblix:attrName>
            mail
         </oblix:attrName>
      </oblix:params>
   </oblix:request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

2.6.2.2 ユーザー属性の変更

関数名 modifyUser
リクエスト例: <oblix:request application="userservcenter" function="modifyUser" version="NPWSDL1.0">
説明: 指定したユーザーの属性値を変更する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_modifyUser.wsdl
パラメータ
uid 変更される属性を持つユーザーのDN。

ルール: 必須。DNの単一値。

attrName オプション。詳細は、「属性パラメータ」を参照してください。

_nがない場合は、名前付きの属性に対するデータのみが戻されます。このパラメータはこの関数ではオプションですが、常に指定することをお薦めします。このパラメータを省略すると、パネルに表示されるすべての名前に対するデータが戻されます。このパラメータは、目的のデータのみに出力を制限するために使用します。このパラメータは、attrName_nパラメータに追加して使用します。

attrOperation_n 必須。詳細は、「属性パラメータ」を参照してください。
attrOperation 必須。詳細は、「属性パラメータ」を参照してください。
attrNewValue 必須。詳細は、「属性パラメータ」を参照してください。
noOfFields 必須。詳細は、「属性パラメータ」を参照してください。
attrOldValue オプション/必須。attrOperationがREPLACEの場合のみ必須です。詳細は、「属性パラメータ」を参照してください。

例2-8に、変更操作を示します。

例2-8 チャレンジ・フレーズおよびレスポンスを追加するユーザー変更操作

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">

<soapenv:Body>
  <oblix:authentication>
   <oblix:login>admin</oblix:login>
   <oblix:password>oblix</oblix:password>
  </oblix:authentication>

  <oblix:request application="userservcenter" function="modifyUser" version="NPWSDL1.0">
   <oblix:params>
    <oblix:uid>cn=user1,ou=Policy2,o=company,c=us</oblix:uid>
    <oblix:noOfFields>2</oblix:noOfFields>
           <oblix:AttributeParams>
           <oblix:ChallengeAttribute>
           <oblix:AttrName>genChallengePhrase</oblix:AttrName>
           <oblix:AttrOperation>ADD</oblix:AttrOperation>
                 <oblix:ChallengeValue>
                       <oblix:AttrNewValue>phrase1</oblix:AttrNewValue>
                 </oblix:ChallengeValue>
                 <oblix:ChallengeValue>
                       <oblix:AttrNewValue>phrase2</oblix:AttrNewValue>
                 </oblix:ChallengeValue>
                 <oblix:ChallengeValue>
                       <oblix:AttrNewValue>phrase3</oblix:AttrNewValue>
                 </oblix:ChallengeValue>
          </oblix:ChallengeAttribute>

          <oblix:ResponseAttribute>
          <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
          <oblix:AttrOperation>ADD</oblix:AttrOperation>
                <oblix:ResponseValue>
                      <oblix:AttrNewValue>response1</oblix:AttrNewValue>
                      <oblix:AttrConfirmValue>response1</oblix:AttrConfirmValue>
                </oblix:ResponseValue>
                <oblix:ResponseValue>
                      <oblix:AttrNewValue>response2</oblix:AttrNewValue>
                      <oblix:AttrConfirmValue>response2</oblix:AttrConfirmValue>
                </oblix:ResponseValue>
                <oblix:ResponseValue>
                      <oblix:AttrNewValue>response3</oblix:AttrNewValue>
                      <oblix:AttrConfirmValue>response3</oblix:AttrConfirmValue>
                </oblix:ResponseValue>
         </oblix:ResponseAttribute>

    </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

例2-9に、チャレンジ・フレーズおよびレスポンスを削除するユーザー変更操作を示します。

例2-9 チャレンジ・フレーズおよびレスポンスを削除するユーザー変更操作

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">

<soapenv:Body>
<oblix:authentication>
  <oblix:login>admin</oblix:login>
  <oblix:password>oblix</oblix:password>
</oblix:authentication>

<oblix:request application="userservcenter" function="modifyUser" version="NPWSDL1.0">
    <oblix:params>
    <oblix:uid>cn=user1,ou=Policy2,o=company,c=us</oblix:uid>
    <oblix:noOfFields>2</oblix:noOfFields>
    <oblix:AttributeParams>

          <oblix:ChallengeAttribute>
          <oblix:AttrName>genChallengePhrase</oblix:AttrName>
          <oblix:AttrOperation>DELETE</oblix:AttrOperation>
                <oblix:ChallengeValue>
                      <oblix:AttrNewValue>phrase1</oblix:AttrNewValue>
                </oblix:ChallengeValue>
          </oblix:ChallengeAttribute>

          <oblix:ResponseAttribute>
                <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
                      <oblix:AttrOperation>DELETE</oblix:AttrOperation>
          </oblix:ResponseAttribute>

    </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

例2-10に、チャレンジ・フレーズおよびレスポンスの置換を示します。

例2-10 チャレンジおよびレスポンスを置換するユーザー変更操作

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">

<soapenv:Body>
<oblix:authentication>
   <oblix:login>admin</oblix:login>
   <oblix:password>oblix</oblix:password>
</oblix:authentication>
<oblix:request application="userservcenter" function="modifyUser" version="NPWSDL1.0">

   <oblix:params>
    <oblix:uid>cn=user1,ou=Policy2,o=company,c=us</oblix:uid>
    <oblix:noOfFields>2</oblix:noOfFields>
    <oblix:AttributeParams>

     <oblix:ChallengeAttribute>
     <oblix:AttrName>genChallengePhrase</oblix:AttrName>
     <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
           <oblix:ChallengeValue>
                 <oblix:AttrOldValue>phrase2</oblix:AttrOldValue>
                 <oblix:AttrNewValue>phrase2_new</oblix:AttrNewValue>
           </oblix:ChallengeValue>
           <oblix:ChallengeValue>
                 <oblix:AttrOldValue>phrase3</oblix:AttrOldValue>
                 <oblix:AttrNewValue>phrase3_new</oblix:AttrNewValue>
           </oblix:ChallengeValue>
     </oblix:ChallengeAttribute>

     <oblix:ResponseAttribute>
     <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
     <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
           <oblix:ResponseValue>
                 <oblix:AttrOldValue>response2</oblix:AttrOldValue>
                 <oblix:AttrNewValue>response2_new</oblix:AttrNewValue>
                 <oblix:AttrConfirmValue>response2_new</oblix:AttrConfirmValue>
           </oblix:ResponseValue>
           <oblix:ResponseValue>
                 <oblix:AttrOldValue>response3</oblix:AttrOldValue>
                 <oblix:AttrNewValue>response3_new</oblix:AttrNewValue>
                 <oblix:AttrConfirmValue>response3_new</oblix:AttrConfirmValue>
           </oblix:ResponseValue>
     </oblix:ResponseAttribute>

    </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

例2-11に、すべてのチャレンジおよびレスポンスの置換を示します。

例2-11 チャレンジおよびレスポンスにReplace_ALLを使用するユーザー変更操作

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">

<soapenv:Body>
<oblix:authentication>
   <oblix:login>admin</oblix:login>
   <oblix:password>oblix</oblix:password>
</oblix:authentication>
<oblix:request application="userservcenter" function="modifyUser" version="NPWSDL1.0">
   <oblix:params>
    <oblix:uid>cn=user1,ou=Policy2,o=company,c=us</oblix:uid>
    <oblix:noOfFields>2</oblix:noOfFields>
    <oblix:AttributeParams>

     <oblix:ChallengeAttribute>
     <oblix:AttrName>genChallengePhrase</oblix:AttrName>
      <oblix:AttrOperation>REPLACE_ALL</oblix:AttrOperation>
            <oblix:ChallengeValue>
                  <oblix:AttrNewValue>phrase1_new</oblix:AttrNewValue>
            </oblix:ChallengeValue>
            <oblix:ChallengeValue>
                  <oblix:AttrNewValue>phrase2_new</oblix:AttrNewValue>
            </oblix:ChallengeValue>
            <oblix:ChallengeValue>
                  <oblix:AttrNewValue>phrase3_new</oblix:AttrNewValue>
            </oblix:ChallengeValue>
      </oblix:ChallengeAttribute>

      <oblix:ResponseAttribute>
      <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
      <oblix:AttrOperation>REPLACE_ALL</oblix:AttrOperation>
            <oblix:ResponseValue>
                  <oblix:AttrNewValue>response1_new</oblix:AttrNewValue>
                  <oblix:AttrConfirmValue>response1_new</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
            <oblix:ResponseValue>
                  <oblix:AttrNewValue>response2_new</oblix:AttrNewValue>
                  <oblix:AttrConfirmValue>response2_new</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
            <oblix:ResponseValue>
                  <oblix:AttrNewValue>response3_new</oblix:AttrNewValue>
                  <oblix:AttrConfirmValue>response3_new</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
      </oblix:ResponseAttribute>

    </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

2.6.2.3 ワークフローによるユーザー属性変更のリクエスト

関数名 workflowSaveChangeAttributeRequest
リクエスト例: <oblix:request application="userservcenter" function="workflowSaveChangeAttributeRequest" version="NPWSDL1.0">
説明: この関数は、ワークフローを使用して、グループ、組織またはユーザーの属性変更をリクエストするために使用する。OBAuxClassesで始まるパラメータはグループのみに適用されます。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_workflowSaveChangeAttributeRequest.wsdl
パラメータ
uid 変更される属性を持つユーザー、グループまたは組織のDN。

ルール: 必須。DNの単一値。

attrName 必須。ここで必須なのは、各ワークフローに固有の属性です。ここで指定される属性がワークフローで必須でない場合、その属性は無視され、エラーは生成されません。詳細は、「属性パラメータ」を参照してください。
attrOperation 必須。詳細は、「属性パラメータ」を参照してください。
attrNewValue 必須。詳細は、「属性パラメータ」を参照してください。
changeRequestAttr このパラメータは、変更される値を持つ属性を指定するために使用する。これは、その属性のLDAPスキーマ名です(表示名ではありません)。

ルール: 必須。文字列の単一値。

changeRequestType このリクエストがプロビジョニングまたはプロビジョニング解除のどちらであるかを指定する。

ルール: 必須。単一値。使用可能な値は、remove(プロビジョニング解除)とnewval(プロビジョニング)の2つのいずれかです。

noOfFields 必須。詳細は、「属性パラメータ」を参照してください。
ObWorkflowName 属性の値の作成または変更に使用するワークフローの名前。

特定のアプリケーションのワークフロー定義の表示メニューで、ObWorkflowNameの完全DNを検索します。

ルール: 必須。DNの単一値。

attrOldValue オプション/必須。attrOperationがREPLACEの場合のみ必須です。詳細は、「属性パラメータ」を参照してください。
ObAuxClassesOldValues 置換対象の補助クラス名の古い値。これは、グループに関連付けられている補助クラスの名前情報の変更のみに使用されます。このパラメータは、削除する補助クラス名ごとに1回使用します。

アクセス権のない値を指定しようとすると、「属性ObAuxClassesの値が無効です。」というエラー・メッセージが戻されます。

これらの値を検索するには、「アイデンティティ・システム・コンソール」→「グループ・マネージャ構成」→「グループ・タイプ」→「グループ・タイプ・パネルの構成」の順に選択します。グループを選択し、表示された「関連オブジェクト・クラス」の名前を検索します。

ルール: 属性が補助クラス用であり、ObAuxClassesOperationがREPLACEの場合にのみ必須。それ以外の場合は無視されます。複数値。

ObAuxClassesOperation 属性に実行する操作のタイプ。これは、補助クラスの名前情報の変更のみに使用されます。

有効な値は次のとおりです。

ADD: 補助クラス名を既存の属性に追加します。

DELETE: 補助クラス名を既存の属性から削除します。

REPLACE: 古い補助クラス名を削除し、新規の補助クラス名と置換します。

別の値が指定された場合、または値が指定されない場合は、「属性ObAuxClassesの値が無効です。」というエラー・メッセージが戻されます。

ルール: 属性が補助クラス用の場合にのみ必須。単一値。

ObAuxClassesValues 追加、削除または置換対象の補助クラスの名前。これは、補助クラスの名前情報の変更のみに使用されます。

このパラメータは、追加または削除する補助クラス名ごとに1回使用します。アクセス権のない値を指定しようとすると、「属性ObAuxClassesの値が無効です。」というエラー・メッセージが戻されます。

これらの値を検索するには、「アイデンティティ・システム・コンソール」→「グループ・マネージャ構成」→「グループ・タイプ」→「グループ・タイプ・パネルの構成」の順に選択します。グループを選択し、「関連オブジェクト・クラス」の名前を検索します。

ルール: 属性が補助クラス用の場合は必須。複数値。有効な値は、使用可能な構成済の補助クラスの文字列名です。(補助クラスは、システム・コンソールの「オブジェクト・クラスの構成」機能を使用して構成します。『Oracle Access Manager Administration Guide』を参照してください。)

ObWfComment このパラメータは、ワークフロー内のステップにコメントを指定するために使用する。

ルール: オプション。文字列の単一値。


例2-12に、ワークフローを使用したチャレンジおよびレスポンスの追加を示します。

例2-12 チャレンジ・フレーズおよびレスポンスを追加する属性変更ワークフロー

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">

<soapenv:Body>
<oblix:authentication>
   <oblix:login>admin</oblix:login>
   <oblix:password>oblix</oblix:password>
</oblix:authentication>

<oblix:request application="userservcenter" function="workflowSaveChangeAttributeRequest" version="NPWSDL1.0">
<oblix:params>
<oblix:uid>cn=user1,ou=Policy2,o=company,c=us</oblix:uid> 
<oblix:ObWorkflowName>obworkflowid=94400828cd0b4cb494e04a8eab0a142f,
obcontainerId=workflowDefinitions,o=Oblix,o=company,c=us</oblix:ObWorkflowName>
    <oblix:changeRequestAttr>genChallengePhrase</oblix:changeRequestAttr>
    <oblix:changeRequestType>newval</oblix:changeRequestType>
    <oblix:noOfFields>2</oblix:noOfFields>
    <oblix:AttributeParams>

     <oblix:ChallengeAttribute>
     <oblix:AttrName>genChallengePhrase</oblix:AttrName>
     <oblix:AttrOperation>ADD</oblix:AttrOperation>
           <oblix:ChallengeValue>
                 <oblix:AttrNewValue>phrase1</oblix:AttrNewValue>
           </oblix:ChallengeValue>
           <oblix:ChallengeValue>
                 <oblix:AttrNewValue>phrase2</oblix:AttrNewValue>
           </oblix:ChallengeValue>
           <oblix:ChallengeValue>
                 <oblix:AttrNewValue>phrase3</oblix:AttrNewValue>
           </oblix:ChallengeValue>
     </oblix:ChallengeAttribute>

     <oblix:ResponseAttribute>
     <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
     <oblix:AttrOperation>ADD</oblix:AttrOperation>
           <oblix:ResponseValue>
                 <oblix:AttrNewValue>response1</oblix:AttrNewValue>
                 <oblix:AttrConfirmValue>response1</oblix:AttrConfirmValue>
           </oblix:ResponseValue>
           <oblix:ResponseValue>
                 <oblix:AttrNewValue>response2</oblix:AttrNewValue>
                 <oblix:AttrConfirmValue>response2</oblix:AttrConfirmValue>
           </oblix:ResponseValue>
           <oblix:ResponseValue>
                 <oblix:AttrNewValue>response3</oblix:AttrNewValue>
                 <oblix:AttrConfirmValue>response3</oblix:AttrConfirmValue>
           </oblix:ResponseValue>
     </oblix:ResponseAttribute>

    </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

例2-13に、ワークフローを使用したチャレンジ・フレーズおよびレスポンスの置換を示します。

例2-13 チャレンジ・フレーズおよびレスポンスを置換するワークフロー

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">

<soapenv:Body>
<oblix:authentication>
   <oblix:login>admin</oblix:login>
   <oblix:password>oblix</oblix:password>
</oblix:authentication>
<oblix:request application="userservcenter" function="workflowSaveChangeAttributeRequest" version="NPWSDL1.0">
<oblix:params>
<oblix:uid>cn=user1,ou=Policy2,o=company,c=us</oblix:uid>
   <oblix:ObWorkflowName>obworkflowid=94400828cd0b4cb494e04a8eab0a142f,
   obcontainerId=workflowDefinitions,o=Oblix,o=company,c=us</oblix:ObWorkflowName>
<oblix:changeRequestAttr>genChallengePhrase</oblix:changeRequestAttr>
<oblix:changeRequestType>newval</oblix:changeRequestType>
<oblix:noOfFields>2</oblix:noOfFields>

    <oblix:AttributeParams>
    <oblix:ChallengeAttribute>
    <oblix:AttrName>genChallengePhrase</oblix:AttrName>
    <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
          <oblix:ChallengeValue>
                <oblix:AttrOldValue>phrase2</oblix:AttrOldValue>
                        <oblix:AttrNewValue>phrase2_new</oblix:AttrNewValue>
          </oblix:ChallengeValue>
          <oblix:ChallengeValue>
                        <oblix:AttrOldValue>phrase3</oblix:AttrOldValue>
                        <oblix:AttrNewValue>phrase3_new</oblix:AttrNewValue>
            </oblix:ChallengeValue>
     </oblix:ChallengeAttribute>

     <oblix:ResponseAttribute>
     <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
     <oblix:AttrOperation>REPLACE</oblix:AttrOperation>
           <oblix:ResponseValue>
                         <oblix:AttrOldValue>response2</oblix:AttrOldValue>
                         <oblix:AttrNewValue>response2_new</oblix:AttrNewValue>
                         <oblix:AttrConfirmValue>response2_new</oblix:AttrConfirmValue>
           </oblix:ResponseValue>
           <oblix:ResponseValue>
                         <oblix:AttrOldValue>response3</oblix:AttrOldValue>
                         <oblix:AttrNewValue>response3_new</oblix:AttrNewValue>
                         <oblix:AttrConfirmValue>response3_new</oblix:AttrConfirmValue>
           </oblix:ResponseValue>
      </oblix:ResponseAttribute>

    </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

例2-14に、ワークフローを使用したすべてのチャレンジ・フレーズおよびレスポンスの置換を示します。

例2-14 すべてのチャレンジ・フレーズおよびレスポンスを置換するワークフロー

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">

<soapenv:Body>
<oblix:authentication>
   <oblix:login>admin</oblix:login>
   <oblix:password>oblix</oblix:password>
</oblix:authentication>
<oblix:request application="userservcenter" function="workflowSaveChangeAttributeRequest" version="NPWSDL1.0">
<oblix:params>
<oblix:uid>cn=user1,ou=Policy2,o=company,c=us</oblix:uid> 
<oblix:ObWorkflowName>obworkflowid=94400828cd0b4cb494e04a8eab0a142f,
obcontainerId=workflowDefinitions,o=Oblix,o=company,c=us</oblix:ObWorkflowName>

    <oblix:changeRequestAttr>genChallengePhrase</oblix:changeRequestAttr>
    <oblix:changeRequestType>newval</oblix:changeRequestType>
    <oblix:noOfFields>2</oblix:noOfFields>
    <oblix:AttributeParams>

          <oblix:ChallengeAttribute>
          <oblix:AttrName>genChallengePhrase</oblix:AttrName>
          <oblix:AttrOperation>REPLACE_ALL</oblix:AttrOperation>
                <oblix:ChallengeValue>
                      <oblix:AttrNewValue>phrase1_new</oblix:AttrNewValue>
                </oblix:ChallengeValue>
                <oblix:ChallengeValue>
                      <oblix:AttrNewValue>phrase2_new</oblix:AttrNewValue>
                </oblix:ChallengeValue>
                <oblix:ChallengeValue>
                      <oblix:AttrNewValue>phrase3_new</oblix:AttrNewValue>
              </oblix:ChallengeValue>
       </oblix:ChallengeAttribute>

       <oblix:ResponseAttribute>
       <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
       <oblix:AttrOperation>REPLACE_ALL</oblix:AttrOperation>
             <oblix:ResponseValue>
                  <oblix:AttrNewValue>response1_new</oblix:AttrNewValue>
                  <oblix:AttrConfirmValue>response1_new</oblix:AttrConfirmValue>
             </oblix:ResponseValue>
             <oblix:ResponseValue>
                   <oblix:AttrNewValue>response2_new</oblix:AttrNewValue>
                   <oblix:AttrConfirmValue>response2_new</oblix:AttrConfirmValue>
             </oblix:ResponseValue>
             <oblix:ResponseValue>
                   <oblix:AttrNewValue>response3_new</oblix:AttrNewValue>
                   <oblix:AttrConfirmValue>response3_new</oblix:AttrConfirmValue>
             </oblix:ResponseValue>
      </oblix:ResponseAttribute>

    </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

2.6.2.4 ワークフローによるユーザーの作成

関数名 workflowSaveCreateProfile
リクエスト例: <oblix:request application="userservcenter" function="workflowSaveCreateProfile" version="NPWSDL1.0">
説明: この関数は、ワークフローを使用して新規のユーザー、グループまたは組織を作成するために使用する。OBAuxClassesで始まるパラメータはグループのみに適用されます。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_workflowSaveCreateProfile.wsdl
パラメータ
ObDomainName 新規エントリを作成する対象のドメインの名前。

ルール: 必須。DNの単一値。ドメイン名は、ObWorkflowNameパラメータで参照されるワークフローに定義されている必要があります。

ObWorkflowName 属性の値の作成または変更に使用するワークフローの名前。

特定のアプリケーションのワークフロー定義の表示メニューで、ObWorkflowNameの完全DNを検索します。

ルール: 必須。DNの単一値。

noOfFields 必須。詳細は、「属性パラメータ」を参照してください。
attrName 必須。ここで必須なのは、各ワークフローに固有の属性です。ここで指定される属性がワークフローで必須でない場合、その属性は無視され、エラーは生成されません。詳細は、「属性パラメータ」を参照してください。
attrOperation 必須。詳細は、「属性パラメータ」を参照してください。
attrNewValue 必須。詳細は、「属性パラメータ」を参照してください。
attrOldValue オプション/必須。attrOperationがREPLACEの場合のみ必須です。
ObAuxClassesOldValues 置換対象の補助クラス名の古い値。これは、グループに関連付けられている補助クラスの名前情報の変更のみに使用されます。このパラメータは、削除する補助クラス名ごとに1回使用します。

アクセス権のない値を指定しようとすると、「属性ObAuxClassesの値が無効です。」というエラー・メッセージが戻されます。

これらの値を検索するには、「アイデンティティ・システム・コンソール」→「グループ・マネージャ構成」→「グループ・タイプ」→「グループ・タイプ・パネルの構成」の順に選択します。グループを選択し、表示された「関連オブジェクト・クラス」の名前を検索します。

ルール: 属性が補助クラス用であり、ObAuxClassesOperationがREPLACEの場合にのみ必須。それ以外の場合は無視されます。複数値。

ObAuxClassesOperation 属性に実行する操作のタイプ。これは、補助クラスの名前情報の変更のみに使用されます。

有効な値は次のとおりです。

ADD: 補助クラス名を既存の属性に追加します。

DELETE: 補助クラス名を既存の属性から削除します。

REPLACE: 古い補助クラス名を削除し、新規の補助クラス名と置換します。

別の値が指定された場合、または値が指定されない場合は、「属性ObAuxClassesの値が無効です。」というエラー・メッセージが戻されます。

ルール: 属性が補助クラス用の場合に必須。単一値。

ObAuxClassesValues 追加、削除または置換対象の補助クラスの名前。これは、補助クラスの名前情報の変更のみに使用されます。

このパラメータは、追加または削除する補助クラス名ごとに1回使用します。アクセス権のない値を指定しようとすると、「属性ObAuxClassesの値が無効です。」というエラー・メッセージが戻されます。

値を検索するには、「アイデンティティ・システム・コンソール」→「グループ・マネージャ構成」→「グループ・タイプ」→「グループ・タイプ・パネルの構成」の順に選択します。グループを選択し、「関連オブジェクト・クラス」の名前を検索します。

ルール: 属性が補助クラス用の場合は必須。複数値。有効な値は、使用可能な構成済の補助クラスの文字列名です。補助クラスは、管理コンソールの「オブジェクト・クラスの構成」機能を使用して構成します。詳細は、『Oracle Access Manager Administration Guide』を参照してください。

ObWfComment ワークフロー内のステップにコメントを指定する。

ルール: オプション。文字列の単一値。


例2-15に、ワークフローを使用したチャレンジおよびレスポンスの追加を示します。

例2-15 チャレンジ・フレーズおよびレスポンスを追加するユーザー作成ワークフロー

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">
<soapenv:Body>
<oblix:authentication>
   <oblix:login>admin</oblix:login>
   <oblix:password>oblix</oblix:password>
</oblix:authentication>
<oblix:request application="userservcenter" function="workflowSaveCreateProfile" version="NPWSDL1.0">
   <oblix:params>
    <oblix:ObWorkflowName>obworkflowid=5c9ad30117f44a3e960dad321a84b139,
    obcontainerId=workflowDefinitions,o=Oblix,o=company,c=us</oblix:ObWorkflowName>
    <oblix:ObDomainName>ou=Policy2,o=company,c=us</oblix:ObDomainName>
    <oblix:noOfFields>6</oblix:noOfFields>

    <oblix:AttributeParams>
          <oblix:GenericAttribute>
          <oblix:AttrName>cn</oblix:AttrName>
          <oblix:AttrOperation>ADD</oblix:AttrOperation>
                <oblix:AttrNewValue>user101</oblix:AttrNewValue>
          </oblix:GenericAttribute>
          <oblix:GenericAttribute>
          <oblix:AttrName>sn</oblix:AttrName>
          <oblix:AttrOperation>ADD</oblix:AttrOperation>
                <oblix:AttrNewValue>user101L</oblix:AttrNewValue>
          </oblix:GenericAttribute>
          <oblix:GenericAttribute>
          <oblix:AttrName>uid</oblix:AttrName>
          <oblix:AttrOperation>ADD</oblix:AttrOperation>
                <oblix:AttrNewValue>user101</oblix:AttrNewValue>
          </oblix:GenericAttribute>

          <oblix:PasswordAttribute>
          <oblix:AttrName>userPassword</oblix:AttrName>
          <oblix:AttrOperation>ADD</oblix:AttrOperation>
                <oblix:AttrNewValue>oblix</oblix:AttrNewValue>
                <oblix:AttrConfirmValue>oblix</oblix:AttrConfirmValue>
          </oblix:PasswordAttribute>

          <oblix:ChallengeAttribute>
          <oblix:AttrName>genChallengePhrase</oblix:AttrName>
          <oblix:AttrOperation>ADD</oblix:AttrOperation>
                <oblix:ChallengeValue>
                      <oblix:AttrNewValue>phrase1</oblix:AttrNewValue>
                </oblix:ChallengeValue>
                <oblix:ChallengeValue>
                      <oblix:AttrNewValue>phrase2</oblix:AttrNewValue>
                </oblix:ChallengeValue>
                <oblix:ChallengeValue>
                      <oblix:AttrNewValue>phrase3</oblix:AttrNewValue>
                </oblix:ChallengeValue>
          </oblix:ChallengeAttribute>

          <oblix:ResponseAttribute>
          <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
          <oblix:AttrOperation>ADD</oblix:AttrOperation>
                <oblix:ResponseValue>
                      <oblix:AttrNewValue>response1</oblix:AttrNewValue>
                      <oblix:AttrConfirmValue>response1</oblix:AttrConfirmValue>
                 </oblix:ResponseValue>
                 <oblix:ResponseValue>
                       <oblix:AttrNewValue>response2</oblix:AttrNewValue>
                       <oblix:AttrConfirmValue>response2</oblix:AttrConfirmValue>
                 </oblix:ResponseValue>
                 <oblix:ResponseValue>
                       <oblix:AttrNewValue>response3</oblix:AttrNewValue>
                       <oblix:AttrConfirmValue>response3</oblix:AttrConfirmValue>
                 </oblix:ResponseValue>
          </oblix:ResponseAttribute>

    </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

2.6.2.5 ワークフローによる自己登録

関数名 workflowSelfRegistrationSave
リクエスト例: <oblix:request application="userservcenter" function="workflowSelfRegistrationSave" version="NPWSDL1.0">
説明: 自分自身を組織に追加、またはユーザーとして追加する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_workflowSelfRegistrationSave.wsdl
パラメータ
ObDomainName 新規エントリを作成する対象のドメインの名前。ドメイン名は、ObWorkflowNameパラメータで参照されるワークフローに定義されている必要があります。

ルール: 必須。DNの単一値。

ObWorkflowName 属性の値の作成または変更に使用するワークフローの名前。

特定のアプリケーションのワークフロー定義の表示メニューで、ObWorkflowNameの完全DNを検索します。

ルール: 必須。DNの単一値。

attrName 必須。ここで必須なのは、各ワークフローに固有の属性です。ここで指定される属性がワークフローで必須でない場合、その属性は無視され、エラーは生成されません。詳細は、「属性パラメータ」を参照してください。
attrOperation 必須。詳細は、「属性パラメータ」を参照してください。
attrNewValue 必須。詳細は、「属性パラメータ」を参照してください。
noOfFields 必須。詳細は、「属性パラメータ」を参照してください。
attrOldValue オプション/必須。attrOperationがREPLACEの場合のみ必須です。
ObWfComment ワークフロー内のステップにコメントを指定する。

ルール: オプション。文字列の単一値。


例2-16に、自己登録ワークフローを使用したチャレンジおよびレスポンスの追加を示します。

例2-16 チャレンジ・フレーズおよびレスポンスを追加する自己登録ワークフロー

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:oblix="http://www.oblix.com" xmlns:soapenv="http://schemas-xmlsoap.org/soap/envelope/">

<soapenv:Body>
<oblix:authentication>
   <oblix:login>admin</oblix:login>
   <oblix:password>oblix</oblix:password>
</oblix:authentication>
<oblix:request application="userservcenter" function="workflowSelfRegistrationSave" version="NPWSDL1.0">
   <oblix:params>
    <oblix:ObWorkflowName>obworkflowid=3a94939d048f42f0b039c3d978c10a2f,
obcontainerId=workflowDefinitions,o=Oblix,o=company,c=us</oblix:ObWorkflowName>
<oblix:ObDomainName>ou=Policy2,o=company,c=us</oblix:ObDomainName>
<oblix:noOfFields>6</oblix:noOfFields>
<oblix:AttributeParams>

      <oblix:GenericAttribute>
      <oblix:AttrName>cn</oblix:AttrName>
      <oblix:AttrOperation>ADD</oblix:AttrOperation>
            <oblix:AttrNewValue>user102</oblix:AttrNewValue>
      </oblix:GenericAttribute>
      <oblix:GenericAttribute>
      <oblix:AttrName>sn</oblix:AttrName>
      <oblix:AttrOperation>ADD</oblix:AttrOperation>
            <oblix:AttrNewValue>user102L</oblix:AttrNewValue>
      </oblix:GenericAttribute>
      <oblix:GenericAttribute>
      <oblix:AttrName>uid</oblix:AttrName>
      <oblix:AttrOperation>ADD</oblix:AttrOperation>
            <oblix:AttrNewValue>user102</oblix:AttrNewValue>
     </oblix:GenericAttribute>

     <oblix:PasswordAttribute>
     <oblix:AttrName>userPassword</oblix:AttrName>
     <oblix:AttrOperation>ADD</oblix:AttrOperation>
           <oblix:AttrNewValue>oblix</oblix:AttrNewValue>
           <oblix:AttrConfirmValue>oblix</oblix:AttrConfirmValue>
     </oblix:PasswordAttribute>

     <oblix:ChallengeAttribute>
     <oblix:AttrName>genChallengePhrase</oblix:AttrName>
     <oblix:AttrOperation>ADD</oblix:AttrOperation>
           <oblix:ChallengeValue>
                 <oblix:AttrNewValue>phrase1</oblix:AttrNewValue>
           </oblix:ChallengeValue>
           <oblix:ChallengeValue>
           <oblix:AttrNewValue>phrase2</oblix:AttrNewValue>
           </oblix:ChallengeValue>
           <oblix:ChallengeValue>
                 <oblix:AttrNewValue>phrase3</oblix:AttrNewValue>
           </oblix:ChallengeValue>
     </oblix:ChallengeAttribute>

     <oblix:ResponseAttribute>
     <oblix:AttrName>genChallengePhraseResponse</oblix:AttrName>
     <oblix:AttrOperation>ADD</oblix:AttrOperation>
            <oblix:ResponseValue>
                  <oblix:AttrNewValue>response1</oblix:AttrNewValue>
                  <oblix:AttrConfirmValue>response1</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
            <oblix:ResponseValue>
                  <oblix:AttrNewValue>response2</oblix:AttrNewValue>
                  <oblix:AttrConfirmValue>response2</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
            <oblix:ResponseValue>
                  <oblix:AttrNewValue>response3</oblix:AttrNewValue>
                  <oblix:AttrConfirmValue>response3</oblix:AttrConfirmValue>
            </oblix:ResponseValue>
     </oblix:ResponseAttribute>

    </oblix:AttributeParams>
   </oblix:params>
  </oblix:request>
 </soapenv:Body>
</soapenv:Envelope>

2.6.2.6 ワークフローによるユーザーの非アクティブ化

関数名 workflowDeactivateUserSave
リクエスト例: <oblix:request application="userservcenter" function="workflowDeactivateUserSave" version="NPWSDL1.0">
説明: ワークフローを使用してユーザーを非アクティブ化する。非アクティブ化されたユーザーに関する情報は、ディレクトリには保持されますが、検索結果には表示されません。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_workflowDeactivateUserSave.wsdl
パラメータ
uid 非アクティブ化されるユーザーのDN。

ルール: 必須。DNの単一値。

ObDomainName 新規エントリを作成する対象のドメインの名前。ドメイン名は、ObWorkflowNameパラメータで参照されるワークフローに定義されている必要があります。

ルール: 必須。DNの単一値。

ObWorkflowName 属性の値の作成または変更に使用するワークフローの名前。

特定のアプリケーションのワークフロー定義の表示メニューで、ObWorkflowNameの完全DNを検索します。

ルール: 必須。DNの単一値。

attrName 必須。ここで必須なのは、各ワークフローに固有の属性です。ここで指定される属性がワークフローで必須でない場合、その属性は無視され、エラーは生成されません。詳細は、「属性パラメータ」を参照してください。
attrOperation 必須。詳細は、「属性パラメータ」を参照してください。
attrNewValue 必須。詳細は、「属性パラメータ」を参照してください。
noOfFields 必須。詳細は、「属性パラメータ」を参照してください。
attrOldValue オプション/必須。attrOperationがREPLACEの場合のみ必須です。
ObWfComment ワークフロー内のステップにコメントを指定する。

ルール: オプション。文字列の単一値。


2.6.2.7 非アクティブなユーザーの表示

非アクティブなユーザーを表示するには、マスター管理者であるか、ターゲット・ユーザーが存在するドメインに対する権限付与およびワークフロー・モニタリングの管理権限が委任されている必要があります。つまり、ターゲット・ユーザーのドメイン内のワークフロー・リクエストを監視できる必要があります。この要件を満たすと、view関数を使用してそのドメイン内の非アクティブなユーザーを表示できます。詳細は、「ユーザー属性の表示」を参照してください。

2.6.2.8 非アクティブなユーザーの検索

関数名 searchDeactivatedUsers
リクエスト例: <oblix:request application="userservcenter" function="searchDeactivatedUsers" version="NPWSDL1.0">
説明: 特定の基準に基づいて非アクティブなユーザーを検索する。1つの検索条件のみが受け入れられます。非アクティブなユーザーは、1つの条件のみに基づいて検索できます。

非アクティブなユーザーを検索するには、マスター管理者であるか、ターゲット・ユーザーが存在するドメインに対する権限付与およびワークフロー・モニタリングの管理権限が委任されている必要があります。つまり、ターゲット・ユーザーのドメイン内のワークフロー・リクエストを監視できる必要があります。この要件を満たすと、searchDeactivatedUsers関数を使用してそのドメイン内の非アクティブなユーザーを検索できます。ただし、結果属性は検索結果表で指定されている属性であるため、通常の検索のようにattrNameを使用して結果属性を指定することはできません。

WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_searchDeactivatedUsers.wsdl
パラメータ
SearchAttr 必須。詳細は、「検索パラメータ」を参照してください。
SearchOperation 必須。詳細は、「検索パラメータ」を参照してください。
SearchString 必須。詳細は、「検索パラメータ」を参照してください。
attrname オプション。値が指定されない場合は、表ビューのデフォルトの属性が使用されます。詳細は、「属性パラメータ」を参照してください。
noOfFields オプション。詳細は、「属性パラメータ」を参照してください。
noOfRecords オプション。検索結果で戻されるエントリの最大数。このパラメータおよびそのデフォルト値は、showAllResultsパラメータでオーバーライドされます。

ルール: オプション。1以上の整数の単一値。

デフォルト: oblixbaseparams.xmlカタログのdefaultDisplayResultValパラメータから取得された値。これ以外の場合は、カスタムCookieから取得されます。

showAllResults 検索のすべての結果をユーザーに戻す。パラメータの値がtrueの場合、noOfRecordsパラメータの値はオーバーライドされます。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false(noOfRecordsパラメータで指定される上限まで結果を戻します)。

sortBy 結果のソートに使用する属性。

ルール: オプション。単一値。

デフォルト: 値が指定されない場合、tab_idで指定されるタブの構造化オブジェクト・クラスのクラス属性が使用されます。

sortOrder 昇順または降順のソート順序。使用可能な値は、ascending(昇順)とdescending(降順)の2つです。

ルール: オプション。単一値。

デフォルト: ascending。

startFrom このパラメータは、検索結果の長いリストで、選択した数の項目をスキップし、指定した項目からリストを開始するために使用する。たとえば、検索で100のエントリが見つかった場合、このパラメータの値として80を入力すると、80〜100の項目のみを示すレスポンスが戻されます。

ルール: オプション。整数の単一値。

デフォルト: 1(検索結果リストの先頭から表示を開始します)。


2.6.2.9 ワークフローによるユーザーの再アクティブ化

関数名 workflowReactivateUserSave
リクエスト例: <oblix:request application="userservcenter" function="workflowReactivateUserSave" version="NPWSDL1.0">
説明: ワークフローを使用してユーザーを再アクティブ化する。再アクティブ化されたユーザーに関する情報は、ディレクトリには保持されますが、検索結果には表示されません。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ um_workflowReactivateUserSave.wsdl
パラメータ
uid 再アクティブ化されるユーザーのDN。

ルール: 必須。DNの単一値。

ObDomainName 新規エントリを作成する対象のドメインの名前。ドメイン名は、ObWorkflowNameパラメータで参照されるワークフローに定義されている必要があります。

ルール: 必須。DNの単一値。

ObWorkflowName 属性の値の作成または変更に使用するワークフローの名前。

特定のアプリケーションのワークフロー定義の表示メニューで、ObWorkflowNameの完全DNを検索します。

ルール: 必須。DNの単一値。

attrName 必須。ここで必須なのは、各ワークフローに固有の属性です。ここで指定される属性がワークフローで必須でない場合、その属性は無視され、エラーは生成されません。詳細は、「属性パラメータ」を参照してください。
attrOperation 必須。詳細は、「属性パラメータ」を参照してください。
attrNewValue 必須。詳細は、「属性パラメータ」を参照してください。
noOfFields 必須。詳細は、「属性パラメータ」を参照してください。
attrOldValue オプション/必須。attrOperationがREPLACEの場合のみ必須です。
ObWfComment ワークフロー内のステップにコメントを指定する。

ルール: オプション。文字列の単一値。


2.7 グループ・マネージャ関数

管理者は、グループ・マネージャを使用してグループを作成または削除し、ユーザーによるグループへのサブスクライブまたはグループからのサブスクライブ解除を可能にできます。通常、グループ・マネージャにより、エンドユーザーはグループの表示やグループ内のメンバーシップへのサブスクライブが可能になります。ユーザーが表示できるグループおよびサブスクリプション権限は、マスター管理者から付与されます。

次の各関数を使用すると、プログラムによってグループ・マネージャ・アプリケーションにアクセスできます。すべての関数は次のような類似した構文を持ちます。

<oblix:request application="groupservcenter" function="name" version="version">

次に例を示します。

<oblix:request application="groupservcenter" function="canIViewGroupProfile" version="NPWSDL1.0">


注意:

versionタグは、Oracle Access Manager 6.5以降のバージョンでIdentityXMLを使用する場合に必須です。

6.5より前のIdentityXMLのversionタグに関するドキュメントは、次のサイトを参照してください。

http://www.oracle.com/technology/


2.7.1 属性の権限をテストする関数

次の各関数では、特定の属性に設定されている読取り、書込み、委任および通知権限を自分自身または別のユーザーが持っているかどうかについて、yesまたはnoのレスポンスを戻します。

2.7.1.1 自分がグループのプロファイルを表示できるかを確認する関数

関数名 canIViewGroupProfile
リクエスト例: <oblix:request application="groupservcenter" function="canIViewGroupProfile" version="NPWSDL1.0">
説明: 自分がグループのプロファイルを表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canIViewGroupProfile.wsdl
パラメータ
uid 表示されるプロファイルを持つグループのDN。

ルール: 必須。DNの単一値。


例2-17に、グループ・プロファイルを表示する機能のテストを示します。

例2-17 グループ・プロファイルを表示する機能のテストの例

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/">

<SOAP-ENV:Body>
<oblix:request application="groupservcenter"
function="canIViewGroupProfile" version="NPWSDL1.0">

<oblix:params>
<oblix:uid>cn=Marketing Team, ou=Marketing, o=Company, c=US
</oblix:uid>
</oblix:params>
</oblix:request>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

2.7.1.2 自分がグループのプロファイル内の属性を表示できるかを確認する関数

関数名 canIViewGroupProfileAttr
リクエスト例: <oblix:request application="groupservcenter" function="canIViewGroupProfileAttr" version="NPWSDL1.0">
説明: 自分がグループのプロファイル内の特定の属性を表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canIViewGroupProfileAttr.wsdl
パラメータ
uid 表示される属性を持つグループのDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.7.1.3 自分がグループのプロファイル内の属性を変更できるかを確認する関数

関数名 canIModifyGroupProfileAttr
リクエスト例: <oblix:request application="groupservcenter" function="canIModifyGroupProfileAttr" version="NPWSDL1.0">
説明: 自分がグループのプロファイル内の特定の属性を変更できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canIModifyGroupProfileAttr.wsdl
パラメータ
uid 変更される属性を持つグループのDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.7.1.4 自分がワークフローを使用してグループのプロファイル内の属性の変更をリクエストできるかを確認する関数

関数名 canIRequestGroupAttrModification
リクエスト例: <oblix:request application="groupservcenter" function="canIRequestGroupAttrModification" version="NPWSDL1.0">
説明: 自分がワークフローを使用してグループのプロファイル内の特定の属性を変更できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canIRequestGroupAttrModification.wsdl
パラメータ
uid 変更される属性を持つグループのDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.7.1.5 自分が新規グループを作成できるかを確認する関数

関数名 canICreateGroup
リクエスト例: <oblix:request application="groupservcenter" function="canICreateGroup" version="NPWSDL1.0">
説明: 自分が新規グループを作成できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canICreateGroup.wsdl
パラメータ
ObDomainName テストをリクエストする対象のサブツリー。

ルール: オプション。DNの単一値。

デフォルト: 値が指定されない場合、アイデンティティ・システムではすべてのドメインでテスト対象の権限があるかどうかをチェックします。

Objectclass 作成するグループが含まれる補助オブジェクト・クラスがある場合は、その補助オブジェクト・クラス。これはグループ・マネージャにのみ適用され、グループ・マネージャでは補助オブジェクト・クラスはグループ・タイプに対応します。

これらの値を検索するには、「アイデンティティ・システム・コンソール」→「グループ・マネージャ構成」→「グループ・タイプ」→「グループ・タイプ・パネルの構成」の順に選択します。グループを選択し、表示された「関連オブジェクト・クラス」の名前を検索します。

ルール: オプション。複数値。


2.7.1.6 自分が既存グループを削除できるかを確認する関数

関数名 canIDeleteGroup
リクエスト例: <oblix:request application="groupservcenter" function="canIDeleteGroup" version="NPWSDL1.0">
説明: 自分が既存グループを削除できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canIDeleteGroup.wsdl
パラメータ
uid 変更対象のエントリDN。

ルール: 必須。DNの単一値。


2.7.1.7 自分がグループにサブスクライブできるかを確認する関数

関数名 canISubscribeToGroup
リクエスト例: <oblix:request application="groupservcenter" function="canISubscribetoGroup" version="NPWSDL1.0">
説明: 自分が特定のグループにサブスクライブできるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canISubscribeToGroup.wsdl
パラメータ
uid サブスクライブ先のグループのDN。

ルール: 必須。DNの単一値。


2.7.1.8 自分がグループからサブスクライブ解除できるかを確認する関数

関数名 canIUnsubscribeFromGroup
リクエスト例: <oblix:request application="groupservcenter" function="canIUnSubscribeFromGroup" version="NPWSDL1.0">
説明: 自分が特定のグループからサブスクライブ解除できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canIUnSubscribeFromGroup.wsdl
パラメータ
uid サブスクライブを解除するグループのDN。

ルール: 必須。DNの単一値。


2.7.1.9 自分がグループのメンバーかを確認する関数

関数名 amIAMember
リクエスト例: <oblix:request application="groupservcenter" function="amIAMember" version="NPWSDL1.0">
説明: この関数は、ログイン・ユーザーがいずれかのグループのメンバーかどうかを判断するために使用する。デフォルトでは、静的なメンバーシップをチェックします。ネストされたメンバーシップや動的なメンバーシップもテストするには、この表の「パラメータ」の項で説明されているオプションのフラグを使用する必要があります。関数memberOfAGroupは、第三者のグループ・メンバーシップの判断に使用します。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_amIAMember.wsdl
パラメータ
uid 問い合せるエントリのDN。

ルール: 必須。DNの単一値。

checkNested ネストされたグループのメンバーシップをチェックする場合は、このパラメータをtrueに設定する。

ルール: オプション。フラグの単一値。

デフォルト: false。

checkDynamic 動的グループのメンバーシップをチェックする場合は、このパラメータをtrueに設定する。

ルール: オプション。フラグの単一値。

デフォルト: false。


2.7.1.10 特定のユーザーがグループのプロファイルを表示できるかを確認する関数

関数名 canUserViewGroupProfile
リクエスト例: <oblix:request application="groupservcenter" function="canUserViewGroupProfile" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが特定のグループのプロファイルを表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canUserViewGroupProfile.wsdl
パラメータ
uid 表示されるプロファイルを持つグループのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

これらのユーザーのDN以外のDNは、このパラメータを使用する関数の対象外ですが、使用することは可能です。

ルール: 必須。DNの単一値。


2.7.1.11 特定のユーザーがグループのプロファイル内の属性を表示できるかを確認する関数

関数名 canUserViewGroupProfileAttr
リクエスト例: <oblix:request application="groupservcenter" function="canUserViewGroupProfileAttr" version="NPWSDL1.0">
説明: 非ログイン・ユーザーがグループのプロファイル内の特定の属性を表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canUserViewGroupProfileAttr.wsdl
パラメータ
uid 表示される属性を持つグループのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

これらのユーザーのDN以外のDNは、このパラメータを使用する関数の対象外ですが、使用することは可能です。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.7.1.12 特定のユーザーがワークフローを使用してグループ・プロファイル内の属性を変更できるかを確認する関数

関数名 canUserRequestGroupAttrModification
リクエスト例: <oblix:request application="groupservcenter" function="canUserRequestGroupAttrModification" version="NPWSDL1.0">
説明: 非ログイン・ユーザーがワークフローを使用して、グループのプロファイル内の特定の属性変更をリクエストできるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canUserRequestGroupAttrModification.wsdl
パラメータ
uid 変更される属性を持つグループのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.7.1.13 特定のユーザーが新規グループを作成できるかを確認する関数

関数名 canUserCreateGroup
リクエスト例: <oblix:request application="groupservcenter" function="canUserCreateGroup" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが新規グループを作成できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canUserCreateGroup.wsdl
パラメータ
proxysourceuid テスト対象の権限を持つユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

ObDomainName テストをリクエストする対象のサブツリー。

ルール: オプション。DNの単一値。

デフォルト: 値が指定されない場合、アイデンティティ・システムではすべてのドメインでテスト対象の権限があるかどうかをチェックします。


2.7.1.14 特定のユーザーが既存グループを削除できるかを確認する関数

関数名 canUserDeleteGroup
リクエスト例: <oblix:request application="groupservcenter" function="canUserDeleteGroup" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが既存グループを削除できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canUserDeleteGroup.wsdl
パラメータ
proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

uid エントリのDN。

ルール: オプション。DNの単一値。


2.7.1.15 特定のユーザーがグループのメンバーかを確認する関数

関数名 memberOfAGroup
リクエスト例: <oblix:request application="groupservcenter" function="memberOfAGroup" version="NPWSDL1.0">
説明: 第三者による、特定のユーザーの特定のグループへのメンバーシップのチェックのためのIdentityXMLリクエスト。デフォルトでは、静的なメンバーシップをチェックします。ネストされたメンバーシップや動的なメンバーシップもテストするには、この表の「パラメータ」の項で説明されているオプションのフラグを使用する必要があります。動的フィルタ属性に対する表示アクセス権が必要です。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_memberOfAGroup.wsdl
パラメータ
proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

uid エントリのDN。

ルール: 必須。DNの単一値。

checkNested ネストされたグループのメンバーシップをチェックする場合は、このパラメータをtrueに設定する。

ルール: オプション。フラグの単一値。

デフォルト: false。

checkDynamic 動的グループのメンバーシップをチェックする場合は、このパラメータをtrueに設定する。

ルール: オプション。フラグの単一値。

デフォルト: false。


2.7.1.16 グループ属性変更のリクエスト

関数名 canUserModifyGroupProfileAttr
リクエスト例: <oblix:request application="groupservcenter" function="canUserModifyGroupProfileAttr" version="NPWSDL1.0">
説明: 非ログイン・ユーザーがグループのプロファイル内の特定の属性を変更できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_canUserModifyGroupProfileAttr.wsdl
パラメータ
uid 変更される属性を持つグループのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.7.1.17 ワークフローによるグループ属性変更のリクエスト

「ワークフローによるユーザー属性変更のリクエスト」を参照してください。ただし、アプリケーション名はgroupservcenterになります。

2.7.2 グループ・マネージャ・アクションを実行する関数

次の各IdentityXML関数を使用すると、次に示すアクションを実行できます。これらの関数は、getおよびset関数です。

2.7.2.1 グループ属性の表示

「ユーザー属性の表示」を参照してください。ただし、アプリケーション名はgroupservcenterになります。

2.7.2.2 グループ属性の変更

関数名 modifyGroup
リクエスト例: <oblix:request application="groupservcenter" function="modifyGroup" version="NPWSDL1.0">
説明: この関数は、グループ属性の変更に使用する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_modifyGroup.wsdl
パラメータ
uid 変更される属性を持つグループのDN。

ルール: 必須。DNの単一値。

attrName 必須。詳細は、「属性パラメータ」を参照してください。
attrOperation 必須。詳細は、「属性パラメータ」を参照してください。
attrNewValue 必須。詳細は、「属性パラメータ」を参照してください。
noOfFields 必須。詳細は、「属性パラメータ」を参照してください。
ObAuxClassesOldValues 置換対象の補助クラス名の古い値。これは、グループに関連付けられている補助クラスの名前情報の変更のみに使用されます。このパラメータは、削除する補助クラス名ごとに1回使用します。

アクセス権のない値を指定しようとすると、「属性ObAuxClassesの値が無効です。」というエラー・メッセージが戻されます。

これらの値を検索するには、「アイデンティティ・システム・コンソール」→「グループ・マネージャ構成」→「グループ・タイプ」→「グループ・タイプ・パネルの構成」の順に選択します。グループを選択し、表示された「関連オブジェクト・クラス」の名前を検索します。

ルール: 属性が補助クラス用であり、ObAuxClassesOperationがREPLACEの場合にのみ必須。それ以外の場合は無視されます。複数値。

ObAuxClassesOperation 属性に実行する操作のタイプ。これは、補助クラスの名前情報の変更のみに使用されます。

有効な値は次のとおりです。

ADD: 補助クラス名を既存の属性に追加します。

DELETE: 補助クラス名を既存の属性から削除します。

REPLACE: 古い補助クラス名を削除し、新規の補助クラス名と置換します。

別の値が指定された場合、または値が指定されない場合は、「属性ObAuxClassesの値が無効です。」というエラー・メッセージが戻されます。

ルール: 属性が補助クラス用の場合にのみ必須。単一値。

ObAuxClassesValues 追加、削除または置換対象の補助クラスの名前。これは、補助クラスの名前情報の変更のみに使用されます。

このパラメータは、追加または削除する補助クラス名ごとに1回使用します。アクセス権のない値を指定しようとすると、「属性ObAuxClassesの値が無効です。」というエラー・メッセージが戻されます。

これらの値を検索するには、「アイデンティティ・システム・コンソール」→「グループ・マネージャ構成」→「グループ・タイプ」→「グループ・タイプ・パネルの構成」の順に選択します。グループを選択し、「関連オブジェクト・クラス」の名前を検索します。

ルール: 属性が補助クラス用の場合は必須。複数値。有効な値は、使用可能な構成済の補助クラスの文字列名です。(補助クラスは、システム・コンソールの「オブジェクト・クラスの構成」機能を使用して構成します。『Oracle Access Manager Administration Guide』を参照してください。)

attrOldValue オプション/必須。attrOperationがREPLACEの場合のみ必須です。これは、完全一致である必要があります。完全一致でない場合、変更は行われません。

詳細は、「属性パラメータ」を参照してください。


2.7.2.3 グループの作成

「ワークフローによるユーザーの作成」を参照してください。ただし、アプリケーション名はgroupservcenterになります。

2.7.2.4 グループの削除

関数名 delete (group)
リクエスト例: <oblix:request application="groupservcenter" function="delete" version="NPWSDL1.0">
説明: この関数は、グループの削除に使用する。この関数に対しては、グループの名前を指定する以外に、制御できることはほとんどありません。使用するワークフローは、アプリケーションにより決定されます。次のすべてを満たすワークフローが選択されます。1)ターゲット・ドメインにグループ・エントリが含まれる、2)自分がワークフローの開始ステップの参加者である、3)削除するグループのグループ・タイプがワークフロー定義内のグループ・タイプのサブセットである。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_delete.wsdl
パラメータ
uid ルール: 必須。DNの単一値。

2.7.2.5 自分がメンバー、所有者または管理者であるグループの取得

関数名 myGroupsProfile
リクエスト例: <oblix:request application="groupservcenter" function="myGroupsProfile" version="NPWSDL1.0">
説明: この関数は、自分自身がメンバー、所有者または管理者であるグループのプロファイルを取得するために使用する。ここで使用されるパラメータは、構成済の「グループ・マネージャ・オプション」をオーバーライドします。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_myGroupsProfile.wsdl
パラメータ
attrName オプション。詳細は、「属性パラメータ」を参照してください。
showAdministratorOfGroups このパラメータは、自分自身または別のユーザーが管理者であるグループをレスポンスに含める場合に使用する。

ルール: オプション。showxxxリスト内の少なくとも1つのパラメータを使用する必要があります。ブール型の単一値、trueまたはfalse。

デフォルト: false。

showDynamicGroups このパラメータは、自分自身または別のユーザーが動的メンバーであるグループをレスポンスに含める場合に使用する。

showMemberOfGroupsも使用する必要があり、trueに設定します。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false。

showMemberOfGroups このパラメータは、自分自身または別のユーザーがメンバーであるグループをレスポンスに含める場合に使用する。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false、オプション。

showNestedGroups このパラメータは、自分自身または別のユーザーがメンバーであるネストされたグループをレスポンスに含める場合に使用する。showMemberOfGroupsも使用する必要があり、trueに設定します。また、showStaticGroupsとshowDynamicGroupsの一方または両方も使用する必要があり、trueに設定します。ルール: オプション。ブール型の単一値、trueまたはfalse。デフォルト: false。
showOwnerOfGroups このパラメータは、自分自身または別のユーザーが所有者であるグループを出力に含める場合に使用する。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false。

showStaticGroups このパラメータは、自分自身または別のユーザーが静的メンバーであるグループをレスポンスに含める場合に使用する。

showMemberOfGroupsも使用する必要があり、trueに設定します。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false。



注意:

showで始まる名前の各オプションでは、優先順位がそれぞれ異なります。パラメータshowOwnerOfGroupsおよびshowAdministratorOfGroupsは、入力された場合は常に適用されます。

showStaticGroups、showDynamicGroupsおよびshowNestedGroupsを使用するには、パラメータshowMemberOfGroupsをtrueに設定する必要があります。ネストされたグループのカテゴリであるshowStaticGroupsおよびshowDynamicGroupsの一方または両方がtrueに設定されている場合にのみ、showNestedGroupsパラメータをtrueに設定できます。IdentityXMLリクエストでは、「システム・コンソール」で設定された可能性のある、構成済の「グループ・マネージャ・オプション」ではなく、これらのオプションを使用します。


2.7.2.6 特定のユーザーがメンバー、所有者または管理者であるグループの取得

関数名 userGroupsProfile
リクエスト例: <oblix:request application="groupservcenter" function="userGroupsProfile" version="NPWSDL1.0">
説明: この関数は、別のユーザーがメンバー、所有者または管理者であるグループのプロファイルを取得するために使用する。
権限: ログイン・ユーザーは、proxysourceuidクラス名属性に対する読取り権限を付与できる必要がある。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_userGroupsProfile.wsdl
パラメータ
proxysourceuid 取得対象のグループ・プロファイルを持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

attrName オプション。詳細は、「属性パラメータ」を参照してください。
showAdministratorOfGroups このパラメータは、自分自身または別のユーザーが管理者であるグループをレスポンスに含める場合に使用する。

ルール: オプション。showxxxリスト内の少なくとも1つのパラメータを使用する必要があります。ブール型の単一値、trueまたはfalse。

デフォルト: false。

showDynamicGroups このパラメータは、自分自身または別のユーザーが動的メンバーであるグループをレスポンスに含める場合に使用する。

showMemberOfGroupsも使用する必要があり、trueに設定します。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false。

showMemberOfGroups このパラメータは、自分自身または別のユーザーがメンバーであるグループをレスポンスに含める場合に使用する。ルール: オプション。ブール型の単一値、trueまたはfalse。デフォルト: false、オプション。
showNestedGroups このパラメータは、自分自身または別のユーザーがメンバーであるネストされたグループをレスポンスに含める場合に使用する。showMemberOfGroupsも使用する必要があり、trueに設定します。また、showStaticGroupsとshowDynamicGroupsの一方または両方も使用する必要があり、trueに設定します。ルール: オプション。ブール型の単一値、trueまたはfalse。デフォルト: false。
showOwnerOfGroups このパラメータは、自分自身または別のユーザーが所有者であるグループを出力に含める場合に使用する。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false。

showStaticGroups このパラメータは、自分自身または別のユーザーが静的メンバーであるグループをレスポンスに含める場合に使用する。

showMemberOfGroupsも使用する必要があり、trueに設定します。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false。


例2-18に、特定のユーザーがメンバー、所有者または管理者であるグループを取得する例を示します。

例2-18 特定のユーザーがメンバー、所有者または管理者であるグループを取得する例

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/"
  xmlns:oblix="http://www.oblix.com">
<SOAP-ENV:Body>
<oblix:request function="userGroupsProfile" mode="dataonly">
<oblix:params>
<oblix:param name="proxysourceuid">cn=dummyuser,o=Person,c=ES</oblix:param>
<oblix:param name="showMemberOfGroups">true</oblix:param>
<oblix:param name="showNestedGroups">true</oblix:param>
</oblix:params>
</oblix:request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

2.7.2.7 グループ・メンバーの表示

関数名 viewGroupMembers
リクエスト例: <oblix:request application="groupservcenter" function="viewGroupMembers" version="NPWSDL1.0">
説明: グループの全メンバーまたは選択したメンバーを表示する。グループの選択したメンバーを取得するには、SearchAttr、SearchOperationまたはSearchStringパラメータを使用します。使用できるのは1つのセットのみです。SStnまたはSearchStringに指定する文字列値の長さは、groupservcenterparams.xmlファイル内のgroupMemberSearchStringMiminumLengthパラメータの値以上である必要があります。この値がゼロに設定されている場合は、SLkn、SStnおよびSTynパラメータ、またはSearchAttr、SearchOperationおよびSearchStringパラメータを使用する必要はなく、グループの全メンバーが検索で戻されます。

この関数では、指定したグループの全メンバーまたは一部のメンバーを取得します。検索は、1つのフィールドに対してのみ可能です。STy1、SLk1およびSSt1、またはSearchString、SearchOperationおよびSearchAttrのいずれかの3つ組のみを使用できます。どの検索パラメータも指定しなければ、管理者がIdentity Server/oblix/apps/groupservcenter/bin/groupservcenterparams.xmlファイル内のgroupMemberSearchStringMiminumLengthパラメータで最小検索長を0に設定している場合、この関数ではグループの全メンバーを戻します。これが0に設定されている場合、検索ではグループの全メンバーを戻します。これが0以外の場合、検索の3つ組を指定する必要があり、SSt1で指定される検索対象文字列がgroupMemberSearchStringMiminumLengthパラメータで指定されている文字数以上である必要があります。

グループ・メンバーを表示するためのアクセス制御要件は次のとおりです。

1. いずれかのメンバー(静的、動的またはネストされたメンバー)を表示するには、「メンバー」属性に対する表示権限が必要です。

2. 動的メンバーを表示するには、「動的フィルタ」属性に対する表示権限も必要です。

権限: いずれかのメンバー(静的、動的またはネストされたメンバー)を表示するには、「メンバー」属性に対する表示権限が必要。動的メンバーを表示するには、「動的フィルタ」属性に対する表示権限も必要です。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_viewGroupMembers.wsdl
パラメータ
uid リストされるメンバーを持つグループのDN。

ルール: 必須。DNの単一値。

attrName オプション。この1つ以上のインスタンスを使用して、各グループ・メンバーに対して表示する属性を指定します。各属性の表示名ではなく、LDAP名を使用します。特定の属性を指定しない場合、デフォルトではPersonオブジェクト・クラスのクラス属性が表示されます。詳細は、「属性パラメータ」を参照してください。
memberIDsOnly オプション。値はtrueまたはfalseです。このフラグを設定すると、他の属性をリクエストしても、クラス属性のみが戻されます。この制限があるのは、アイデンティティ・システムではデータをディレクトリではなくキャッシュから読み取るためです。この機能は、最初のリクエスト後に、すべてのキャッシュが初期化された後にのみ有効になります。このフラグの長所は、ディレクトリのヒットが最小限に抑えられることです。

このフラグがtrueに設定されている場合、クラス属性と、いずれかの検索基準に一致した属性を除き、attrNameパラメータでリクエストされた属性は無視されます。

ルール: オプション。ブール型、trueまたはfalse。

デフォルト: false。

showDynamicUserMembers グループの動的メンバーをレスポンスに含めるかどうかを指定する。

ルール: オプション。リスト内の少なくとも1つのshowパラメータを使用する必要があり、trueに設定します。ブール型の単一値、trueまたはfalse。

デフォルト: false。

showNestedUserMembers グループのネストされたメンバーをレスポンスに含めるかどうかを指定する。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false。

showStaticUserMembers オプション。
SearchAttr 必須。詳細は、「検索パラメータ」を参照してください。
SearchOperation 必須。詳細は、「検索パラメータ」を参照してください。
SearchString 必須。詳細は、「検索パラメータ」を参照してください。
groupMemberType userやgroupなど、表示するメンバーのタイプを指定する。値は、表示するオブジェクトのタイプを含むオブジェクト・クラスのLDAP名です。これは単一値属性です。一度に1タイプのグループ・メンバーのみを取得できます。ネストされたメンバーおよび動的メンバーの評価は、ユーザーであるメンバーにのみ実行されます。この評価は、グループまたは汎用オブジェクトであるメンバーには実行されません。

ルール: 必須。


2.7.2.8 グループの拡張

関数名 expandGroup
リクエスト例: <oblix:request application="groupservcenter" function="expandGroup" version="NPWSDL1.0">
説明: 動的グループをその現在の静的メンバーに拡張する。
権限: グループを拡張するには、ユーザーは、グループ名と属性の「グループ動的フィルタ」および「グループ拡張」に対する表示権限と、「メンバー」属性に対する変更権限が必要。グループ動的フィルタは、セマンティク型の動的フィルタの属性です。「グループ拡張」は、oblixadvancedgroup補助オブジェクト・クラスのタイプobgroupexpandeddynamicの属性です。「メンバー」は、セマンティク型の静的メンバーの属性です。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_expandGroup.wsdl
パラメータ
groupsToExpand 拡張対象のターゲット・グループ。このパラメータまたは次のパラメータの指定が必要です。

ルール: オプション。DNの複数値。

expandAllGroups 拡張権限のあるすべてのグループを拡張する。trueに設定されている場合、この権限のあるすべてのグループが拡張されます。falseに設定されている場合、groupsToExpandパラメータで指定されたグループのみが拡張されます。

ルール: オプション。ブール型の単一値、trueまたはfalse。

デフォルト: false。


2.7.2.9 グループ・キャッシュのフラッシュ

関数名 flushGroupCache
リクエスト例: <oblix:request application="groupservcenter" function="flushGroupCache" version="NPWSDL1.0">
説明: この関数は、グループ・キャッシュからのグループの削除に使用する。この表の「パラメータ」の項に記載されている2つのパラメータのいずれかを指定する必要があります。
権限: グループ・キャッシュをフラッシュするには、マスター管理者である必要がある。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_flushGroupCache.wsdl
パラメータ
flushGroup オプション。値として指定されたDNを持つグループをグループ・キャッシュから削除します。
flushGroupAll オプション。値がtrueの場合、すべてのグループをグループ・キャッシュから削除します。

2.7.2.10 グループへのユーザーのサブスクライブ

関数名 subscribeUserToGroup
リクエスト例: <oblix:request application="groupservcenter" function="subscribeUserToGroup" version="NPWSDL1.0">
説明: 自分以外のユーザーをグループに追加(サブスクライブ)する。対象のユーザーのログインは不要です。レスポンスでは、グループのプロファイルが戻されます。
結果: 出力は、スキーマ・ファイルoblix\WebServices\XMLSchema\gsc_groupprofile.xsdで定義されているグループのプロファイル。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ gm_subscribeUserToGroup.wsdl
パラメータ
uid サブスクライブ先のグループのDN。このDNは、ログイン・ユーザーの検索ベース内にある必要があります。

ルール: 必須。DNの単一値。

proxysourceuid グループにサブスクライブする非ログイン・ユーザーのDN。このDNは、ログイン・ユーザーの検索ベース内にある必要があります。

ルール: 必須。DNの単一値。


2.8 組織マネージャ関数

管理者は、組織マネージャを使用して、組織や、ユーザー・マネージャまたはグループ・マネージャに属さないその他のオブジェクト(フロア配置や資産など)を作成および削除できます。組織マネージャでは、エンドユーザーはフロア配置などの組織のエンティティを表示できます。ユーザーが表示できる組織のエンティティは、マスター管理者から付与される権限によって異なります。

次の各IdentityXML関数を使用すると、プログラムによって組織マネージャにアクセスできます。すべての関数は次のような類似した構文を持ちます。

<oblix:request application="objservcenter" function="name" version="version">

次に例を示します。

<oblix:request application="objservcenter" function="canIViewObjectProfile" version="NPWSDL1.0">

注意:

versionタグは、Oracle Access Manager 6.5以降のバージョンでIdentityXMLを使用する場合に必須です。

6.5より前のIdentityXMLのversionタグに関するドキュメントは、次のサイトを参照してください。

http://www.oracle.com/technology/


2.8.1 属性の権限をテストする関数

次の各関数では、特定の属性に設定されている読取り、書込み、委任および通知権限を自分自身または別のユーザーが持っているかどうかについて、yesまたはnoのレスポンスを戻します。

2.8.1.1 自分がオブジェクトのプロファイルを表示できるかを確認する関数

関数名 canIViewObjectProfile
リクエスト例: <oblix:request application="objservcenter" function="canIViewObjectProfile" version="NPWSDL1.0">
説明: 自分が組織のプロファイルを表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canIViewObjectProfile.wsdl
パラメータ
uid 表示されるプロファイルを持つ組織のDN。

ルール: 必須。DNの単一値。


2.8.1.2 自分がオブジェクトのプロファイル内の属性を表示できるかを確認する関数

関数名 canIViewObjectProfileAttr
リクエスト例: <oblix:request application="objservcenter" function="canIViewObjectProfileAttr" version="NPWSDL1.0">
説明: 自分が組織のプロファイル内の特定の属性を表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canIViewObjectProfileAttr.wsdl
パラメータ
uid 表示される属性を持つ組織のDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.8.1.3 自分がオブジェクトのプロファイル内の属性を変更できるかを確認する関数

関数名 canIModifyObjectProfileAttr
リクエスト例: <oblix:request application="objservcenter" function="canIModifyObjectProfile" version="NPWSDL1.0">
説明: 自分が組織のプロファイル内の特定の属性を変更できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canIModifyObjectProfileAttr.wsdl
パラメータ
uid 変更される属性を持つ組織のDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.8.1.4 自分がワークフローを使用してオブジェクトのプロファイル内の属性の変更をリクエストできるかを確認する関数

関数名 canIRequestObjectAttrModification
リクエスト例: <oblix:request application="objservcenter" function="canIRequestObjectAttrModification" version="NPWSDL1.0">
説明: 自分がワークフローを使用して組織のプロファイル内の特定の属性を変更できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canIRequestObjectAttrModification.wsdl
パラメータ
uid 変更される属性を持つ組織のDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.8.1.5 自分が新規オブジェクトを作成できるかを確認する関数

関数名 canICreateObject
リクエスト例: <oblix:request application="objservcenter" function="canICreateObject" version="NPWSDL1.0">
説明: 自分が新規の組織を作成できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canICreateObject.wsdl
パラメータ
ObDomainName テストをリクエストする対象のサブツリー。

ルール: オプション。DNの単一値。

デフォルト: 値が指定されない場合、アイデンティティ・システムではすべてのドメインでテスト対象の権限があるかどうかをチェックします。


2.8.1.6 自分が既存オブジェクトを削除できるかを確認する関数

関数名 canIDeleteObject
リクエスト例: <oblix:request application="objservcenter" function="canIDeleteObject" version="NPWSDL1.0">
説明: 自分が既存オブジェクトを削除できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canIDeleteObject.wsdl
パラメータ
uid ルール: 必須。DNの単一値。

2.8.1.7 特定のユーザーがオブジェクトのプロファイルを表示できるかを確認する関数

関数名 canUserViewObjectProfile
リクエスト例: <oblix:request application="objservcenter" function="canUserViewObjectProfile" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが組織のプロファイルを表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canUserViewObjectProfile.wsdl
パラメータ
uid 表示されるプロファイルを持つ組織のDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。


2.8.1.8 特定のユーザーがオブジェクトのプロファイル内の属性を表示できるかを確認する関数

関数名 canUserViewObjectProfileAttr
リクエスト例: <oblix:request application="objservcenter" function="canUserViewObjectProfileAttr" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが組織のプロファイル内の特定の属性を表示できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canUserViewObjectProfileAttr.wsdl
パラメータ
uid 表示される属性を持つ組織のDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

targetAttribute 属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.8.1.9 特定のユーザーがオブジェクトのプロファイル内の属性を変更できるかを確認する関数

関数名 canUserModifyObjectProfileAttr
リクエスト例: <oblix:request application="objservcenter" function="canUserModifyObjectProfileAttr" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが組織のプロファイル内の特定の属性を変更できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canUserModifyObjectProfileAttr.wsdl
パラメータ
uid 変更される属性を持つオブジェクトのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.8.1.10 特定のユーザーが新規オブジェクトを作成できるかを確認する関数

関数名 canUserCreateObject
リクエスト例: <oblix:request application="objservcenter" function="canUserCreateObject" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが新規オブジェクトを作成できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\om_canUserCreateObject.wsdl
パラメータ
proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

ObDomainName テストをリクエストする対象のサブツリー。

ルール: オプション。DNの単一値。

デフォルト: 値が指定されない場合、アイデンティティ・システムではすべてのドメインでテスト対象の権限があるかどうかをチェックします。


2.8.1.11 特定のユーザーが既存オブジェクトを削除できるかを確認する関数

関数名 canUserDeleteObject
リクエスト例: <oblix:request application="objservcenter" function="canUserDeleteObject" version="NPWSDL1.0">
説明: 非ログイン・ユーザーが既存の組織を削除できるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canUserDeleteObject.wsdl
パラメータ
proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

uid ルール: 必須。DNの単一値。

2.8.1.12 特定のユーザーがオブジェクト属性の変更をリクエストできるかを確認する関数

関数名 canUserViewObjectAttrModification
リクエスト例: <oblix:request application="objservcenter" function="canUserRequestObjectAttrModification" version="NPWSDL1.0">
説明: 非ログイン・ユーザーがワークフローを使用して、オブジェクトのプロファイル内の特定の属性の変更をリクエストできるかどうかを検証する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_canUserRequestObjectAttrModification.wsdl
パラメータ
uid 変更される属性を持つオブジェクトのDN。

ルール: 必須。DNの単一値。

proxysourceuid テスト対象のアクセス権を持つ非ログイン・ユーザー(プロキシ・ユーザー)のDN。

ルール: 必須。DNの単一値。

targetAttribute 対象の属性のスキーマ名(表示名ではありません)。

ルール: 必須。文字列の単一値。


2.8.2 組織マネージャのアクションを実行する関数

次の各IdentityXML関数を使用すると、組織マネージャでアクションを実行できます。これらの関数は、getおよびset関数です。

2.8.2.1 オブジェクト属性の表示

詳細は、「ユーザー属性の表示」を参照してください。

2.8.2.2 オブジェクト属性の変更

関数名 modifyObject
リクエスト例: <oblix:request application="objservcenter" function="modifyObject" version="NPWSDL1.0">
説明: この関数は、オブジェクト属性の変更に使用する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_modifyObject.wsdl
パラメータ
uid 変更される属性を持つオブジェクトのDN。

ルール: 必須。DNの単一値。

attrName オプション。attrNameが指定されない場合は、コール元が表示アクセス権を持つエントリのすべての属性が戻されます。このパラメータは、少数の属性を変更し、変更コールの結果でそれらの属性のみを戻す場合に便利です。この方法により、プロファイルに多数の属性が含まれる場合のパフォーマンスを軽減できます。詳細は、「属性パラメータ」を参照してください。
attrOperation 必須。詳細は、「検索パラメータ」を参照してください。
attrNewValue 必須。詳細は、「属性パラメータ」を参照してください。
noOfFields 必須。詳細は、「属性パラメータ」を参照してください。
attrOldValue 必須/オプション。attrOperationがREPLACEの場合のみ必須です。

2.8.2.3 ワークフローによるオブジェクト属性変更のリクエスト

「ワークフローによるユーザー属性変更のリクエスト」を参照してください。

2.8.2.4 オブジェクトの作成

詳細は、「ワークフローによるユーザーの作成」を参照してください。

2.8.2.5 自己登録

詳細は、「ワークフローによる自己登録」を参照してください。

2.8.2.6 オブジェクトの削除

関数名 delete (organization)
リクエスト例: <oblix:request application="objservcenter" function="delete" version="NPWSDL1.0">
説明: この関数は、組織の削除に使用する。
WSDLファイル: WebPass_install_dir\oblix\WebServices\WSDL\ om_delete.wsdl
パラメータ
uid 変更される属性を持つグループのDN。

ルール: 必須。DNの単一値。

ObWorkflowName 属性の値の作成または変更に使用するワークフローの名前。

特定のアプリケーションのワークフロー定義の表示メニューで、ObWorkflowNameの完全DNを検索します。

ルール: 必須。DNの単一値。

ObWfComment ワークフロー内のステップにコメントを指定する。

ルール: オプション。文字列の単一値。

noOfFields オプション/必須。詳細は、「属性パラメータ」を参照してください。
attrName オプション。指定する属性は、アイデンティティ・システム・コンソールで構成されている属性である必要があり、ユーザー、グループまたは組織の「プロファイルの表示」用に構成されたパネルのいずれかに含まれている必要があります。これ以外の属性は、無効であるとみなされます。詳細は、「属性パラメータ」を参照してください。
attrValue 詳細は、「属性パラメータ」を参照してください。
attrNewValue 必須。詳細は、「属性パラメータ」を参照してください。
attrOldValue オプション/必須。attrOperationがREPLACEの場合のみ必須です。

2.9 デプロイ済IdentityXML関数のコード例

次の各項では、IdentityXMLをパッケージ化およびデプロイする方法の例を示します。

2.9.1 Javaアプリケーションの例

例2-19では、ファイルに含まれているSOAPメッセージをHTTPでアイデンティティ・システム・アプリケーションに送信します。

この例のコードは次にあります。

Component_install_dir\identity\oblix\unsupported\integsvs\

例2-19に、IdentityXMLプログラミングの基本を示します。たとえば、アイデンティティ・システムのスクリプトは、このような手法で作成できます。作成済のメッセージを送信するなどの1つの操作を行う簡単なプログラムを複数作成し、これらのプログラムをPerlまたはシェル・スクリプトで結合すると、より複雑なタスクをアイデンティティ・システムで実行できます。メッセージの内容に関する情報は、IdentityXMLクライアント側にある必要はありません。

例2-19 SOAPを使用してアイデンティティ・システムに問合せを行うJavaの例

/**
 * This is a very simple SOAP example of how to invoke Oracle Access Manager
 * through SOAP.
 *
 * This program will make a soap request (send the request in soap.xml)
 * to the argument hostname:port/oblix/apps/corpdir/bin/corpdir.cgi
 *
 * Requirements:
 * *** ObSoapClient, a complete http client library from innovation, is
 *     required to run this test.  The software is free, and licensed under the
 *     GNU Lesser General Public License.
 *     HTTPClient is available at http://www.innovation.ch/java/HTTPClient
 *     This program has been tested with HTTPClient Version 0.3-2
 *
 * To run:
 * *** java ObSoapClient [-h hostname] [-p port] [-f inputfile] [-u oblixurl]
 *
 */

import java.net.URL;
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
import HTTPClient.CookieModule;
import HTTPClient.HTTPConnection;
import HTTPClient.HTTPResponse;
import HTTPClient.ModuleException;
import HTTPClient.NVPair;

public class ObSoapClient
{
        static String hostname = "sunlight.oracle.com";
        static String filename = "soap.xml";
        static int port = 80;
        static String oburl = "/identity/oblix/apps/userservcenter/bin/userservcenter.cgi";

        public static void collectArgs(String args[])
        {
                for (int i = 0; i < args.length; i++) {
                        if (args[i].equals("-h") && args.length >= i+1)
                                hostname = args[i+1];
                        else if (args[i].equals("-f") && args.length >= i+1)
                                filename = args[i+1];
                        else if (args[i].equals("-p") && args.length >= i+1)
                                port = Integer.parseInt(args[i+1]);
                        else if (args[i].equals("-u") && args.length >= i+1)
                                oburl = args[i+1];
                        else if (args[i].equals("-h") || args[i].equals("-help")) {
                                System.out.println("Usage: java ObSoapClient [-h hostname] [-p port] [-f filename] [-u oblixurl] \n");
                        }
                }
        }

        /**
   * Read from soap.xml in current directory and return as string.
         */
        public static String getRequestFromFile()
        {
                StringBuffer data = new StringBuffer();
                try {
                        BufferedReader reader = new BufferedReader(new FileReader(filename));

                        for (String line = reader.readLine(); line != null;
                                line = reader.readLine()) {
                                data.append(line);
                                data.append("\r\n");
                        }
                } catch (Exception e) {
                        System.out.println(e.toString());
                }
                return data.toString();
        }

        public static void main(String args[]) throws Exception
        {
                try {
                        CookieModule.setCookiePolicyHandler(null);

                        // initiate connection
                        collectArgs(args);
                        HTTPConnection con = new HTTPConnection(hostname, port);

                        // collect response
                        NVPair header[] = new NVPair[1];
                        header[0] = new NVPair("Content-Type", "text/xml");
                        HTTPResponse rsp =
                                con.Post(oburl,
                                getRequestFromFile(),
                                header);

                        // get status and act accordingly
                        if (rsp.getStatusCode() >= 300) {
                                System.err.println("Received Error: "+rsp.getReasonLine());
                                System.err.println(new String(rsp.getData()));
                        } else
                                System.out.println(new String(rsp.getData()));
                } catch (IOException ioe) {
                        System.err.println(ioe.toString());
                } catch (ModuleException me) {
                        System.err.println("Error handling request: " + me.getMessage());
                } catch (Exception e) {
                        System.out.println(e.toString());
                }
        }

}

/*
        NVPair form_data[] = new NVPair[2];

        form_data[0] = new NVPair("login", "J.Smith");
        form_data[1] = new NVPair("password", "J.Smith");
//      form_data[2] = new NVPair("uid",
//              "cn=John Smith,ou=Corporate,o=Company,c=US");
//      form_data[3] = new NVPair("program", "personPage");
//      form_data[4] = new NVPair("tab_id", "Employees");

//      HTTPResponse rsp = con.Post("/oblix/apps/corpdir/bin/corpdir.cgi", form_data);

*/

ファイルを調べ、送信するファイルをアプリケーションの現在のディレクトリにコピーし、ディレクトリに適したパラメータ(表示リクエストに有効なuidなど)を指定するよう、このXMLファイル内のリクエスト・パラメータを変更します。Innovation社のHTTPClientパッケージがCLASSPATHにあることを確認してください。その後、次のコマンドを使用してリクエストを送信します。

java Lookup -f inputfile [-h hostname] [-p port][-u oblixurl]

2.9.2 Javaサーブレットの例

この例は、前述の例に基づいています。この例は、Webサーバーまたはアプリケーション・サーバー内で実行されるJavaサーブレットです。結果を出力するのみではサーブレットに有用ではないため、ここでは、アイデンティティ・システムの属性値を使用してHTMLページを動的に生成する簡単な例を示します。サーブレットでは、SOAPメッセージによりユーザー・マネージャ表示プログラムが起動され、ユーザー・プロファイル・データがレスポンスとして取得されると想定しています。次に、JAXP XMLパーサーを使用してユーザー・プロファイルを含むSOAPメッセージを解析し、表示中のユーザーの電子メール・アドレス属性を抽出します。

このサーブレットを実行する前にユーザー・マネージャにログインし、参照するユーザーの電子メール属性が赤または緑で表示されるように編集した場合、表示されるHTMLページの生成時にその値がサーブレットで使用されるようになります。この値は、このページ上のBODY要素のBGCOLOR属性と、その出力に使用されます。有効な色または#RRGGBB値を指定すると、このページはその色で表示されます。

サーブレットでは、次のリクエストでユーザー・プロファイルがユーザー・マネージャから表示されると想定します。このリクエスト、およびその他多くの例は、次の場所にインストールされています。

unsupported/integsvcs/um_view.xml

ディレクトリに有効なユーザーのuidを指定するには、リクエスト・ファイルをコピーおよび変更する必要があります。このファイルをサーブレットの現在の作業ディレクトリに格納するか、ファイルの読取り時にフルパスを指定してください。

例2-20は、リクエスト・ファイルの例です。

例2-20 リクエスト・ファイルの例

<?xml version="1.0" ?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas-xmlsoap.org/soap/envelope/"
xmlns:oblix="http://www.oblix.com">

<SOAP-ENV:Body>
<oblix:authentication xmlns:oblix="http://www.oblix.com" type="basic">
<oblix:login>user1k1</oblix:login>
<oblix:password>oblix</oblix:password>
</oblix:authentication>

<oblix:request function="view" version="NPWSDL1.0">
<oblix:params>
<oblix:uid>cn=Rohit Valiveti,ou=Sales, ou=Dealer1k1,ou=Latin America,
ou=Ford,o=Company,c=US</oblix:uid>
<oblix:attrName>mail</oblix:attrName>
</oblix:params>
</oblix:request>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

このリクエストは、コードで簡単に作成できますが、この例のためにファイルとして格納されています。SOAPメッセージの一般的な構造と、リクエストされているパラメータ要素に注目してください。

例2-21は、MyobServeletのコードです。MyobServeletでは、このリクエストを送信し、結果を解析し、リクエストの結果としてHTMLページを動的に生成します。MyobServeletはHttpServletから導出されています。このサーブレットでは、JAXP(Sun社から無料で入手できるXML用のSAXパーサー)とHTTPClient(Innovation社から無料で入手できるHTTPクライアント・パッケージ)を使用します。このようなパッケージの使用を選択するか、必要に応じて独自のパッケージと統合できます。

例2-21 MyobServelet.java

/**
* This example illustrates how to use the
* Identity System via the IdentityXML interface from a Java servlet.
* The example uses two freely available third-party Java packages:
*   1. HTTPClient, from Innovation
*          (http://www.innovation.ch/java/HTTPClient)
*   2. JAXP, from Sun Microsystems
*         (http://java.sun.com/xml/xml_jaxp.html)
* HTTPClient encapsulates the client side of the HTTP protocol.
* JAXP provides APIs for XML parsing and XSL processing.
*
* What This Servlet Does:
* This servlet reads a SOAP request from a text file /tmp/um_view.xml.
* It could quite easily have hard-coded the request, or built it
* from parameters, or fetched it from a database.  Reading it from
* a file just provides some simple flexibility and allows the code
* to be uncluttered with that detail.  The servlet uses HTTPClient
* to connect to the web server hosting the Identity System,
* sends the SOAP message to the User Manager application's URL
* (hard-coded in this example), and receives the response.  It then
* creates an XML parser, and uses a custom document handler,
* MyObReader, to handle only those elements of interest during the
* parse. In this case, MyObReader only cares about the ObEmail
* element.  When it finds the element, it stores the value, which
* is then available to this servlet via the MyObReader.getEmail()
* method after parsing.
*
* As an HTTPServlet, a natural response for this servlet is an
* HTML page.  To illustrate use of Identity data in building the
* page returned, this servlet does something a little unusual: it
* uses the value of the user's email address as a color, and uses
* it to set BGCOLOR attribute of the BODY element in the output HTML.
*
* To demonstrate the example, you should edit the SOAP message to
* specify the DN of the user profile in your Identity System that
* you want to use.  Then, logged in as an NP admin, change the
* user's email address to a valid HTML color value. like "green"
* or an RGB value, like "#ffddff".  Then run the servlet (i.e.
* install in your WS and fetch .../servlets/EmailColor). The
* page built by the servlet should appear, with its background
* rendered in the color you saved as the email address.
*
* The helper class, MyObReader, extends the DefaultHandler content
* handler of JAXP by adding handler methods for the ObEmail element
* and its nested ObValue element containing the email address,
* which is what this example is looking up. After the parse,
* the helper class is queried for the email address, and this
* is added to the HTTPSerlvlet output stream (a simple HTML page)
* which is sent back to the browser.
* To run:
*   Edit the SOAP message file, and make sure the hard-coded
*   path in this class points to where you saved the SOAP message.
*   Build the MyObServlet class and the MyObReader helper class.
*   Put the class files and JAR files for these two classes, plus
*   the HTTPClient package and JAXP in your web server's classpath
*   for servlets. For iPlanet Web Server, you can find this
*   in the console under
*   Servlets/Configure JVM Attributes/Classpath.
*   Restart your web server if necessary.
*   Point your browser at <yourServletRoot>/ObSoapClient
*/
import java.io.*;
import java.net.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import HTTPClient.*;
// JAXP packages
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class MyObServlet extends HttpServlet{
   // Host and port of the web server for the Identity System
   static String hostname = "localhost";
   static String filename = "c:/temp/um_view.xml"; // NT PATH !
        static int port = 80;

   // URL for User Manager
   static String oburl =
         "/identity/oblix/apps/userservcenter/bin/
            userservcenter.cgi";

   public static String getRequestFromFile(HttpServlet s){
      StringBuffer data = new StringBuffer();
      try      {
               BufferedReader reader = new BufferedReader
                     (new FileReader(filename));

               for (String line = reader.readLine(); line != null;
                                line = reader.readLine()){
                  data.append(line);
               }
            } catch (Exception e) {
                        s.getServletContext().log(e.toString());
            }
      return data.toString();
   }
public void doGet(HttpServletRequest req,
                        HttpServletResponse res)
         throws ServletException, IOException {
      try {
         CookieModule.setCookiePolicyHandler(null);
         // Initiate new HTTP connection to WebPass server
         HTTPConnection con = new HTTPConnection(hostname, port);
         // Send SOAP message, collect response
         NVPair header[] = new NVPair[1];
         header[0] = new NVPair("Content-Type", "text/xml");
         String rqString = getRequestFromFile(this);
         getServletContext().log("request is: " + rqString);
         HTTPResponse rsp = con.Post(oburl, rqString, header);

         // Check HTTP status and act accordingly
         if (rsp.getStatusCode() >= 300) {

            getServletContext().log("Received Error:
                  "+rsp.getReasonLine());
            getServletContext().log(new String(rsp.getData()));

         } else {

            // HTTP success

               getServletContext().log
                  ("got SOAP result. next is parsing.");

            // Create a JAXP SAXParserFactory and configure it
               SAXParserFactory spf =
                     SAXParserFactory.newInstance();
               spf.setValidating(false);

               XMLReader xmlReader = null;
               try {
               // Create a JAXP SAXParser
                  SAXParser saxParser = spf.newSAXParser();

                  // Get the encapsulated SAX XMLReader
                  xmlReader = saxParser.getXMLReader();
               } catch (Exception ex) {
                     getServletContext().log(ex, ex.toString());
                     System.exit(1);
               }
// Set the ContentHandler of the XMLReader
               // Keep our content handler around to query later
               MyObReader myHandler = new MyObReader();
               xmlReader.setContentHandler(myHandler);
               // Set an ErrorHandler before parsing
               xmlReader.setErrorHandler
                     (new MyErrorHandler(System.err));
               try {
               // parse the XML document
                  xmlReader.parse
                        (new InputSource(rsp.getInputStream()));
                  res.setContentType("text/html");
                  PrintWriter out = res.getWriter();
                  out.println("<HTML>");
                  out.println("<HEAD>");
                  out.println("<TITLE>");
                  out.println("Identity System via Servlet");
                  out.println("</TITLE>");
                  out.println("</HEAD>");
               // the example assumes an admin has set
               // the email address to a color value instead
                  String emailAddress = myHandler.getEmail();
                  String bgColorAttr = "bgcolor=\"" +
                        emailAddress.trim() + "\"";
                  out.println("<BODY " + bgColorAttr + ">");
                  out.println("<H1>");
                  out.println("Identity System via Servlet");
                  out.println("</H1>");
                  out.println("<P>");
                  out.println("The e mail address is: "
                        + emailAddress);
                  out.println("</P>");
                  out.println("</BODY>");
                  ut.println("</HTML>");
               }  catch (SAXException se) {
                  getServletContext().log(se, se.getMessage());
                  System.exit(1);
               } catch (IOException ioe) {
                  getServletContext().log(ioe, ioe.getMessage());
                  System.exit(1);
               }       }
         } catch (IOException ioe) {
            getServletContext().log(ioe, ioe.getMessage());
         } catch (ModuleException me) {
            getServletContext().log(me, "Error handling request: "
            +    me.getMessage());
         } catch (Exception e) {
            getServletContext().log(e, e.toString());   }       }
// Error handler to report errors and warnings
   private static class MyErrorHandler implements ErrorHandler {
      /** Error handler output goes here */
      private PrintStream out;

      MyErrorHandler(PrintStream out) {
      this.out = out;
      }

/**
* Returns a string describing parse exception details
*/
      private String getParseExceptionInfo(SAXParseException spe) {
         String systemId = spe.getSystemId();
         if (systemId == null) {
            systemId = "null";
         }
         String info = "URI=" + systemId +
            " Line=" + spe.getLineNumber() +
         ": " + spe.getMessage();
         return info;
      }

// The following methods are standard SAX ErrorHandler methods.
// See SAX documentation for more info.

      public void warning(SAXParseException spe)
            throws SAXException {
         out.println("Warning: " + getParseExceptionInfo(spe));
      }

      public void error(SAXParseException spe)
            throws SAXException {
         String message = "Error: " + getParseExceptionInfo(spe);
         throw new SAXException(message);
      }

      public void fatalError(SAXParseException spe)
            throws SAXException {
         String message = "Fatal Error: "
               + getParseExceptionInfo(spe);
         throw new SAXException(message);
      }
   }
}

例2-22に、MyObReaderのコードを示します。

例2-22 MyobServelet.java

/*
* A simple SAX content handler that locates
* an email address in the Identity System
* SOAP response for a User Manager 'view' operation.
* This class extends DefaultHandler provided by JAXP package
* by adding start/end element and character handler methods to
* help in locating the data we are after, and an accessor method
* for our client to extract the data.
*
* Note:
*    This helper class makes assumptions, including
*    its intimate knowledge of the structure of its input.
*    If more than one email address is found, that information
*    is lost. This class is to illustrate the technique.
*    Requirements:
*       JAXP
*/
// APache XML packages
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.util.*;
import java.io.*;
public class MyObReader extends DefaultHandler {
   private boolean inEmail = false;
   private boolean inEmailValue = false;
   private String theEmail = "no.email.address.found";
   // HANDLERS ///////////////////////////////////////////////
   // parser calls this for each element in a document
   public void startElement(String namespaceURI, String localName,
         String rawName, Attributes atts)
         throws SAXException{
      if (localName.equals("ObEmail")) {
         inEmail = true;
      }
      if (inEmail && localName.equals("ObValue")) {
         inEmailValue = true;      }
   }
   // parser calls this for each element in a document
   public void endElement(String namespaceURI, String localName,
         String rawName)
         throws SAXException{
      // Are we closing an ObEmail?
      if (inEmail && localName.equals("ObEmail")) {
         inEmail = false;
      }
      // Are we closing an ObEmail/ObValue?
      if (inEmailValue && localName.equals("ObValue")) {
         inEmailValue = false;      }    }
// parser calls this for character content found inside
   // elements.
   // captures characters while inside an ObEmail/ObValue
   public void characters(char[] ch, int start, int length)
         throws SAXException{
      if (!inEmailValue) return;
      theEmail = new String(String.copyValueOf(ch,start,length));
   }

   // ACCESSORS /////////////////////////////////////////////////
   public String getEmail() {
      return new String(theEmail);
   }
}

サーブレットでは、まず、HTTPConnectionオブジェクトを使用してアイデンティティ・システムへの接続を確立します(指定したWebサーバー上のWebPassを使用)。次に、前述の例で示したリクエストを含むSOAPメッセージをファイルから読み取り、HTTPClientオブジェクトを使用してSOAPメッセージをサーバーにポストします。

WebPassでは、リクエストがSOAPメッセージであることを認識し、アイデンティティ・システムのIdentityXML処理ロジック解釈機能に渡します。メッセージが検証されると、内部のIdentityXMLリクエストが処理されます。リクエストから生成されたデータとレスポンス・コードは、パッケージ化され、SOAPレスポンスとしてサーブレットに返信されます。リクエストで正しいレスポンス・コードが生成されたことを確認した後、サーブレットはJAXP SAXパーサーを作成および構成し、データ内の電子メール・アドレス属性をスキャンするカスタム・コンテンツ・ハンドラであるMyObReaderに渡します。

ドキュメントが正しく解析されると、MyObReaderオブジェクトによりそのgetEmail()メソッドを介して電子メール・アドレス属性の値が戻されます。この例では、管理者が電子メール・アドレス・フィールドにgreenなどのテキストを入力していると想定しています。

この例のサーブレットでは、この情報を参照し、表示されるHTMLページの生成でこの情報を使用します。この値は、HTML文書にBODYタグのBGCOLOR属性として挿入されます。この値をテキストで示すページが戻され、ページの背景が緑になります。

2.9.3 ObSSOCookieの例

次の例に、アイデンティティ・サーバーがアクセス・システムによって保護されている場合に、Javaを使用してSOAPリクエストをアイデンティティ・サーバーにポストする(つまり、IDXMLコールを行う)方法を示します。この例では、obSSOCookieを使用します。


注意:

このタイプのリクエストを作成するには、Access Manager SDKをインストールする必要があります。詳細は、「Access Manager SDKのインストール」を参照してください。

例2-23に、obSSOCookieを使用するSOAPリクエストを示します。

例2-23 obSSOCookieを使用するSOAPリクエスト

/**
 * This is a very simple SOAP example of how to invoke Oracle Access Manager
 * through SOAP.
 *
 * This program will make a soap request (send the request in soap.xml)
 * to the argument hostname:port/oblix/apps/corpdir/bin/corpdir.cgi
 * In this particular example the Identity server is protected using Basic over LDAP and the
 * ObUserSession class is used to retrieve the token which is used to set the ObSSOCookie.
 * You might also need to pass the IP adress to the ObUserSession or turnoff IPValidation for the
 * Webgate in Netpoint\WebGate\access\oblix\apps\webgate\WebGateStatic.lst.
 *
 *
 * Requirements:
 * *** HTTPClient, a complete http client library from innovation, is
 *     required to run this test.  The software is free, and licensed under the
 *     GNU Lesser General Public License.
 *     HTTPClient is available at http://www.innovation.ch/java/HTTPClient
 *     This program has been tested with HTTPClient Version 0.3-2
 *    ObSoapClientWebGate is written as an AccessGate using the Access Server API's so
 *     you will need to install the Access SDK and do the required configurations to run
 *     this class as an Access Gate.
 *
 * To run:
 * *** java ObSoapClientWebGate [-h hostname] [-p port] [-i <Access SDK install dir>] 
       [-l loginName] [-w password] [-f inputfile] [-u oblixurl]
 *
 */

import java.net.*;
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.util.*;
import java.io.*;
import java.text.*;
import HTTPClient.*;
import HTTPClient.CookieModule;
import HTTPClient.HTTPConnection;
import HTTPClient.HTTPResponse;
import HTTPClient.ModuleException;
import HTTPClient.NVPair;
import HTTPClient.Cookie;
import com.oblix.access.*;

public class ObSoapClientWebGate
{

        static String hostname = "host.company.com";
        static String filename = "soap.xml";
        static String accessSDKinstalldir = "";
        static int port = 80;
        static String userName = "";
        static String password = "";
        static String res = "/identity/oblix";
        static String oburl = "/identity/oblix/apps/userservcenter/bin/userservcenter.cgi";


        public static void collectArgs(String args[])
        {
                for (int i = 0; i < args.length; i++) {
                        if (args[i].equals("-h") && args.length >= i+1)
                                hostname = args[i+1];
                        else if (args[i].equals("-f") && args.length >= i+1)
                                filename = args[i+1];
                        else if (args[i].equals("-p") && args.length >= i+1)
                                port = Integer.parseInt(args[i+1]);
                        else if (args[i].equals("-u") && args.length >= i+1)
                                oburl = args[i+1];
                        else if (args[i].equals("-i") && args.length >= i+1)
                                accessSDKinstalldir = args[i+1];
                        else if (args[i].equals("-l") && args.length >= i+1)
                                userName = args[i+1];
                        else if (args[i].equals("-w") && args.length >= i+1)
                                password = args[i+1];
                        else if (args[i].equals("-help")) {
                                System.out.println("Usage: java ObSoapClientWebGate 
                                [-h hostname] [-p port] [-f filename] [-i <Access SDK install dir>]
                                [-l loginName] [-w password] [-u oblixurl] \n");
                                System.exit(1);
                        }
                }
        }

        /**
   * Read from soap.xml in current directory and return as string.
         */
        public static String getRequestFromFile()
        {
                StringBuffer data = new StringBuffer();
                try {
                        BufferedReader reader = new BufferedReader(new FileReader(filename));

                        for (String line = reader.readLine(); line != null;
                                line = reader.readLine()) {
                                data.append(line);
                        }
                } catch (Exception e) {
                        System.out.println(e.toString());
                }
                System.out.println(data.toString());
                return data.toString();
        }

        public static void main(String args[]) throws Exception
        {
                try {
                        CookieModule.setCookiePolicyHandler(null);
                        AuthorizationInfo.setAuthHandler(null);
                        // initiate connection
                        collectArgs(args);
                        HTTPConnection con = new HTTPConnection(hostname, port);
                        // Check if user is authenticated, if yes pass the cookie while posting.
                        String token = null;
                        token = authenticate(userName, password, res);
                        if (token == null) {
                                System.out.println("Authentication failed for User " + userName + " Exiting program");
                                System.exit(1);
                        }
                        System.out.println("TOKEN: " + token);

                                Cookie SSOCookie = new Cookie("ObSSOCookie", URLEncoder.encode(token), 
                                                   ".oracle.com", "/", null, false);
                        CookieModule.addCookie(SSOCookie);
                        System.out.println();

                        // collect response
                        NVPair header[] = new NVPair[1];
                        header[0] = new NVPair("Content-Type", "text/xml");
                                HTTPResponse rsp = con.Post(oburl,getRequestFromFile(),header);

                        // get status and act accordingly
                        if (rsp.getStatusCode() >= 300) {
                                System.err.println("Received Error: "+rsp.getReasonLine());
                                System.err.println(new String(rsp.getData()));
                        } else{
                                        System.out.println();
                                        System.out.println();
                                        System.out.println();
                                System.out.println(new String(rsp.getData()));

                                                        }



                } catch (IOException ioe) {
                        System.err.println(ioe.toString());
                } catch (ModuleException me) {
                        System.err.println("Error handling request: " + me.getMessage());
                } catch (Exception e) {
                        System.out.println(e.toString());
                }
        }

        public static String authenticate(String userName, String password, String res)
        {
                String token = null;
                ObResourceRequest resReq = null;
                ObUserSession user = null;

                Hashtable cred = new Hashtable();
                cred.put("userid", userName);
                cred.put("password", password);
                System.out.println("Authenticating user " + userName + " password " + password + " for res " + res);
                try
                {
                        ObConfig.initialize(accessSDKinstalldir); 
                        //"D:\\oblix\\install\\panacea\\ois\\identity\\AccessServerSDK"); 
                        // put the correct path to your AccessSDK installation here
                        resReq = new ObResourceRequest("HTTP", res, "GET");
                        // check if it is protected, if yes, create a user session
                        if (resReq.isProtected())
                        {
                                System.out.println("is protected");
                                user = new ObUserSession(resReq, cred, "192.168.1.126");
                                if (user.getStatus() == ObUserSession.LOGGEDIN)
                                {
                                        System.out.println("user status is LOGGEDIN " + user.getStatus());
                                        if(user.isAuthorized(resReq))
                                        {
                                                System.out.println("Permission GRANTED");
                                        }

                                        token = user.getSessionToken();
                                }
                        }
                        ObConfig.shutdown();
                }
                catch (ObAccessException oe)
                {

                        ObConfig.shutdown();
                        oe.printStackTrace();
                }
                return token;
        }

}