Share via


SOAP 用 Web Service Connector ワークフロー ガイド

この記事では、Web サービス構成ツールでデータ ソースの新しいプロジェクトを作成する方法について説明します。 プロジェクトを作成するには、次の手順に従います。

  1. Web サービス構成ツールを開きます。 空のプロジェクトが開きます。

    Web サービス構成ツール

  2. [ SOAP プロジェクト ] を選択し、[追加] を選択 します

    SOAP プロジェクト

  3. 次のページで、次の情報を入力し、[ 次へ] を選択します。

    • 新しい Web サービス名
    • 公開されているサービス、エンドポイント、および操作を取得するアドレス (WSDL パス)
    • 名前空間
    • セキュリティ モード (認証の種類)
  4. このサンプルでは、[ 資格情報] ページに 、基本 セキュリティ モード (前の手順で選択したモード) の要件が表示されます。 セキュリティ モードに "None" が指定されている場合、資格情報ページは表示されません。 [次へ] を選択します。

    ユーザー名とパスワードを含む SOAP サービス画面

  5. WSDL パスにアクセスしてサービス情報を取得し、公開されている関数の一覧が表示されます。 入力した WSDL パスが正しくない場合、構成ツールはサービス情報の取得に失敗し、エラーをスローします。

    Web サービスのダウンロードの進行状況画面

  6. 検出が実行されると、検出されたエンドポイントと操作が一覧表示されます。 [完了] を選択します。

    SOAP サービスのエンドポイントと操作が検出されました

  7. コンパイルが実行されます。 コンパイルは、データ コントラクト アセンブリをコンパイルするプロセスであり、時間のかかる操作になる可能性があります。 コンパイル エラーがユーザーに通知されます。 検出が実行されると、ツールに次のページが表示されます。

    Soap Discovery

  8. SOAP プロジェクトを展開し、次の画面で公開されているエンドポイントを選択します。 この画面には、エンドポイントで宣言された操作が一覧表示されます。

    エンドポイントの下で宣言された操作

  9. エンドポイントを展開すると、操作の一覧が表示されます。 操作は、エンドポイントによって宣言された関数です。 各操作は、サービス内で実行できるタスクの種類に対応します。 この画面には、操作に対して宣言されている引数が一覧表示されます。 これらの引数は、ワークフローの構成で操作を使用するときに定義されます。

    展開されたエンドポイント

  10. 次の手順では、コネクタ スペース スキーマを定義します。これは、オブジェクト型を作成し、そのオブジェクト型を定義することによって実現されます。 [ オブジェクトの種類] を選択し、[ 追加] を選択します。 新しいウィンドウで、新しいオブジェクトの種類を追加し、名前を指定します。 [OK] を選択します。

    オブジェクト型の定義

  11. オブジェクトの種類を追加すると、以下の画面が表示されます。

    新しく作成されたオブジェクトの種類の表示

  12. オブジェクトの種類に対応する右側のペインでは、選択したオブジェクトの種類の属性とそのプロパティを維持できます。 [追加] を選択します。 属性を追加するための新しいウィンドウが開きます。

    属性とデータ型

    [アンカー] オプションが選択された属性とデータ型

  13. 必要なすべての属性を追加すると、次の画面が表示されます。

    属性情報を含むオブジェクト型

  14. オブジェクトの種類と属性が作成されると、Microsoft Identity Manager 2016 (MIM) で実行される操作に対応する空のワークフローが提供されます。

    オブジェクトの種類は、従業員が実行できる操作を示しています

Web サービス構成ツールでワークフローを構成する

次の手順では、オブジェクトの種類のワークフローを構成します。 ワークフロー ファイルは、実行時に Web サービス コネクタによって使用される一連のアクティビティです。 ワークフローは、適切な MIM 操作を実装するために使用されます。 Web サービス構成ツールを使用すると、次の 4 つの異なるワークフローを作成できます。

  • インポート: 次の 2 種類のワークフローのデータ ソースからデータをインポートします。

    • 完全インポート: 構成できる完全インポート。
    • 差分インポート: Web サービス構成ツールではサポートされていません。
  • エクスポート: MIM から接続されたデータ ソースにデータをエクスポートします。 操作では、次の 3 つのアクションがサポートされています。 これらのアクションは、要件に基づいて構成できます。

    • 追加
    • 削除
    • Replace
  • パスワード: ユーザーのパスワード管理を実行します (オブジェクトの種類)。 この操作には、次の 2 つのアクションを使用できます。

    • パスワードの設定
    • パスワードの変更
  • 接続のテスト: データ ソース サーバーとの接続が正常に確立された場合にチェックするワークフローを構成します。

