ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Manager開発者ガイド
11g リリース1(11.1.1)
B66705-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

25 SOAコンポジットの開発

プロビジョニング・システムの主な目的は、ユーザーによって送信されたリクエストを管理し、ユーザーに対してリソースをプロビジョニングすることです。リクエストの実行には、関連する承認プロセスの実行も含まれます。承認プロセスは、SOAサーバーで実行されるサービス指向アーキテクチャ(SOA)コンポジットとしてデプロイされます。リクエスト・サービスによって、このような承認プロセスが実行され、管理されます。図23-1「リクエスト・サービスとSOAの統合」に、リクエスト・サービスとSOAの統合を示します。

Oracle Identity ManagerとSOAサーバーの間の相互作用について、次の手順で説明します。

  1. ユーザーは、Oracle Identity Managerセルフ・サービスを使用してリクエストを作成します。Oracle Identity Managerでサポートされているすべてのリクエスト・タイプのうち、任意のタイプのリクエストを作成できます。

  2. リクエスト・サービスによって承認ポリシーが評価され、インスタンス化されるSOAコンポジットが選択されます。


    注意:

    このコンポジットは、リクエストの送信時に開始されるようにOracle Identity Managerに登録されている必要があります。Oracle Identity Managerでの登録ワークフローの詳細は、「SOAコンポジットのOracle Identity Managerへの登録」を参照してください。


  3. リクエスト・サービスがSOAサーバーに接続して、選択されたSOAコンポジットをインスタンス化します。SOAサーバーで選択されているコンポジット・インスタンスをインスタンス化します。

  4. SOAコンポジットの実行が開始され、ヒューマン承認タスクが承認用に割り当てられます。

  5. 承認者がOracle Identity Managerセルフ・サービス・コンソールの「タスク・リスト」にログインして、リクエストを承認します。

  6. 承認後にコンポジット・インスタンスの実行が完了し、リクエスト・サービスに通知されます。

  7. リクエスト・サービスによってリクエストが次のステージに移動します。

この章の内容は、次のとおりです。

25.1 新しいSOAコンポジットの作成

承認プロセスとして使用できる新規SOAコンポジットを作成するには、次の手順を実行します。

  1. 新しいSOAコンポジットの作成

  2. SOAコンポジットのOracle SOAサーバーへのデプロイ

  3. SSLモードでのOracle Identity Managerとの通信のための前提条件

  4. SOAコンポジットのOracle Identity Managerへの登録

25.1.1 新しいSOAコンポジットの作成

SOAコンポジットを承認プロセスとして使用するには、SOAコンポジットが特定の基準に準拠している必要があります。このような基準によって、リクエスト・サービスはコンポジットを適切にインスタンス化し、管理できます。基準は、次のとおりです。

  • 次の属性はBPELプロセスに必須です。

    • タイプが文字列のRequestID

    • タイプが文字列のRequestModel

    • タイプが文字列のRequestTarget

    • タイプが文字列のURL

    • XML要素のRequesterDetails

    • XML要素のBeneficiaryDetails

    • XML要素のObjectDetails

    • XML要素のOtherDetails

    RequestID、RequestModel、RequestTargetおよびURL属性には、常に、すべてのタイプのリクエストの有効な値が設定されます。

    RequesterDetailsはXML要素です。この要素には、認証を必要とするすべてのリクエストの有効な値が入力されます。タイプが自己登録ユーザーのリクエストは、リクエスタが匿名ユーザーのため、リクエスタの詳細が空です。

    BeneficiaryDetailsはXML要素です。この要素には、「リソースのプロビジョニング」、「ロールの割当て」など、受益者があるすべてのリクエストの有効な値が入力されます。この要素には、リクエストが1人の受益者に関連している場合にのみ入力されます。リクエストが複数の受益者に関連している場合、BeneficiaryDetailsは空になります。BeneficiaryDetails要素には、常に、受益者がある単純リクエストおよび子リクエストの有効な値が設定されます。このため、承認の操作レベルで承認プロセスとして使用されるSOAコンポジットでこのXML要素を使用することをお薦めします。これは、承認の操作レベルでは、リクエストが1人の受益者にのみ関連付けられているためです。

    ObjectDetailsはXML要素です。この要素には、リソース・エンティティに関連付けられているすべてのリクエストの有効な値が入力されます。この要素には、リクエストが1つのリソースに関連している場合にのみ入力されます。リクエストが複数のリソースに関連している場合、ObjectDetailsは空になります。ObjectDetails要素には、常に、リソースに関連付けられている単純リクエストおよび子リクエストの有効な値が設定されます。このため、承認の操作レベルで承認プロセスとして使用されるSOAコンポジットでこのXML要素を使用することをお薦めします。これは、承認の操作レベルでは、リクエストが1つのリソースにのみ関連付けられているためです。

  • BPELプロセスに必須のすべての属性は、RequestDetails.xsdおよびApprovalProcess.xsdから参照されます。これらのファイルは、変更または削除できないテンプレートSOAコンポジットにあります。

