IBM FileNet P8, バージョン 5.2.1            

Web Services の使用: 認証の例

この例では、ログオンが必要な Web Service を実行する方法について説明します。

下のイメージで、ProcessB の Receive ステップでは、処理を継続するために ユーザー名とパスワード (認証) が必要です。CheckRec は、任意のデータを検査し、Receive ステップの実行を確認するユーザー・ステップです。

ProcessA では、Invoke ステップの直前のステップで、ユーザーがユーザー名とパスワードを入力します。完了後の割り当てで、実行中のワークフローでデータが解読されないように、ユーザー名とパスワードがエンコードされます。

Invoke ステップは、Assign と Invoke の両方のシステム関数を使用する System ステップです。Assign では、ユーザー名とパスワードを Web Services のメッセージ・ヘッダーのセキュリティー・セクションに挿入します。Invoke は、パートナー・リンクの選択、および発信パラメーターのデータ・フィールドの指定を行うために設定されている通常の手順に従って実行されます。

CheckInv は、データの検査を可能にするユーザー・ステップです。ユーザー名とパスワードのエンコードに注意してください。

認証ダイアグラム
ProcessB のワークフローの作成
  1. Process Designer で、「ワークフローのプロパティー」 > 「一般」タブをクリックして、ワークフロー定義の名前と件名 (ProcessB) を入力します。
  2. Web Service を定義します。
    1. 「パートナー・リンク」タブで、Web Service の名前 (RecProcessB) を入力し、次に「受信/応答」をオン、「開始」をオフにします。
    2. 「プロセス・ポート・タイプ」に名前 (RecProcessBPort) を入力します。

      データを更新するには、「タイプ」フィールドの「受信/応答」をクリックします。「パートナー・リンク」テーブルに新しいブランク行が表示されます。

    3. 「Web サービス」 > 「一般」タブでは、「既存の Web サービス・オペレーションを確定」を選択しないでください。Web サービスの入力パラメーターと出力パラメーターを、適宜何回でも変更できるようにしておく必要があるためです。
  3. Web Services Palette からワークフロー・マップ上に Receive ステップをドラッグし、「ReceiveAuth」と名前をつけます。このワークフローを自動的に起動するために、Receive ステップを Launch ステップの直後のステップとして定義する必要があります。
    1. 「プロパティー」ペインで、この Web Service に対するパートナー・リンク (RecProcessB) を選択します。
    2. 「オペレーション」では、名前 (RecProcessBOp) を入力します。
    3. 「パラメーター」をメッセージ・タイプとして選択します。
    4. 「オペレーション・パラメーター」では、次のような必須入力フィールドに値を指定します。
      表 1. オペレーション・パラメーター
      名前 タイプ フィールド名
      MyName ストリング (Create) MyName
      MyCompany ストリング (Create) MyCompany
    5. 「拡張設定」タブの「認証」オプションで「はい」を選択します。「次の送信元からのメッセージのみを承認」で、この Web サービス宛てにメッセージを送信する許可が与えられているユーザーまたはグループの名前を選択します。実行時に出される開始メッセージには、指定したユーザー名とパスワードを明記する必要があります。
  4. 「BPM Palette」から、「Activity Step」をワークフロー・マップにドラッグし、「CheckRec」という名前を付けます。このステップでデータ・フィールドを調べ、Receive ステップが実行されたことを確認できます。
    1. 特定のユーザー (自分自身を割り当てられます) をステップの参加者として選択します。このワークフローの場合、システムによって起動されるため、どのステップにも F_Originator を割り当てないでください。
    2. MyName と MyCompany をこのステップのパラメーターとして指定します。
  5. このワークフローを検証、保存、および転送します。
