SOAP 的 Web 服务连接器工作流指南

本文介绍如何在 Web 服务配置工具中为数据源创建新项目。 按照以下步骤创建项目。

  1. 打开 Web 服务配置工具。 它将打开一个空白项目。

    Web 服务配置工具

  2. 选择"SOAP Project",然后选择"添加"。

    SOAP 项目

  3. 在下一页上,提供以下信息,然后选择"下一步":

    • 新的 Web 服务名称
    • WSDL (用于) 公开的服务、终结点和操作的地址
    • 命名空间
    • 安全模式 (身份验证类型)
  4. 在此示例中,"凭据"页显示基本安全模式的要求 (上一步中所选的) 。 如果为安全模式指定了"None",则不显示"凭据"页。 选择“下一步”。

    具有用户名和密码的 SOAP 服务屏幕

  5. 正在访问 WSDL 路径以检索服务信息,并显示公开函数的列表。 如果输入的 WSDL 路径不正确,则配置工具无法检索服务信息并引发错误。

    Web 服务下载进度屏幕

  6. 执行发现后,它会列出终结点和发现的操作。 选择完成

    发现的 SOAP 服务终结点和操作

  7. 执行编译。 编译是编译数据协定程序集的过程,这很耗时。 将告知用户任何编译错误。 执行发现后,该工具将显示以下页面:

    Soap 发现

  8. 展开 SOAP 项目 并选择以下屏幕中提供的公开终结点。 此屏幕列出在终结点下声明的操作。

    在终点下声明的操作

  9. 展开终结点将显示操作列表。 操作是由终结点声明的函数。 每个操作都处理可在服务中执行的任务类型。 此屏幕列出为操作声明的参数。 然后,在配置工作流时使用这些操作时定义这些参数。

    扩展的终结点

  10. 下一步是定义连接器空间架构,这是通过创建对象类型并定义其对象类型实现的。 选择"对象类型",然后选择"添加"。 在"新建"窗口中,添加新的对象类型并提供名称。 选择“确定”。

    定义对象类型

  11. 添加对象类型提供以下屏幕。

    查看新创建的对象类型

  12. 通过对应于对象类型的右窗格,可以维护所选对象类型的属性及其属性。 选择“添加”。 将打开一个新窗口来添加属性:

    属性和数据类型

    选择了定位点选项的属性和数据类型

  13. 添加所有必需属性后,将显示以下屏幕:

    具有属性信息的对象类型

  14. 对象类型和属性创建后,提供空白工作流,以满足 2016 Microsoft Identity Manager 2016 (MIM) 。

    对象类型显示员工可以执行的操作

在 Web 服务配置工具中配置工作流

下一步是为对象类型配置工作流。 工作流文件是 Web 服务连接器运行时使用的一系列活动。 工作流用于实现适当的MIM操作。 Web 服务配置工具可帮助你创建四个不同的工作流:

  • 导入:从数据源导入以下两种类型的工作流的数据:

    • 完全导入:可配置的完全导入。
    • 增量导入:Web 服务配置工具不支持。
  • 导出:将数据从MIM导出到连接的数据源。 操作支持以下三个操作。 你可以根据要求配置这些操作。

    • 添加
    • 删除
    • Replace
  • 密码:为用户执行密码管理 (对象类型) 。 此操作有两个操作可用:

    • 设置密码
    • 更改密码
  • 测试连接:配置工作流以检查与数据源服务器的连接是否成功建立。

注意

你可以为项目配置这些工作流,也可以从 Microsoft 下载中心下载 默认项目

工作流设计器

该工作流设计器打开工作区,以根据要求配置工作流。 对于新的 /existing (对象类型) ,配置工具为工具支持的工作流提供节点。

工作流设计器

