SOAP 用 Web Service Connector ワークフロー ガイド
この記事では、Web サービス構成ツールでデータ ソースの新しいプロジェクトを作成する方法について説明します。 プロジェクトを作成するには、次の手順に従います。
Web サービス構成ツールを開きます。 空のプロジェクトが開きます。
[ SOAP プロジェクト ] を選択し、[追加] を選択 します。
次のページで、次の情報を入力し、[ 次へ] を選択します。
- 新しい Web サービス名
- 公開されているサービス、エンドポイント、および操作を取得するアドレス (WSDL パス)
- 名前空間
- セキュリティ モード (認証の種類)
このサンプルでは、[ 資格情報] ページに 、基本 セキュリティ モード (前の手順で選択したモード) の要件が表示されます。 セキュリティ モードに "None" が指定されている場合、資格情報ページは表示されません。 [次へ] を選択します。
WSDL パスにアクセスしてサービス情報を取得し、公開されている関数の一覧が表示されます。 入力した WSDL パスが正しくない場合、構成ツールはサービス情報の取得に失敗し、エラーをスローします。
検出が実行されると、検出されたエンドポイントと操作が一覧表示されます。 [完了] を選択します。
コンパイルが実行されます。 コンパイルは、データ コントラクト アセンブリをコンパイルするプロセスであり、時間のかかる操作になる可能性があります。 コンパイル エラーがユーザーに通知されます。 検出が実行されると、ツールに次のページが表示されます。
SOAP プロジェクトを展開し、次の画面で公開されているエンドポイントを選択します。 この画面には、エンドポイントで宣言された操作が一覧表示されます。
エンドポイントを展開すると、操作の一覧が表示されます。 操作は、エンドポイントによって宣言された関数です。 各操作は、サービス内で実行できるタスクの種類に対応します。 この画面には、操作に対して宣言されている引数が一覧表示されます。 これらの引数は、ワークフローの構成で操作を使用するときに定義されます。
次の手順では、コネクタ スペース スキーマを定義します。これは、オブジェクト型を作成し、そのオブジェクト型を定義することによって実現されます。 [ オブジェクトの種類] を選択し、[ 追加] を選択します。 新しいウィンドウで、新しいオブジェクトの種類を追加し、名前を指定します。 [OK] を選択します。
オブジェクトの種類を追加すると、以下の画面が表示されます。
オブジェクトの種類に対応する右側のペインでは、選択したオブジェクトの種類の属性とそのプロパティを維持できます。 [追加] を選択します。 属性を追加するための新しいウィンドウが開きます。
必要なすべての属性を追加すると、次の画面が表示されます。
オブジェクトの種類と属性が作成されると、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 でカスタム ロジックを使用するなど、ワークフローの変更が必要になる場合があります。
構成するフル インポート ワークフローを選択します。 引数とインポートは既に定義されており、アクティビティに固有のものです。 詳細については、次の画面を参照してください。
呼び出しの再構成後に、変更する属性の名前を変更し、名前空間を追加または変更して、API の戻り構造を参照する変数と、古い名前空間を参照するオブジェクト型に変更します。 右側のウィンドウのツールボックスには、構成に必要なすべてのカスタム ワークフロー固有のアクティビティが表示されます。 ロジックに使用する変数に値を割り当てます。 中央ワークフロー デザイナーの下部セクションに移動し、変数を宣言します。 変数は、次の手順で宣言します。
シーケンス アクティビティを追加します。 [ツールボックス] からシーケンス アクティビティ デザイナーをドラッグし、Windows ワークフロー Designer画面にドロップします。 次の画面を参照してください。 Sequence アクティビティには、順番に実行される子アクティビティの順序付けられたコレクションが含まれます。
変数を追加するには、変数の 作成を見つけます。 [名前] に「wsResponse」と入力し、[変数の種類] ドロップダウンを選択し、[型の参照] を選択します。 ダイアログが表示されます。 生成された>既定の応答を選択します>。 [スコープ] と [既定値] はオフのままにします。 または、[ プロパティ] ビューを使用してこれらの値を設定します。
次に、他のすべての変数を追加します。以下は最終的な画面です。
既に追加されている Sequence アクティビティ内の [ツールボックス] からもう 1 つのシーケンス アクティビティ デザイナーをドラッグします。
[共通] の下に表示される WebServiceCallActivity をドラッグします。このアクティビティは、検出後に使用可能な Web サービス操作を呼び出すために使用されます。 これはカスタム アクティビティであり、さまざまな操作シナリオで一般的です。
Web サービス操作を使用するには、次のプロパティを設定します。
サービス名: Web サービスの名前を入力します。
[エンドポイント名]: 選択したサービスのエンドポイント名を指定します。
操作名: サービスのそれぞれの操作を指定します。
引数: [引数] を選択します。 次のダイアログで、次の図に示すように引数の値を割り当てます。
重要
このダイアログを使用して、引数の [名前]、[ 方向]、または [型] を変更しないでください。 これらの値のいずれかが変更されると、アクティビティは無効になります。 引数の Value のみを設定します。 この図に示すように、 値 wsResponse が設定されます。
WebServiceCallActivity のすぐ下に ForEach アクティビティを追加します。このアクティビティは、オブジェクト型のすべての属性 (アンカーと非アンカーの両方) を反復処理するために使用されます。 このアクティビティを Workflow Designer サーフェスにドラッグすると、オブジェクトのすべての属性名が自動的に列挙されます。 次の画面に従って、必要な値を設定します。
CreateCSEntryChangeScope アクティビティを ForEach 本文内にドラッグします。 このアクティビティは、ターゲット データ ソースからデータを取得するときに、それぞれのレコードのワークフロー ドメインに CSEntryChange オブジェクトのインスタンスを作成するために使用されます。 このアクティビティをドラッグすると、画面の下に表示されます。 CreateAnchorAttribute アクティビティは自動的に継承されます。
DN 式の値を として
‘string.Concat ("Employee",item.EmployeeID)’
設定します。 EmployeeID の AnchorValue を 'Convert.tostring(item) に設定します。EmployeeID)'。 ObjectTypeName をEmployee に設定します。 これらの変更を行うと、次の画面が表示されます。注意
アンカー値とオブジェクト名は、公開されている Web サービスによって異なります。 図は例を示しています。
CreateAttributeChange アクティビティを CreateAnchorAttribute アクティビティの下にドラッグします。 ドラッグするアクティビティの数は、アンカー以外の属性の数と同じです。 参照については、次の図を参照してください。
CreateAttributeChange アクティビティ内で CreateValueChangeActivityをドラッグし、次の画面に従って属性値を設定します。
注意
このアクティビティを使用するには、ドロップダウンからそれぞれのフィールドを選択して割り当て、値を割り当てます。 複数値属性の場合は、CreateAttributeChangeActivity アクティビティ内で複数の CreateValueChangeActivity アクティビティを削除します。
属性の条件を追加するには、次の図に示すように If アクティビティを追加します。
最後に、次の図に示すように 、Assign アクティビティを追加し、式を設定します。
このプロジェクトを の場所
%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 サービス構成ツールの次の手順に従って、エクスポート ワークフローを追加します。構成するエクスポート ワークフローを選択します。 [ エクスポート] で、[追加] を選択 します。 引数とインポートは既に定義されており、アクティビティに固有のものです。 参照については、次の画面を参照してください。
シーケンス アクティビティを追加します。 [ツールボックス] からシーケンス アクティビティ デザイナーをドラッグし、Windows ワークフロー Designer画面にドロップします。 Sequence アクティビティには、順番に実行される子アクティビティの順序付けられたコレクションが含まれます。 [変数の作成] を選択します。 ロジックに使用する変数に値を割り当てます。
注意
変数を追加する手順については、 完全インポート ワークフローの作成に関するセクションで説明します。
既に追加されている Sequence アクティビティ内で ForEach アクティビティをドラッグして、アンカー属性値を反復処理します。
[ プロパティ] を 選択し、次の画面に従って [値] を 設定します。 ここで objectToExport は引数です。
DisplayName をForEach<AnchorAttribute> に設定する
TypeArgument を に
Microsoft.MetadirectoryServices.AnchorAttribute
設定します。AnchorAttribute の ForEach 本文内に Switch アクティビティを追加します。
下の画面に従って式を追加します。
[ 新しいケースの追加] を選択し、 EmployeeId の値を入力します。 Sequence アクティビティをドラッグし、その中に Assign アクティビティを追加します。
Assign アクティビティの To プロパティと Value プロパティを 割り当てます 。
ForEach アクティビティは、アンカー値に使用されます。 アンカー以外の値を割り当てるために、別の ForEach アクティビティを追加します。 この例では、 AttributeChange アンカーが使用されています。
AttributeChange アンカーの ForEach 本文内に Switch アクティビティを追加します。
下の画面に従って式を追加します。
[ 新しいケースの追加] を選択し、 FirstName の値を入力します。 Sequence アクティビティをドラッグし、その中に Assign アクティビティを追加します。 Assign アクティビティの To プロパティと Value プロパティを 割り当てます 。
LastName、Emailなどの必要な属性の値を追加します。
[ 共通] で、 WebServiceCallActivity をドラッグし、引数の 値 を設定 します。
重要
このダイアログを使用して、引数の [名前]、[ 方向]、または [型] を変更しないでください。 これらの値のいずれかが変更されると、アクティビティは無効になります。 引数の Value のみを設定します。 この図に示すように、 値 wsResponse が設定されます。
最後に、Web サービス操作から返される応答をチェックに If アクティビティを追加します。
[追加] 操作を使用したエクスポート ワークフローの作成が完了しました。
このプロジェクトを の場所 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions
に保存します。
ワークフローの削除
Web サービス構成ツールの次の手順に従って、エクスポート ワークフローを削除します。
構成するエクスポート ワークフローを選択します。 [ エクスポート] で[削除] を選択 します。 引数とインポートは既に定義されており、アクティビティに固有のものです。 参照については、次の画面を参照してください。
シーケンス アクティビティを追加します。 [変数の作成] を選択します。 ロジックに使用する変数に値を割り当てます。
注意
変数を追加する手順については、 完全インポート ワークフローの作成に関するセクションで説明します。
既に追加されている Sequence アクティビティ内で ForEach アクティビティをドラッグして、アンカー属性値を反復処理します。
[ プロパティ] を 選択し、下の画面で [値 ] を設定します。 ここで objectToExport は引数です。
DisplayName を に
ForEach\<AnchorAttribute\>
設定します。TypeArgument を に
Microsoft.MetadirectoryServices.AnchorAttribute
設定します。AnchorAttribute の ForEach 本文内に Switch アクティビティを追加します。
下の画面に従って式を追加します。
[ 新しいケースの追加] を選択し、 EmployeeId の値を入力します。 Sequence アクティビティをドラッグし、その中に Assign アクティビティを追加します。
Assign アクティビティの To プロパティと Value プロパティを 割り当てます 。
[ 共通] で、 WebServiceCallActivity をドラッグし、引数の 値 を設定 します。
重要
このダイアログを使用して、引数の [名前]、[ 方向]、または [型] を変更しないでください。 これらの値のいずれかが変更されると、アクティビティは無効になります。 引数の Value のみを設定します。 この図に示すように、 employeeID の値が設定されています。
最後に、Web サービス操作から返された応答をチェックする If アクティビティを追加します。
削除操作を使用したエクスポート ワークフローの 削除 が完了しました。
このプロジェクトを の場所 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions
に保存します。
ワークフローを置き換える
Web サービス構成ツールの次の手順に従って、エクスポート ワークフローを置き換えます。
構成するエクスポート ワークフローを選択します。 [ エクスポート] で、[置換] を選択 します。 引数とインポートは既に定義されており、アクティビティに固有です。 参照については、以下の画面を参照してください。
Sequence アクティビティを追加します。
AnchorAttribute> の ForEach アクティビティを<ドラッグします。
アンカー以外の値を割り当てるために、別の ForEach<AttributeChange> アクティビティを追加します。
最後に、画面は次の図のようになります。 このアクティビティを構成する手順については、 エクスポート ワークフローを追加するセクションを参照してください。
[ 共通] で、 WebServiceCallActivity を ドラッグし、引数の 値 を設定 します。
重要
このダイアログを使用して、引数の 名前、 方向、または 型 を変更しないでください。 これらの値のいずれかが変更されると、アクティビティは無効になります。 引数の Value のみを設定します。 この図に示すように、値 employee が設定されます。
最後に、Web サービス操作から返される応答をチェックする If アクティビティを追加します。
エクスポート ワークフローを置換操作に 置き換えるには 、次の操作を実行します。
このプロジェクトを の場所 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions
に保存します。
アクティビティのデバッグ
ワークフロー テンプレートのデバッグに役立つカスタム アクティビティを次に示します。
ログ アクティビティ
ログ アクティビティは、ログ ファイルにテキスト メッセージを書き込むのに使用されます。 詳細については、ログ記録に関するページを参照してください。
注意
ワークフローを簡単にデバッグできない場合は、運用環境でワークフローをデバッグしてみてください。
ログ アクティビティを使用するには、次のプロパティを設定します。 [ワークフロー] Designerでアクティビティを選択し、そのアクティビティの [プロパティ] を表示すると、プロパティが表示されます。
WriteLine アクティビティ
WriteLine アクティビティは、プロバイダーのライターにテキスト メッセージを書き込むのに使用されます。 使用可能なライターがない場合、 WriteLine アクティビティはテキストをコンソール ウィンドウに書き込みます。
テキスト ボックスに、ライター ターゲットに表示するメッセージを書き込みます。
重要
このアクティビティにはコンソール ウィンドウを使用できません。 このタスクには別のウィンドウ出力ライターを使用します。
WriteLine アクティビティを使用するには、次のプロパティを設定します。 [ワークフロー] Designerでアクティビティを選択し、そのアクティビティの [プロパティ] を表示すると、プロパティが表示されます。
ログ レベル: ログ値に書き込むコンテンツの量を指定します。 次の値を指定できます。
- 高: ログの重大度が [高] に設定されている場合は、 LogText メッセージをログ ファイルに書き込みます。
- 詳細: ログの重大度が Verbose に設定されている場合は、 LogText メッセージをログ ファイルに書き込みます。
- 無効: ログ ファイルに書き込まない。
LogText: ログに書き込むテキスト コンテンツを指定します。
タグ: ログに書き込まれるコンテンツの種類を識別するタグをテキストに追加します。 指定できる値は、Error、Trace、または Warning です。