注意

これらのワークフローは、プロジェクト用に構成することも、Microsoft ダウンロード センターから既定のプロジェクトをダウンロードすることもできます。

ワークフロー デザイナー

ワークフロー Designerによって作業領域が開き、要件に従ってワークフローが構成されます。 すべてのオブジェクトの種類 (新しい /existing) に対して、構成ツールは、ツールでサポートされているワークフローのノードを提供します。

ワークフロー デザイナー

ワークフロー Designerは、次の UI 要素で構成されます。

  • 左側のウィンドウのノード: これらは、どのワークフローを設計するかを選択するのに役立ちます。

  • 中央ワークフロー Designer: ここでは、ワークフローを構成するためのアクティビティを削除できます。 さまざまな MIM 操作 (エクスポート、インポート、パスワード管理) を実行するには、.NET Workflow Framework 4 の標準およびカスタム ワークフロー アクティビティを使用できます。 Web サービス構成ツールは、標準およびカスタム ワークフロー アクティビティを使用します。 標準アクティビティの詳細については、「 アクティビティ デザイナーの使用」を参照してください。

    • 中央ワークフロー Designerでは、アクティビティの横に感嘆符が付いた赤い円は、操作が削除され、正しく完全に定義されていないことを示します。 赤い円の上にマウス ポインターを合わせると、正確なエラーが確認されます。 アクティビティが正しく定義されると、赤い円が黄色の情報マークに変わります。

    • 中央ワークフロー Designerでは、アクティビティの横にある黄色の三角形の情報マークは、アクティビティが定義されていることを示しますが、アクティビティを完了するために実行できる操作は他にもあります。 黄色の三角形の上にマウス ポインターを合わせると、詳細が表示されます。

  • ツールボックス: システムアクティビティやカスタムアクティビティ、定義済みのステートメントを含むすべてのツールをパッケージ化して、ワークフローを設計します。 詳細については、「ツールボックス」をご覧ください。

  • ツールボックス セクション: ツールボックスには、次のセクションとカテゴリがあります。

    • 説明: ツールボックスのヘッダー。 1 つのタブから、ツールボックスと、選択したワークフロー アクティビティのプロパティにアクセスします。

    • インポート ワークフロー: インポート ワークフローを構成するためのカスタム アクティビティ。

    • エクスポート ワークフロー: エクスポート ワークフローを構成するカスタム アクティビティ。

    • 共通: ワークフローを構成するためのカスタム アクティビティ。

    • デバッグ: ワークフロー 4 で定義されているデバッグ用のシステム ワークフロー アクティビティ。 これらのアクティビティを使用すると、ワークフローの問題の追跡が可能になります。

    • ステートメント: ワークフロー 4 で定義されているシステム ワークフロー アクティビティ。 詳細については、「 アクティビティ デザイナーの使用」を参照してください。

  • プロパティ: [プロパティ] タブには、デザイナー領域にドロップされ、選択された特定のワークフロー アクティビティのプロパティが表示されます。 左側の図は 、Assign アクティビティのプロパティを示しています。 アクティビティごとに、プロパティは異なり、カスタム ワークフローの構成中に使用されます。 このタブを使用すると、中央のワークフロー デザイナーにドロップされた選択したツールの属性を定義できます。 詳細については、「 プロパティで定義されているインターフェイスのプライベート C++ 固有の実装です。

  • タスク バー: タスク バーには、 変数、引数、インポート 3 つの要素 が含まれています。 これらの要素は、ワークフロー アクティビティと共に使用されます。 詳細については、「 .NET 4 の Windows Workflow Foundation (WF) の開発者向け概要」を参照してください。

