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

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

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

    Web 服务配置工具

  2. 选择 SOAP 项目 ,然后选择“ 添加”。

    SOAP 项目

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

    • 新的 Web 服务名称
    • 用于检索公开的服务、终结点和操作的地址(WSDL 路径)
    • Namespace
    • 安全模式(身份验证类型)
  4. 在此示例中,将显示“ 凭据 ”页,其中包含 基本 安全模式的要求(在上一步中选择的模式)。 如果为安全模式指定了“无”,则不会显示“凭据”页。 选择“下一步”。

    包含用户名和密码的 SOAP 服务屏幕

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

    Web 服务下载进度屏幕

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

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

  7. 执行编译。 编译是编译数据协定程序集的过程,它可以是一项耗时的作。 用户被通知有关编译错误的信息。 执行发现后,该工具会显示以下页面:

    Soap 发现

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

    在终结点下声明的操作

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

    扩展的端点

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

    定义对象类型

  11. 添加对象类型会显示以下屏幕。

    查看新创建的对象类型

  12. 与对象类型对应的右侧窗格允许维护所选对象类型的属性及其特性。 选择 并添加。 打开一个新窗口以添加属性:

    属性和数据类型

    已选择“定位点”选项的属性和数据类型

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

    具有属性信息的对象类型

  14. 创建对象类型和属性后,系统提供空白工作流,以支持在 Microsoft Identity Manager 2016 (MIM) 中执行的操作。

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

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

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

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

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

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

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

注释

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

工作流设计器

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

工作流设计器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

警告

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

  1. 选择要配置的完全导入工作流。 参数导入已定义,特定于活动。 有关详细信息,请参阅以下屏幕。

    完全导入工作流参数

    导入的命名空间

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

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

    序列活动

  3. 若要添加变量,请找到 “创建变量”。 键入wsResponse作为名称,选择变量类型下拉列表,然后选择浏览类型。 将显示一个对话框。 选择 生成的>默认>响应。 取消选中 “作用域 ”和 “默认值 ”。 或者,使用 “属性” 视图设置这些值。

    默认响应

    完全导入属性

  4. 现在添加所有其他变量,下面是最后一个屏幕。

    完全导入变量

  5. 从已添加的 Sequence 活动内的“工具箱”中拖动一个或多个 Sequence 活动。

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

    服务名称操作

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

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

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

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

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

      分配参数

      重要

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

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

    Web 服务调用活动

  8. ForEach 正文中拖动 CreateCSEntryChangeScope 活动。 此活动用于在工作流域中为每个记录创建 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 服务连接器向导中。

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

    重要

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

    运行 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 设置为 Microsoft.MetadirectoryServices.AnchorAttribute.

    显示设置 TypeArgument 的屏幕截图。

  7. AnchorAttributeForEach 正文中添加 Switch 活动。

    屏幕截图显示了如何在 AnchorAttribute 的 ForEach 正文中添加切换活动。

  8. 按照下面的屏幕添加表达式。

    添加表达式

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

    显示如何为员工 ID 添加新案例的屏幕截图。

  10. Assign活动分配ToValue属性。

    显示此活动的 To 和 Value 属性的屏幕截图。

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

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

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

    为 AttributeChange 定位点添加 Switch 活动

  13. 按照以下屏幕的示例添加表达式。

    为 switch 活动添加表达式

  14. 选择添加新案件并输入FirstName的值。 拖动 序列 活动项并在其中添加 分配 活动项。 为 Assign 活动分配 ToValue 属性。

    为序列添加新事例

  15. 添加所需属性的值,例如 LastNameEmail 等。

    添加所需属性的值

  16. Common下,拖动WebServiceCallActivity,并为其Arguments设置Values

    显示 Web 服务调用活动并设置值的屏幕截图部分。

    重要

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

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

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

已完成的导出工作流

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

删除工作流

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

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

    导出删除工作流

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

    添加序列活动

    注释

    有关添加变量的步骤,请参阅用于创建 完整导入工作流的部分。

  3. 在已添加的 Sequence 活动中拖动一个 ForEach 活动,以循环访问定位点属性值。

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

    显示如何设置 ForEach 活动属性的屏幕截图。

  5. DisplayName 设置为 ForEach\<AnchorAttribute\>

    显示如何设置显示名称的屏幕截图。

  6. TypeArgument 设置为 Microsoft.MetadirectoryServices.AnchorAttribute

    显示如何设置类型参数的屏幕截图。

  7. AnchorAttributeForEach 正文中添加 Switch 活动。

    显示添加 Switch 活动的屏幕截图。

  8. 按照以下屏幕上的内容添加表达式。

    添加表达式

  9. 选择 “添加新实例” 并为 EmployeeId 输入一个值。 拖动 序列 操作并在其中添加一个 分配 操作。

    显示添加新事例并将其分配给序列的屏幕截图。

  10. Assign 活动分配 ToValue 属性。

    显示了如何为分配活动分配“To”和“Value”属性的屏幕截图。

  11. Common 中,拖动 WebServiceCallActivity,并为其 Arguments 设置 Values

    显示用于添加 Web 服务调用活动的参数值的屏幕截图和标注。

    重要

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

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

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

已删除的导出工作流

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

替换工作流

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

  1. 选择要配置的导出工作流。 在 “导出”下,选择“ 替换”。 参数导入已定义,特定于活动。 请参见下述屏幕以作参考。

    替换工作流

  2. 添加 Sequence 活动。

  3. <AnchorAttribute> 拖动一个 ForEach 活动。

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

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

    具有 Switch 活动和定位点属性的 ForEach

  6. 通用下,拖动 WebServiceCallActivity,并为其参数设置

    显示用于添加 Web 服务调用活动的值的屏幕截图。

    重要

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

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

将导出工作流替换为Replace操作已完成。

替换导出工作流

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

调试活动

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

日志活动

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

注释

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

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

WriteLine 活动

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

在文本框中,写下希望在编写器目标中可见的消息。

重要

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

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

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

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

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

后续步骤