Oracle Identity Managerでは、カスタムSOAコンポジットを作成するヘルパー・ユーティリティが提供されます。このユーティリティでは、必要な基準のすべてに準拠したテンプレートSOAプロジェクトが作成されます。このユーティリティは、OIM_HOME/workflows/new-workflowディレクトリに配置されています。


注意:

  • JAVA_HOME環境変数を設定してから、このユーティリティを実行する必要があります。

  • このユーティリティには、Apache Antバージョン1.7以上が必要です。


ヘルパー・ユーティリティを実行してカスタムSOAコンポジットを作成するには、次の手順を実行します。

  1. 次のコマンドを実行します。

    cd OIM_HOME/workflows/new-workflow
    ant -f new_project.xml
    
  2. 次のプロンプトが表示されたら、JDeveloperアプリケーション名を入力します。

    Please enter application name

  3. 次のプロンプトが表示されたら、JDeveloperプロジェクト名を入力します。

    Please enter project name

  4. 次のプロンプトが表示されたら、コンポジットのADFバインディング・サービスの名前を入力します。

    Please enter the service name for the composite. This needs to be unique across applications

OIM_HOME/workflows/new-workflow/process-template/ディレクトリに新規アプリケーションが作成されます。新規アプリケーションは、JDeveloperで開いて変更できます。

テンプレートSOAコンポジットのヒューマン・タスクは、ヒューマン・タスクの割当て先に通知を送信するよう構成されています。作成されたカスタム・コンポジットでは、要件に応じて通知メッセージを変更できます。承認者に送信されるすべての通知は、SOAコンポジットで構成する必要があります。通知を送信するようにOracle SOAサーバーを構成する方法は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のOracle User Messaging Serviceの構成に関する説明を参照してください。

テンプレートSOAコンポジットのヒューマン・タスクは、SYSTEM ADMINISTRATORSロールに割り当てられるよう構成されています。

25.1.2 SOAコンポジットのOracle SOAサーバーへのデプロイ

BPELへのワークフロー・コンポジットのデプロイの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。


注意:

コンポジットがSOAで再デプロイされる場合、コンポジットによって開始されたOracle Identity Managerの保留中のすべての承認が失効となり、ユーザーのTaskListから削除されます。既存のSOAコンポジットのデプロイの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のOracle JDeveloperでの既存のSOAアーカイブのデプロイに関する説明を参照してください。


25.1.3 SSLモードでのOracle Identity Managerとの通信のための前提条件

Oracle Identity Managerとの通信でSSLモードを使用している場合は、次を実行する必要があります。


注意:

非SSL接続の場合は、この項をスキップしてください。


  • TRUSTSTORE_LOCATION環境変数を設定します(TRUSTSTORE_LOCATIONは信頼できるキー・ストア・ファイルの場所です)。

  • t3プロトコルではなくt3sプロトコルを使用します。たとえば、Oracle Identity ManagerのURLは次のようになります。

    t3s://HOST_NAME:PORT

25.1.4 SOAコンポジットのOracle Identity Managerへの登録

SOAコンポジットはOracle Identity Managerに登録してから、承認プロセスとして使用する必要があります。SOAコンポジットをOracle Identity Managerに登録するには、次の手順を実行します。

  1. 次の内容を含めたCOMPOSITE_NAME.propsプロパティ・ファイルをOIM_HOME/workflows/registration/ディレクトリに作成します。

    name=COMPOSITE_NAME
    category=Approval
    providerType=BPEL
    serviceName=REQUEST_APPROVAL_SERVICE
    domainName=DOMAIN
    version=REVISION_ID
    payLoadID=PAYLOAD
    operationID=OPERATION_ID
    listOfTasks=HUMAN_TASK_NAMES
    

    内容は次のとおりです。

    • COMPOSITE_NAMEをcomposite.xmlファイルに指定されているSOAコンポジットの名前で置き換えます。

    • REQUEST_APPROVAL_SERVICEをコンポジットで公開されているサービスの名前で置き換えます。このサービスは、承認用のコンポジットのインスタンス化時に起動します。

    • OPERATION_IDをserviceNameプロパティに指定されているサービスで起動される操作の名前で置き換えます。

    • PAYLOADをoperationIDプロパティの値として指定されている操作のパート名で置き換えます。

    • REVISION_IDをcomposite.xmlファイルに指定されているSOAコンポジット・リビジョンで置き換えます。

    • DOMAINをコンポジットがデプロイされるSOAパーティションの名前で置き換えます。デフォルトでは、SOAには、defaultという名前のパーティションが1つあります。

    • HUMAN_TASK_NAMESをSOAコンポジットに関連付けられている承認タスクの名前で置き換えます。名前はコロン(:)で区切ります。


      注意:

      プロパティ・ファイルに余分なスペースを追加しないでください。


  2. OIM_HOME/workflows/registration/ディレクトリから次のコマンドを実行します。


    注意:


    ant -f registerworkflows-mp.xml register
    
  3. 要求されたら、Oracle Identity Manager管理者のユーザー名を入力します。

  4. 要求されたら、Oracle Identity Manager管理者のパスワードを入力します。


    注意:

    Oracle Identity Managerの管理者資格証明を使用してSOAサーバーにログインするときに、Oracle Identity Managerでチャレンジ質問および回答とパスワードがリセットされていない場合は、ログイン試行が失敗します。Oracle Identity Managerに最初にログインするときに、チャレンジ質問および回答とパスワードをリセットする必要があります。


  5. 要求されたら、Oracle Identity Managerサーバーのt3 URLを入力します。

  6. 要求されたら、手順1で作成したプロパティ・ファイル名の完全パスを入力します。