Web サービス構成ツールで完全インポート ワークフローを構成する

次の手順では、Web サービス構成ツールを使用して SOAP の完全インポート ワークフローを構成する方法を示します。

警告

このサンプルでは、ワークフローのみを作成します。 API でカスタム ロジックを使用するなど、ワークフローの変更が必要になる場合があります。

  1. 構成するフル インポート ワークフローを選択します。 引数インポートは既に定義されており、アクティビティに固有のものです。 詳細については、次の画面を参照してください。

    完全インポート ワークフロー引数

    [インポートされた名前空間]

    呼び出しの再構成後に、変更する属性の名前を変更し、名前空間を追加または変更して、API の戻り構造を参照する変数と、古い名前空間を参照するオブジェクト型に変更します。 右側のウィンドウのツールボックスには、構成に必要なすべてのカスタム ワークフロー固有のアクティビティが表示されます。 ロジックに使用する変数に値を割り当てます。 中央ワークフロー デザイナーの下部セクションに移動し、変数を宣言します。 変数は、次の手順で宣言します。

  2. シーケンス アクティビティを追加します。 [ツールボックス] からシーケンス アクティビティ デザイナーをドラッグし、Windows ワークフロー Designer画面にドロップします。 次の画面を参照してください。 Sequence アクティビティには、順番に実行される子アクティビティの順序付けられたコレクションが含まれます。

    シーケンス アクティビティ

  3. 変数を追加するには、変数の 作成を見つけます。 [名前]「wsResponse」と入力し、[変数の種類] ドロップダウンを選択し、[型の参照] を選択します。 ダイアログが表示されます。 生成された>既定の応答を選択します>。 [スコープ] と [既定値] はオフのままにします。 または、[ プロパティ] ビューを使用してこれらの値を設定します。

    既定の応答

    フル インポート プロパティ

  4. 次に、他のすべての変数を追加します。以下は最終的な画面です。

    完全インポート変数

  5. 既に追加されている Sequence アクティビティ内の [ツールボックス] からもう 1 つのシーケンス アクティビティ デザイナーをドラッグします。

  6. [共通] の下に表示される WebServiceCallActivity をドラッグします。このアクティビティは、検出後に使用可能な Web サービス操作を呼び出すために使用されます。 これはカスタム アクティビティであり、さまざまな操作シナリオで一般的です。

    サービス名の操作

    Web サービス操作を使用するには、次のプロパティを設定します。

    • サービス名: Web サービスの名前を入力します。

    • [エンドポイント名]: 選択したサービスのエンドポイント名を指定します。

    • 操作名: サービスのそれぞれの操作を指定します。

    • 引数: [引数] を選択します。 次のダイアログで、次の図に示すように引数の値を割り当てます。

      引数の割り当て

      重要

      このダイアログを使用して、引数の [名前]、[ 方向]、または [型] を変更しないでください。 これらの値のいずれかが変更されると、アクティビティは無効になります。 引数の Value のみを設定します。 この図に示すように、 値 wsResponse が設定されます。

  7. WebServiceCallActivity のすぐ下に ForEach アクティビティを追加します。このアクティビティは、オブジェクト型のすべての属性 (アンカーと非アンカーの両方) を反復処理するために使用されます。 このアクティビティを Workflow Designer サーフェスにドラッグすると、オブジェクトのすべての属性名が自動的に列挙されます。 次の画面に従って、必要な値を設定します。

    Web サービス呼び出しアクティビティ

  8. CreateCSEntryChangeScope アクティビティを ForEach 本文内にドラッグします。 このアクティビティは、ターゲット データ ソースからデータを取得するときに、それぞれのレコードのワークフロー ドメインに CSEntryChange オブジェクトのインスタンスを作成するために使用されます。 このアクティビティをドラッグすると、画面の下に表示されます。 CreateAnchorAttribute アクティビティは自動的に継承されます。

    CS エントリ変更スコープ アクティビティを作成する

  9. DN 式の値を として ‘string.Concat ("Employee",item.EmployeeID)’設定します。 EmployeeIDAnchorValue'Convert.tostring(item) に設定します。EmployeeID)'ObjectTypeName をEmployee に設定します。 これらの変更を行うと、次の画面が表示されます。

    従業員 ID を取得する

    注意

    アンカー値とオブジェクト名は、公開されている Web サービスによって異なります。 図は例を示しています。

  10. CreateAttributeChange アクティビティを CreateAnchorAttribute アクティビティの下にドラッグします。 ドラッグするアクティビティの数は、アンカー以外の属性の数と同じです。 参照については、次の図を参照してください。

    アンカーを作成する

  11. CreateAttributeChange アクティビティ内で CreateValueChangeActivityドラッグし、次の画面に従って属性値を設定します。

    属性を変更する

    注意

    このアクティビティを使用するには、ドロップダウンからそれぞれのフィールドを選択して割り当て、値を割り当てます。 複数値属性の場合は、CreateAttributeChangeActivity アクティビティ内で複数の CreateValueChangeActivity アクティビティを削除します。

  12. 属性の条件を追加するには、次の図に示すように If アクティビティを追加します。

    If アクティビティ

  13. 最後に、次の図に示すように 、Assign アクティビティを追加し、式を設定します。

    アクティビティを割り当てて式を設定する

  14. このプロジェクトを の場所 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensionsに保存します。

    既定のプロジェクトは、ターゲット システム上の場所 %FIM_INSTALL_DIR\2010\Synchronization Service\Extensions にダウンロードして保存する必要があります。 その後、プロジェクトは Web サービス コネクタ ウィザードに表示されます。

    実行可能ファイルを実行すると、インストールの場所を指定するように求められます。 保存場所を入力します。

    重要

    プロジェクト ファイルは、(Executor の適切なアクセス特権を持つ) 任意の場所から保存および開くことができます。 フォルダーに Synchronization Service\Extension 保存されているプロジェクト ファイルのみを、MIM 同期 UI を介してアクセスする Web サービス コネクタ ウィザードで選択できます。

    Web サービス構成ツールを実行しているユーザーには、次の特権が必要です。

    • Synchronization Service 拡張機能フォルダーへのフル コントロール。
    • 拡張機能フォルダー パスが配置されているレジストリ キー HKLM\System\CurrentControlSet\Services\FIMSynchronizationService\Parameters への読み取りアクセス。

