REST API 示例的 Web 服务连接器工作流指南

本文介绍如何部署示例 REST API,以演练包含 REST API Web 数据源的 Web 服务配置工具。

先决条件

使用示例需要满足以下先决条件:

  • 已安装 Web 服务配置工具。
  • 已部署 REST 数据源示例服务。 从此处下载并安装示例。

注释

JSON 数据必须包含包含数组的属性的单个对象。

{

"EmployeeList":[

{"id":"1","employee_name":"Albano","employee_salary":"22213","employee_age":"37","profile_image":""},{"id":"2","employee_name":"Albano","employee_salary":"22213","employee_age":"37","profile_image":""}

]

}

在 Web 服务配置工具中配置 REST 项目发现

以下步骤演示如何在 Web 服务配置工具中为数据源创建新项目。

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

    Web 服务配置工具

  2. 选择 “文件”>“新建”>“REST 项目”

    创建新的 REST 项目

  3. 在左侧,选择 REST 项目 ,然后选择 “添加”。

    选择 REST 项目

  4. 在下一页上,提供以下信息:

    • 新的 Web 服务名称
    • 地址(REST API URL 路径)
    • Namespace
    • 安全模式(身份验证类型)

    REST 服务

    以下屏幕显示了这些值的示例:

    REST 服务的示例值

    安全模式 设置为 “无”。 将 地址 设置为 Azure 中托管的示例 JSON 服务器。

  5. 选择“确定”。 Web 服务配置工具中列出的 REST 项目。

    Web 服务配置工具中的 REST 项目

  6. 下一步是定义 REST API 调用并将调用转换为 Windows Communication Foundation (WCF) 调用。

    1. 展开 REST 项目 并选择 RESTSAMPLE 服务。

    2. 选择 并添加。 系统会提示添加两个值:

      输入 REST 服务的值

      1. 输入名称。 此步骤在屏幕截图中标记为 3。
      2. 输入 地址。 此步骤在屏幕截图中标记为 4。
      3. 选择“确定”。 REST 资源将添加到 RESTSAMPLE 服务的说明中。
  7. “资源 ”框中,选择刚刚添加的 REST 资源。 添加以下方法:

    将 REST 方法添加到资源

  8. 选择 REST 方法。 请注意,可以在同一资源中创建多个方法,并定义在执行期间传递的查询。

  9. 对于 GETALL 方法,无需查询。 将参数值留空。 导出或导入 REST API 时,必须根据函数定义示例请求 /或响应。 导航到此示例时,复制并粘贴返回的 JSON 数据。

    Web 服务配置工具中 REST 方法页的屏幕截图。

  10. 选择“保存”。 将项目保存到 C:\Program Files\Microsoft Forefront Identity Manager\2010\Synchronization Service\Extensions.

注释

保存项目后,将生成 WsConfig 文件。 配置文件包含前面在 Web 服务概述中定义的多个文件。

在 Web 服务配置工具中配置对象类型

以下步骤演示如何在 Web 服务配置工具中为数据源配置对象类型。

  1. 下一步是定义连接器空间架构。 这是通过创建对象类型并定义其对象类型来实现的。 单击左窗格中 的对象类型 ,然后单击“ 添加 ”按钮。 执行此操作将打开以下屏幕。 添加新的对象类型并提供名称。 单击“确定”按钮。

    显示用于创建对象类型的对话框的屏幕截图。

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

    显示已添加的新对象类型的屏幕截图。

  3. 与对象类型对应的右侧窗格允许维护所选对象类型的属性及其特性。 单击“添加”按钮后,会显示以下屏幕,您可以在其中添加属性。

    显示将属性添加到对象类型的页面的屏幕截图。

    显示 Name 和 Type 的属性字段的屏幕截图。

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

    显示对象类型的已完成属性的屏幕截图。

  5. 创建对象类型和属性后,提供空白工作流,以支持在Microsoft Identity Manager (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 服务配置工具为 REST API 配置完整导入工作流。

警告

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

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

    完全导入工作流参数

    导入的命名空间

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

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

    序列活动

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

    默认响应

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

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

    服务名称操作

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

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

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

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

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

      分配参数

      重要

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

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

    Web 服务调用活动

  7. 在某些情况下,可能需要打开 WsConfig 文件中的 generated.dll。 复制此 WsConfig 文件,并使用 .zip 扩展名对其进行重命名。 请使用您首选的 .NET 反射器工具来打开并提取 generated.dll。

    配置文件

  8. 标识 EmployeeList 的公共命名空间:

    员工列表代码

    接下来,将此返回添加到工作流 ForEach

    将员工列表添加到 ForEach 工作流

  9. ForEach 正文中拖动 CreateCSEntryChangeScope 活动。 此活动用于在工作流域中为每个记录创建 CSEntryChange 对象的实例,同时从目标数据源检索数据。 拖动此活动会显示以下屏幕。 CreateAnchorAttribute 活动会自动继承。 将 DN 值更新为首选域名。

    创建 CS 条目更改范围活动

    注释

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

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

    创建定位点

    注释

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

  11. 将此项目保存到位置 %FIM_INSTALL_FOLDER%\Synchronization Service\Extensions。 然后,按照 Web 服务 MA 配置中所述配置管理代理。

    保存 REST 项目

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

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

    重要

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

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

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

后续步骤