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

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

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

    Web 服务配置工具

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

    SOAP 项目

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

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

    包含用户名和密码的 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 导出到连接的数据源。 操作支持以下三个操作。 可以根据要求配置这些操作。

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

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

注意

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

工作流设计器

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

工作流设计器

工作流Designer由以下 UI 元素组成:

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

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

    • 在 Central Workflow Designer中,任何活动旁边带有感叹号的红色圆圈表示操作已删除且未正确且完全定义。 将鼠标悬停在红色圆圈上可找出确切的错误。 正确定义活动后,红色圆圈将变为黄色信息标记。

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

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

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

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

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

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

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

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

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

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

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

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

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

警告

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

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

    完整导入工作流参数

    导入的命名空间

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

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

    序列活动

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

    默认响应

    完整导入属性

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

    完整导入变量

  5. 在已添加 的序列 活动内,从 工具箱 中再拖动一个序列活动设计器。

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

    服务名称操作

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

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

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

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

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

      分配参数

      重要

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

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

    Web 服务调用活动

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

    创建 CS 条目更改范围活动

  9. 将 DN 表达式的值设置为 ‘string.Concat ("Employee",item.EmployeeID)’。 将 EmployeeIDAnchorValue 设置为“Convert.tostring (项。EmployeeID) ”。ObjectTypeName 设置为 Employee。 进行这些修改后,你将看到以下屏幕:

    获取员工 ID

    注意

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

  10. CreateAttributeChange 活动拖到 CreateAnchorAttribute 活动下方。 要拖动的活动数等于非定位点属性的数量。 有关参考,请参阅下图。

    创建定位点

  11. 拖动 CreateAttributeChangeChange 活动 中的 CreateValueChangeActivity ,并按照下面的屏幕设置属性值。

    更改属性

    注意

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

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

    If 活动

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

    分配活动并设置表达式

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

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

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

    重要

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

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

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

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

以下部分演示如何使用 Web 服务配置工具导出工作流。

添加工作流

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

    显示导航面板中的“添加”的屏幕截图。

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

    Export

    注意

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

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

  4. 选择 “属性” ,然后根据以下屏幕设置 。 此处 的 objectToExport 是参数。

    显示为 ForEach 活动设置的值的屏幕截图。

  5. DisplayName 设置为 ForEach<AnchorAttribute>

    显示设置 DisplayName 的屏幕截图。

  6. TypeArgument 设置为 Microsoft.MetadirectoryServices.AnchorAttribute

    显示设置 TypeArgument 的屏幕截图。

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

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

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

    添加表达式

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

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

  10. Assign 活动分配ToValue 属性。

    显示此活动的“To”和“值”属性的屏幕截图。

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

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

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

    为 AttributeChange 定位点添加 Switch 活动

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

    为 switch 活动添加表达式

  14. 选择“ 添加新大小写 ”,并输入 FirstName 的值。 拖动 “序列” 活动,并在其中添加 “分配” 活动。 为 Assign 活动分配ToValue 属性。

    为序列添加新事例

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

    添加所需属性的值

  16. 在“通用”下,拖动 WebServiceCallActivity 并为其参数设置

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

    重要

    请勿使用此对话框更改参数 的名称方向类型 。 如果这些值中的任何一个发生更改,则活动将变为无效。 仅设置 参数的 Value 。 如图所示,已设置 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”和“值”属性的屏幕截图。

  11. 在“通用”下,拖动 WebServiceCallActivity 并为其参数设置

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

    重要

    请勿使用此对话框更改参数 的名称方向类型 。 如果这些值中的任何一个发生更改,则活动将变为无效。 仅设置 参数的 Value 。 如图所示,已设置 值 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 服务调用活动的值的屏幕截图。

    重要

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

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

使用 Replace 操作替换导出工作流已完成:

替换导出工作流

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

调试活动

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

日志活动

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

注意

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

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

WriteLine 活动

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

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

重要

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

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

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

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

  • 标记:向文本添加标记,以标识正在日志中写入的内容类型。 可能的值为:Error、Trace 或 Warning。

后续步骤