Web サービス構成ツールでエクスポート ワークフローを構成する

次のセクションでは、Web サービス構成ツールを使用してワークフローをエクスポートする方法について説明します。

ワークフローを追加する

Web サービス構成ツールの次の手順に従って、エクスポート ワークフローを追加します。
  1. 構成するエクスポート ワークフローを選択します。 [ エクスポート] で、[追加] を選択 します引数インポートは既に定義されており、アクティビティに固有のものです。 参照については、次の画面を参照してください。

    ナビゲーション パネルの [追加] を示すスクリーンショット。

  2. シーケンス アクティビティを追加します。 [ツールボックス] からシーケンス アクティビティ デザイナーをドラッグし、Windows ワークフロー Designer画面にドロップします。 Sequence アクティビティには、順番に実行される子アクティビティの順序付けられたコレクションが含まれます。 [変数の作成] を選択します。 ロジックに使用する変数に値を割り当てます。

    [エクスポート]

    注意

    変数を追加する手順については、 完全インポート ワークフローの作成に関するセクションで説明します。

  3. 既に追加されている Sequence アクティビティ内で ForEach アクティビティをドラッグして、アンカー属性値を反復処理します。

  4. [ プロパティ] を 選択し、次の画面に従って [値] を 設定します。 ここで objectToExport は引数です。

    ForEach アクティビティに設定された値を示すスクリーンショット。

  5. DisplayName をForEach<AnchorAttribute> に設定する

    Set DisplayName を示すスクリーンショット。

  6. TypeArgument をMicrosoft.MetadirectoryServices.AnchorAttribute設定します。

    Set TypeArgument を示すスクリーンショット。

  7. AnchorAttributeForEach 本文内に Switch アクティビティを追加します。

    AnchorAttribute の ForEach 本文内に Switch アクティビティを追加する方法を示すスクリーンショット。

  8. 下の画面に従って式を追加します。

    式を追加する

  9. [ 新しいケースの追加] を選択し、 EmployeeId の値を入力します。 Sequence アクティビティをドラッグし、その中に Assign アクティビティを追加します。

    Employee I d の新しいケースを追加する方法を示すスクリーンショット。

  10. Assign アクティビティの To プロパティと Value プロパティを 割り当てます

    このアクティビティの To プロパティと Value プロパティを示すスクリーンショット。

  11. ForEach アクティビティは、アンカー値に使用されます。 アンカー以外の値を割り当てるために、別の ForEach アクティビティを追加します。 この例では、 AttributeChange アンカーが使用されています。

    AttributeChange アンカーを使用して別の ForEach アクティビティを追加する

  12. AttributeChange アンカーの ForEach 本文内に Switch アクティビティを追加します。

    AttributeChange アンカーの Switch アクティビティを追加する

  13. 下の画面に従って式を追加します。

    switch アクティビティの式を追加する

  14. [ 新しいケースの追加] を選択し、 FirstName の値を入力します。 Sequence アクティビティをドラッグし、その中に Assign アクティビティを追加します。 Assign アクティビティの To プロパティと Value プロパティを 割り当てます

    シーケンスの新しいケースを追加する

  15. LastNameEmailなどの必要な属性の値を追加します。

    必要な属性の値を追加する

  16. [ 共通] で、 WebServiceCallActivity をドラッグし、引数の を設定 します

    Web サービス呼び出しアクティビティと値の設定を示すスクリーンショット セクション。

    重要

    このダイアログを使用して、引数の [名前]、[ 方向]、または [型] を変更しないでください。 これらの値のいずれかが変更されると、アクティビティは無効になります。 引数の Value のみを設定します。 この図に示すように、 値 wsResponse が設定されます。

  17. 最後に、Web サービス操作から返される応答をチェックに If アクティビティを追加します。