25.2 既存のSOAコンポジットの変更

承認プロセスとして使用できる既存のSOAコンポジットを変更するには、次の手順を実行します。

  1. JDeveloperでのSOAプロジェクトの変更

  2. Oracle Identity ManagerでのSOAコンポジットの無効化

  3. SOAコンポジットのOracle SOAサーバーへのデプロイ

  4. Oracle Identity ManagerでのSOAコンポジットの有効化


注意:

SOAコンポジットの変更では、ヒューマン・タスクを追加または削除してから、次の手順を実行します。

  1. JDeveloperでSOAコンポジットを変更します。コンポジットの変更中に、SOAコンポジットのバージョンIDが変更されていることを確認します。Oracle Identity Managerにすでに登録されている既存のSOAコンポジットのバージョンIDは使用できません。

  2. Oracle Identity Managerで既存のSOAコンポジットを無効にします。

  3. Oracle SOAサーバーで新しいバージョンIDのSOAコンポジットをデプロイします。

  4. 新しいバージョンのSOAコンポジットをOracle Identity Managerに登録します。


25.2.1 JDeveloperでのSOAプロジェクトの変更

JDeveloperを使用して、SOAコンポジットを変更できます。デフォルトのSOAコンポジットを変更する場合は、表25-1に示すパスの各JDeveloperプロジェクトにアクセスできます。

表25-1 デフォルトのSOAコンポジットの場所

SOAコンポジット パス

BeneficiaryManagerApproval

OIM_HOME/workflows/composites/BeneficiaryManagerApproval.zip

DefaultOperationalApproval

OIM_HOME/workflows/composites/DefaultOperationalApproval.zip

DefaultRequestApproval

OIM_HOME/workflows/composites/DefaultRequestApproval.zip

DefaultRoleApproval

OIM_HOME/workflows/composites/DefaultRoleApproval.zip

ResourceAuthorizerApproval

OIM_HOME/workflows/composites/ResourceAuthorizerApproval.zip

ResourceAdministratorApproval

OIM_HOME/workflows/composites/ResourceAdministratorApproval.zip

RequesterManagerApproval

OIM_HOME/workflows/composites/RequesterManagerApproval.zip

DefaultSODApproval

OIM_HOME/workflows/composites/DefaultSODApproval.zip


JDeveloperを使用してOracle SOA Suiteのアプリケーションを構築する方法の詳細は、『Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

25.2.2 Oracle Identity ManagerでのSOAコンポジットの無効化

Oracle Identity ManagerでSOAコンポジットを無効にするには、OIM_HOME/workflows/new-workflow/ディレクトリに配置されているregisterworkflows-mpユーティリティを使用します。


注意:


Oracle Identity ManagerでSOAコンポジットを無効にするには、次の手順を実行します。

  1. コマンド・プロンプトを使用して、OIM_HOME/workflows/registration/ディレクトリに移動します。

  2. 次のコマンドを実行します。

    ant -f registerworkflows-mp.xml disable
    
  3. ユーザー名の入力を要求されたら、Oracle Identity Manager管理者のユーザー名を入力します。

  4. パスワードを入力するように要求されたら、Oracle Identity Manager管理者のパスワードを入力します。

  5. サーバーのt3 URLの入力を要求されたら、t3://localhost:7001など、Oracle Identity Managerサーバーのt3 URLを入力します。

  6. ワークフローのドメインを指定します。デフォルトでは、defaultドメインに設定されています。

  7. ワークフローの名前を入力するように要求されたら、SOAコンポジット名を入力します。

  8. ワークフローのバージョンを入力するように要求されたら、SOAコンポジット・バージョンを入力します。

25.2.3 SOAコンポジットのOracle SOAサーバーへのデプロイ

BPELへのワークフロー・コンポジットのデプロイの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

25.2.4 Oracle Identity ManagerでのSOAコンポジットの有効化

Oracle Identity ManagerでSOAコンポジットを有効にするには、次の手順を実行します。


注意:


  1. 次のコマンドを実行します。

    ant -f registerworkflows-mp.xml enable
    
  2. 「Oracle Identity ManagerでのSOAコンポジットの無効化」の手順3から8を実行します。