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 路径)
    • 命名空间
    • 安全模式 (身份验证类型)

    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. 通过与对象类型对应的右窗格,可以维护所选对象类型的属性及其属性。 单击“添加”按钮可在以下屏幕中添加属性。

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

    显示“名称”和“类型”属性字段的屏幕截图。

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

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

  5. 创建对象类型和属性后,会提供空白工作流,以满足在 MIM) Microsoft Identity Manager (执行的操作。

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

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

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

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

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

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

注意

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

工作流设计器

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

工作流设计器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

警告

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

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

    完整导入工作流参数

    导入的命名空间

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

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

    序列活动

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

    默认响应

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

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

    服务名称操作

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

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

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

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

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

      分配参数

      重要

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

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

    重要

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

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

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

后续步骤