[追加] 操作を使用したエクスポート ワークフローの作成が完了しました。

エクスポート ワークフローの完了

このプロジェクトを の場所 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensionsに保存します。

ワークフローの削除

Web サービス構成ツールの次の手順に従って、エクスポート ワークフローを削除します。

  1. 構成するエクスポート ワークフローを選択します。 [ エクスポート] で[削除] を選択 します引数インポートは既に定義されており、アクティビティに固有のものです。 参照については、次の画面を参照してください。

    削除ワークフローをエクスポートする

  2. シーケンス アクティビティを追加します。 [変数の作成] を選択します。 ロジックに使用する変数に値を割り当てます。

    シーケンス アクティビティを追加する

    注意

    変数を追加する手順については、 完全インポート ワークフローの作成に関するセクションで説明します。

  3. 既に追加されている Sequence アクティビティ内で ForEach アクティビティをドラッグして、アンカー属性値を反復処理します。

  4. [ プロパティ] を 選択し、下の画面で [値 ] を設定します。 ここで objectToExport は引数です。

    ForEach アクティビティのプロパティを設定する方法を示すスクリーンショット。

  5. DisplayName を にForEach\<AnchorAttribute\>設定します。

    表示名を設定する方法を示すスクリーンショット。

  6. TypeArgument を にMicrosoft.MetadirectoryServices.AnchorAttribute設定します。

    型引数を設定する方法を示すスクリーンショット。

  7. AnchorAttributeForEach 本文内に Switch アクティビティを追加します。

    Switch アクティビティの追加を示すスクリーンショット。

  8. 下の画面に従って式を追加します。

    式を追加する

  9. [ 新しいケースの追加] を選択し、 EmployeeId の値を入力します。 Sequence アクティビティをドラッグし、その中に Assign アクティビティを追加します。

    新しいケースの追加とシーケンスへの割り当てを示すスクリーンショット。

  10. Assign アクティビティの To プロパティと Value プロパティを 割り当てます

    割り当てアクティビティの To プロパティと Value プロパティを割り当てる方法を示すスクリーンショット。

  11. [ 共通] で、 WebServiceCallActivity をドラッグし、引数の を設定 します

    Web サービス呼び出しアクティビティを追加するための引数の値を示すスクリーンショットと呼び出し。

    重要

    このダイアログを使用して、引数の [名前]、[ 方向]、または [型] を変更しないでください。 これらの値のいずれかが変更されると、アクティビティは無効になります。 引数の Value のみを設定します。 この図に示すように、 employeeID の値が設定されています。

  12. 最後に、Web サービス操作から返された応答をチェックする If アクティビティを追加します。