该工作流设计器由以下 UI 元素组成:

  • 左窗格中的节点:这些节点可帮助你选择要设计哪个工作流。

  • 中心工作流设计器:可在此处删除用于配置工作流的活动。 若要完成MIM导出 (导入、密码管理) 操作,可以使用 .NET Workflow Framework 4 的标准和自定义工作流活动。 Web 服务配置工具使用标准和自定义工作流活动。 有关标准活动详细信息,请参阅 使用活动设计器

    • 在中央工作流设计器,任何活动旁边有感叹号的红色圆圈表示操作已被删除,并且未正确且完全定义。 将鼠标悬停在红色圆圈上,找出确切的错误。 正确定义活动后,红色圆圈将更改为黄色信息标记。

    • 在中央工作流设计器,任何活动旁边的黄色三角形信息标记指示已定义活动,但还可以执行更多操作来完成活动。 将鼠标悬停在黄色三角形上以查看详细信息。

  • 工具箱:打包所有工具,包括系统和自定义活动以及预定义语句以设计工作流。 有关详细信息,请参阅工具箱

  • 工具箱部分:工具箱具有以下部分和类别:

    • 说明:工具箱的标头。 一个选项卡访问"工具箱"和所选工作流活动的属性。

    • 导入工作流:用于配置导入工作流的自定义活动。

    • 导出工作流:用于配置导出工作流的自定义活动。

    • 常见:用于配置任何工作流的自定义活动。

    • 调试:工作流 4 中定义的用于调试的系统工作流活动。 这些活动允许对工作流进行问题跟踪。

    • 语句:工作流4中定义的系统工作流活动。 有关详细信息,请参阅 使用活动设计器

  • "属性": "属性" 选项卡显示在设计器区域中删除并选定的特定工作流活动的属性。 左侧的图形显示了 Assign 活动的属性。 对于每个活动,属性都不同并在配置自定义工作流时使用。 此选项卡允许你定义已放入中央工作流设计器的所选工具的属性。 有关详细信息,请参阅 属性

  • 任务栏: 任务栏包括三个元素: 变量参数导入。 这些元素与工作流活动一起使用。 有关详细信息,请参阅开发人员介绍 .net 4 (WF) Windows Workflow Foundation

在 Web 服务配置工具中配置完全导入工作流

以下步骤演示如何使用 Web 服务配置工具为 SOAP 配置完全导入工作流。

警告

此示例仅创建工作流。 可能需要对工作流进行修改,如在 API 中使用自定义逻辑。

  1. 选择要配置的完整导入工作流。 自变量导入已定义,并特定于活动。 有关详细信息,请参阅下面的屏幕。

    完全导入工作流参数

    导入的命名空间

    重新配置调用后,更改更改属性的名称,添加或更改命名空间,以引用 API 的返回结构和引用旧命名空间的对象类型的变量。 右窗格中的 "工具箱" 包含配置所需的所有特定于工作流的自定义活动。 为要用于逻辑的变量分配值。 请参阅中央工作流设计器的底部,并声明变量。 在下一步中声明变量。

  2. 添加 "序列" 活动。 将 " Sequence " 活动设计器从 "工具箱" 拖放到 Windows 工作流设计器图面上。 请参阅下面的屏幕。 序列活动包含按顺序执行的子活动的有序集合。

    Sequence 活动

  3. 若要添加变量,请找到 Create variable。 键入 " wsResponse " 作为 " 名称",选择 " 变量类型 " 下拉箭头,然后选择 " 浏览类型"。 随即显示一个对话框。 选择生成默认响应。 保持 " 范围 " 和 "默认值" 处于未选中 状态 。 或者,通过使用 " 属性 " 视图设置这些值。

    默认响应

    完全导入属性

  4. 现在,添加所有其他变量,如下所示。

    完全导入变量

  5. 将 " 序列 " 活动设计器从 " 工具箱 " 中的 "已添加" 序列活动中拖放。

  6. 拖动 "常见" 下提供的 WebServiceCallActivity 此活动用于调用发现后可用的 Web 服务操作。 这是一个自定义活动,在不同的操作方案中很常见。

    服务名称操作

    若要使用 Web 服务操作,请设置以下属性:

    • 服务名称:输入 web 服务的名称。

    • 终结点名称:指定所选服务的终结点名称。

    • 操作名称:为服务指定相应的操作。

    • 参数:选择 参数。 在下一个对话框中,分配参数值,如下图所示:

      分配参数

      重要

      不要使用此对话框更改参数的 名称方向类型 。 如果更改了这些值中的任何一个,则活动将变为无效。 仅设置参数的 。 如图所示,设置值 wsResponse

  7. 添加一个紧靠 WebServiceCallActivity 下面的 ForEach 活动 此活动用于循环访问所有特性 (对象类型的定位点和非定位点) 。 将此活动拖到工作流设计器图面时,它会自动枚举对象的所有属性名称。 根据以下屏幕设置所需的值:

    Web 服务调用活动

  8. CreateCSEntryChangeScope 活动拖入 ForEach 体。 此活动用于在工作流域中为每个单独的记录创建 CSEntryChange 对象的实例,同时从目标数据源检索数据。 拖动此活动将在屏幕上提供。 自动继承CreateAnchorAttribute活动。

    创建 CS 项更改作用域活动

  9. 将 DN 表达式的值设置为 ‘string.Concat ("Employee",item.EmployeeID)’ 。 将雇员 idAnchorValue设置为"Convert (item。雇员 Id) "。 将 ObjectTypeName 设置为 Employee。 进行这些修改后,会看到以下屏幕:

    获取员工 ID

    注意

    定位点值和对象名称因公开 web 服务的不同而异。 此图显示了一个示例。

  10. 将一个 " CreateAttributeChange " 活动拖到 " CreateAnchorAttribute " 活动下。 要拖动的活动数等于非定位属性的数目。 有关参考,请参阅下图。

    创建定位点

  11. CreateValueChangeActivity 拖到 " CreateAttributeChange " 活动中,并设置 "属性" 值,如下图所示。

    更改属性

    注意

    若要使用此活动,请从下拉箭头中选取并分配相应的字段,并分配值。 对于多值属性,请删除CreateAttributeChangeActivity活动中的多个CreateValueChangeActivity活动。

  12. 若要为某一属性添加条件,请添加一个 If 活动,如下图所示:

    If 活动

  13. 最后,添加一个 Assign 活动,并设置表达式,如下图所示:

    赋值活动并设置表达式

  14. 将此项目保存到该位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

    应将默认项目下载并保存到 %FIM_INSTALL_DIR\2010\Synchronization Service\Extensions 目标系统上的位置。 然后,项目将显示在 web 服务连接器向导中。

    运行可执行文件时,系统将提示你指定安装的位置。 输入 "保存位置"。

    重要

    可以从任何位置保存和打开项目文件, (具有其执行程序) 的适当访问权限。 只有保存到该文件夹中的项目文件 Synchronization Service\Extension 可以在 Web 服务连接器向导中选择,该向导可通过 MIM 同步 UI 访问。

    运行 Web 服务配置工具的用户需要以下权限:

    • 对同步服务扩展文件夹的完全控制。
    • 对注册表项的读取访问权限 HKLM\System\CurrentControlSet\Services\FIMSynchronizationService\Parameters ,扩展文件夹路径位于此位置。