ProcessA のワークフローの作成
  1. 新しいワークフロー定義を作成します。
  2. 「ワークフローのプロパティー」>>「一般」タブで、ワークフロー定義の名前と件名 (ProcessA) を入力します。
  3. 「ワークフローのプロパティー」>>「データ・フィールド」で、MyUserName (文字列) および MyPassword (文字列) フィールドを定義します。

    ヒント: データ・フィールドの MyUserName と MyPassword は、Receive ステップの認証オプションの要求に応じて、ProcessB の Web サービスに渡されます。ここでは実行中のワークフローから解読されないようフィールドをエンコードしますが、実際のアプリケーションでは、不要な注意を引かないように推測しづらい名前に変えることを推奨します。

  4. Web Services のパートナー・リンクを定義します。
    1. 「Web サービス」>>「パートナー・リンク」タブで、パートナー・リンクの名前 (InvProcessA) を入力します。
    2. 「実行」を選択し、「WSDL URL」内の「Web Services Explorer」をクリックします。
    3. 「Web Services Explorer」ダイアログ・ボックスの「Web Services ワークフロー」を選択してから、「実行」をクリックすると、ワークフロー・システムへ転送済みの、Receive システム関数を使用したワークフローが表示されます。
    4. 「ProcessB」を選択してから「OK」をクリックします。
    5. 「パートナー・リンク」タブで「ポート・タイプ」(RecProcessBPort) を選択します。ヒント:「タイプ」フィールドで「実行」をクリックしてデータを更新してください。「パートナー・リンク」テーブルに新しいブランク行が表示されます。
  5. 「BPM Palette」から、「Activity Step」をワークフロー・マップにドラッグし、「EnterLogon」という名前を付けます。
  6. BPM ステップのパレットから、System ステップをワークフロー・マップ上にドラッグして、InvAuth という名前を指定します。
    1. システム関数のリストから「割り当て」と「開始」を選択して右の列に移動します。Assign は、開始メッセージのヘッダーにユーザー名とパスワードを挿入するために使用されるので、Invoke システム関数の前に置く必要があります。
    2. 「選択された関数」の「開始」をダブルクリックします。「プロパティー」ペインで、パートナー・リンク InvProcessA とオペレーション RecProcessBOp を選択します。
    3. 「パラメーター」を選択して、データ・フィールドの MyName と MyCompany を作成します。
  7. InvAuth ステップの「Assign」システム関数をダブルクリックします。
  8. 「割り当てパラメーター」で名前 (temp) (後の方のステップで置換) を入力してから、「式ビルダー」をクリックします。
  9. 「式ビルダー」のリストから「パートナー・リンク」、「InvProcessA」の順に選択します。メッセージ・ヘッダーが「ヘッダー情報」に表示されます。「挿入」をクリックして、式領域の中に挿入します。

    メッセージ・ヘッダー

    Receive Web Service では認証が必要とされているために、セキュリティー・セクションがこのヘッダーに組み込まれていることに注意してください。

  10. 次の手順でこのヘッダーを編集します。
    1. このメッセージの先頭から F_EndPointRefInvProcessA= をクリップボードに切り取ります。この名前は割り当ての名前として貼り付けます。
    2. 上の枠で囲まれた OPTIONAL_FINAL_SOAP_ADDRESS を削除します。
    3. このメッセージを有効なストリング式にするために、既に存在するそれぞれの二重引用符およびメッセージの先頭と末尾に、二重引用符 (") を追加します。
    4. USERNAME と PASSWORD をそれぞれに該当するフィールド名 MyUserName と MyPassword で置換し、さらに、このストリング式にフィールド名を挿入するために引用終了を示す (右) 引用符、引用開始を示す (左) 引用符、およびプラス記号を追加します。最終的なメッセージを以下に示します。
      "<wsa:EndPointReference xmlns:wsa=""http://schemas.xmlsoap.org/ws/2003/03/addressing
      "">
              <wsa:ReferenceProperties>
                    <wsse:Security xmlns:wsse=""http://schemas.xmlsoap.org/ws/2002/12/secext"                  <wsse:UsernameToken>
                                   <wsse:Username>" + MyUserName + "</wsse:Username>
                                   <wsse:Password>" + MyPassword + "</wsse:Password>"
                       </wsse:UsernameToken>
                    </wsse:Security>
             </wsa:ReferenceProperties>
      </wsa:EndPointReference>"                            
  11. 「OK」をクリックして式ビルダーを閉じます。
  12. F_EndPointRefInvProcessA を「割り当てパラメーター」の名前フィールドに貼り付けます (temp が置き換えられます)。(末尾の = は削除します。)
  13. 「EnterLogon」ステップを選択します。
    1. MyName、MyCompany、MyUserName、および MyPassword をステップ・パラメーターとして指定します。
    2. 「割り当て」タブで「完了後」を選択し、下記のフィールド割り当てを使用して、受信ワークフローに渡される MyUserName と MyPassword をエンコードします。ユーザー名とパスワードは、エンコードされていないデータが実行中のワークフローで表示されることがないように、EnterLogon ステップが完了するとすぐにエンコードされます。
    3. 注意: IBM® は、エンコードするデータは Activity ステップで入力し、そのステップの完了後に行われる割り当てでエンコードすることをお勧めします。データは、Launch ステップで入力しないでください。起動プロセスとエンコード処理との間で、プロセス・トラッカー・アプリケーションによってエンコードされていないデータが傍受される可能性があります。
      表 2. ステップ・パラメーター
      フィールド名
      MyUserName encode(MyUserName)
      MyPassword encode(MyPassword)
  14. BPM Palette から、このワークフロー定義の最後のステップとして「Activity」ステップをワークフロー・マップ上にドラッグします。これでデータを表示できるようになります。ステップ名: CheckInv、参加者: F_Originator (要求を 実行依頼するユーザー)、パラメーター: MyName、MyCompany、MyUserName、MyPassword
  15. このワークフローを検証して保存します。
認証の実行例
  1. ProcessA ワークフローを起動します。
  2. Workplace のタスクで EnterLogon ステップを開き、4 つのデータ・フィールドに値を入力します。MyUserName と MyPassword に、該当するユーザー名とパスワードを入力する必要があります。
  3. CheckInv ステップと CheckRec ステップを開きます。CheckInv ステップのユーザー名フィールドとパスワード・フィールドのエンコードに注意してください。これらは、CheckRec ステップでは表示されません。
無効なユーザー名とパスワードを指定した場合、この 2 つのユーザー・ステップは受信ボックスに表示されません。管理コンソールを使用すると Conductor キューに ProcessA があることがわかります。ProcessB は起動していません。

FileNet® ワークフローでは、アクセスに認証を必要とする Web サーバーにデプロイされる Web サービスは実行できません。この認証の機能は、Web サービスがデプロイされた Web サーバーではなく、Receive ステップに関連します。



最終更新日: 2015 年 10 月
bpfdh187.htm

© Copyright IBM Corp. 2015.