削除操作を使用したエクスポート ワークフローの 削除 が完了しました。

削除されたエクスポート ワークフロー

このプロジェクトを の場所 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensionsに保存します。

ワークフローを置き換える

Web サービス構成ツールの次の手順に従って、エクスポート ワークフローを置き換えます。

  1. 構成するエクスポート ワークフローを選択します。 [ エクスポート] で、[置換] を選択 します引数とインポートは既定義されており、アクティビティに固有です。 参照については、以下の画面を参照してください。

    ワークフローを置き換える

  2. Sequence アクティビティを追加します。

  3. AnchorAttribute> の ForEach アクティビティを<ドラッグします。

  4. アンカー以外の値を割り当てるために、別の ForEach<AttributeChange> アクティビティを追加します。

  5. 最後に、画面は次の図のようになります。 このアクティビティを構成する手順については、 エクスポート ワークフローを追加するセクションを参照してください。

    Switch アクティビティとアンカー属性を持つ ForEach

  6. [ 共通] で、 WebServiceCallActivity を ドラッグし、引数の を設定 します

    Web サービス呼び出しアクティビティを追加するための値を示すスクリーンショット。

    重要

    このダイアログを使用して、引数の 名前方向、または を変更しないでください。 これらの値のいずれかが変更されると、アクティビティは無効になります。 引数の Value のみを設定します。 この図に示すように、値 employee が設定されます。

  7. 最後に、Web サービス操作から返される応答をチェックする If アクティビティを追加します。

エクスポート ワークフローを置換操作に 置き換えるには 、次の操作を実行します。

エクスポート ワークフローを置き換える

このプロジェクトを の場所 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensionsに保存します。

アクティビティのデバッグ

ワークフロー テンプレートのデバッグに役立つカスタム アクティビティを次に示します。

ログ アクティビティ

ログ アクティビティは、ログ ファイルにテキスト メッセージを書き込むのに使用されます。 詳細については、ログ記録に関するページを参照してください。

注意

ワークフローを簡単にデバッグできない場合は、運用環境でワークフローをデバッグしてみてください。

ログ アクティビティを使用するには、次のプロパティを設定します。 [ワークフロー] Designerでアクティビティを選択し、そのアクティビティの [プロパティ] を表示すると、プロパティが表示されます。

WriteLine アクティビティ

WriteLine アクティビティは、プロバイダーのライターにテキスト メッセージを書き込むのに使用されます。 使用可能なライターがない場合、 WriteLine アクティビティはテキストをコンソール ウィンドウに書き込みます。

テキスト ボックスに、ライター ターゲットに表示するメッセージを書き込みます。

重要

このアクティビティにはコンソール ウィンドウを使用できません。 このタスクには別のウィンドウ出力ライターを使用します。

WriteLine アクティビティを使用するには、次のプロパティを設定します。 [ワークフロー] Designerでアクティビティを選択し、そのアクティビティの [プロパティ] を表示すると、プロパティが表示されます。

  • ログ レベル: ログ値に書き込むコンテンツの量を指定します。 次の値を指定できます。

    • 高: ログの重大度が [高] に設定されている場合は、 LogText メッセージをログ ファイルに書き込みます。
    • 詳細: ログの重大度が Verbose に設定されている場合は、 LogText メッセージをログ ファイルに書き込みます。
    • 無効: ログ ファイルに書き込まない。
  • LogText: ログに書き込むテキスト コンテンツを指定します。

  • タグ: ログに書き込まれるコンテンツの種類を識別するタグをテキストに追加します。 指定できる値は、Error、Trace、または Warning です。

次の手順