在 Web 服务配置工具中配置导出工作流

以下各节说明如何使用 Web 服务配置工具导出工作流。

添加工作流

按照 Web 服务配置工具中的这些步骤添加导出工作流。
  1. 选择要配置的导出工作流。 在"导出"下,选择"添加"。 参数导入已定义,特定于活动。 有关参考,请参阅以下屏幕。

    添加

  2. 添加 Sequence 活动。 将"序列"活动设计器从"工具箱"拖动到Windows 工作流设计器图面。 Sequence 活动包含按顺序执行的子活动的有序集合。 选择“创建变量”。 将值分配给要用于逻辑的变量。

    导出

    注意

    创建完整导入工作流 部分介绍了添加 变量的步骤

  3. 在已添加的 Sequence 活动中拖动ForEach活动,以对定位点属性值进行重复访问。

  4. 选择 " 属性", 并按以下 屏幕设置"值"。 此处 objectToExport 是参数。

    设置 ForEach 活动的属性

  5. DisplayName设置为ForEach AnchorAttribute

    设置显示名称

  6. TypeArgument 设置为

    设置类型参数

  7. AnchorAttribute的 ForEach正文中添加 Switch 活动。

    添加 Switch 活动

  8. 按以下屏幕添加表达式。

    添加表达式

  9. 选择 "添加新案例", 并输入 EmployeeId 的值。 拖动" 序列" 活动,并在其内添加 "分配" 活动。

    添加新案例并将其分配给序列

  10. 为 Assign 活动 分配 "To""Value" 属性。

    分配

  11. ForEach活动用于定位点值。 添加另 一个 ForEach 活动以分配非定位点值。 本示例使用 AttributeChange 定位点。

    使用 AttributeChange 定位点添加另一个 ForEach 活动

  12. AttributeChange定位点的ForEach正文中添加 Switch 活动。

    为 AttributeChange 定位点添加 Switch 活动

  13. 按以下屏幕添加表达式。

    为 switch 活动添加表达式

  14. 选择 "添加新案例", 并输入 FirstName 的值。 拖动" 序列" 活动,并在其内添加 "分配" 活动。 为 Assign 活动 分配 "To""Value" 属性。

    为序列添加新案例

  15. 为所需的属性(如 LastName、Email添加值。

    为必需属性添加值

  16. "通用"下,拖动WebServiceCallActivity 并设置其参数的值

    添加 Web 服务调用活动并设置值

    重要

    请勿使用此对话框更改参数的"名称"、方向或"类型"。 如果更改了这些值中的任意一个,则活动将变为无效。 仅设置 参数 的值。 如图所示,设置了值 wsResponse。

  17. 最后,添加 If 活动以检查从 Web 服务操作返回的响应。

使用"添加"操作创建 导出 工作流已完成:

已完成的导出工作流

将此项目保存在 位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

删除工作流

按照 Web 服务配置工具中的这些步骤删除导出工作流。

  1. 选择要配置的导出工作流。 在"导出"下,选择"删除"。 参数导入已定义,特定于活动。 有关参考,请参阅以下屏幕。

    导出删除工作流

  2. 添加 Sequence 活动。 选择“创建变量”。 将值分配给要用于逻辑的变量。

    添加序列活动

    注意

    创建完整导入工作流 部分介绍了添加 变量的步骤

  3. 在已添加的 Sequence 活动中拖动ForEach活动,以对定位点属性值进行重复访问。

  4. 选择 "属性 ", 并设置以下 屏幕中的"值"。 此处 objectToExport 是参数。

    设置 ForEach 活动的属性

  5. DisplayName 设置为

    设置显示名称

  6. TypeArgument 设置为

    设置类型参数

  7. AnchorAttribute的 ForEach正文中添加 Switch 活动。

    添加 Switch 活动

  8. 按以下屏幕添加表达式。

    添加表达式

  9. 选择 "添加新案例", 并输入 EmployeeId 的值。 拖动" 序列" 活动,并在其内添加 "分配" 活动。

    添加新案例并将其分配给序列

  10. 为 Assign 活动 分配 "To""Value" 属性。

    分配

  11. "通用"下,拖动WebServiceCallActivity 并设置其参数的值

    添加 Web 服务调用活动并设置值

    重要

    请勿使用此对话框更改参数的"名称"、方向或"类型"。 如果更改了这些值中的任意一个,则活动将变为无效。 仅设置 参数 的值。 如图所示,设置了 employeeID 值。

  12. 最后,添加 If 活动以检查从 Web 服务操作返回的响应。

使用"删除"操作删除 导出 工作流已完成:

已删除的导出工作流

将此项目保存在 位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

替换工作流

按照 Web 服务配置工具中的这些步骤替换导出工作流。

  1. 选择要配置的导出工作流。 在 " 导出" 下,选择 " 替换"。 自变量导入已定义,并特定于活动。 请参阅下图以了解参考。

    替换工作流

  2. 添加 " 序列 " 活动。

  3. 拖动 AnchorAttribute 的ForEach活动

  4. 添加另一个 ForEach > AttributeChange活动以分配非定位点值。

  5. 最后,屏幕如下图所示。 有关配置此活动的说明,请查看 添加导出工作流部分。

    ForEach 和 Switch 活动和定位点属性

  6. 在 "常用" 下,拖动WebServiceCallActivity并设置其参数

    添加 Web 服务调用活动并设置值

    重要

    不要使用此对话框更改参数的 名称方向类型 。 如果更改了这些值中的任何一个,则活动将变为无效。 仅设置参数的 。 如图所示,设置的是 " employee " 值。

  7. 最后,添加一个 If 活动以检查从 web 服务操作返回的响应。

完成 替换 操作的导出工作流的替换:

替换导出工作流

将此项目保存到该位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions

调试活动

以下自定义活动可用于帮助调试工作流模板。

日志活动

日志活动用于将文本消息写入日志文件。 有关详细信息,请参阅 日志记录

注意

如果无法轻松地调试工作流,请尝试在生产环境中调试工作流。

若要使用 日志 活动,请设置以下属性。 在工作流设计器中选择活动并查看活动的 属性 时,将显示这些属性。

WriteLine 活动

WriteLine活动用于将文本消息写入提供程序的编写器。 如果没有任何编写器可用,则 WriteLine 活动会将文本写入到控制台窗口。

在文本框中,编写要在编写器目标中显示的消息。

重要

控制台窗口不能用于此活动。 为此任务使用其他窗口输出编写器。

若要使用 WriteLine 活动,请设置以下属性。 在工作流设计器中选择活动并查看活动的 属性 时,将显示这些属性。

  • 日志级别:指定要在日志值中写入的内容量。 可能的值包括:

    • High:如果日志严重性设置为 "高",则将 LogText 消息写入日志文件。
    • 详细:如果日志严重性设置为 "详细",则将 LogText 消息写入日志文件。
    • Disabled:不在日志文件中写入。
  • LogText:指定要在日志中写入的文本内容。

  • 标记:向文本添加标记,以标识在日志中写入的内容的类型。 可能的值包括:错误、跟踪或警告。

后续步骤