您可以通过在 Workspace ONE Intelligence 中集成应用批准工作流来控制应用程序许可证的成本。

许多 Win32 应用程序的许可证价格高昂。您可以使用应用批准限制哪些用户可以安装这些应用程序以及控制这些资源的管理成本。

集成将多个系统组合在一起处理应用批准请求。

  • Workspace ONE UEM - 管理应用程序并将其分发到设备上的 Workspace ONE Intelligent Hub 目录。
  • VMware Workspace ONE Intelligence - 在 ServiceNow 环境和 Workspace ONE UEM 部署之间进行通信。
  • ServiceNow - 管理请求和批准过程。

技术预览版

Workspace ONE Intelligence 将应用批准作为技术预览版提供。技术预览版功能未经过充分测试,某些功能无法按预期工作。但是,这些预览有助于 Workspace ONE Intelligence 改进当前功能,并开发未来的增强功能。要使用技术预览版功能,请联系您的 VMware 代表。

应用批准流程

应用批准从用户请求在 Windows 10 设备上安装应用开始。

  1. 用户通过其设备上的 Workspace ONE Intelligent Hub 应用请求安装应用程序。
  2. VMware Workspace ONE Intelligence 将请求发送到 ServiceNow。这些请求包含有关用户、设备和请求的应用程序的信息。
  3. ServiceNow 根据工作流(在 ServiceNow 中配置)和公司政策处理请求。
  4. ServiceNow 会将响应发送回 VMware Workspace ONE Intelligence。响应包括批准或拒绝。
    • 批准会使应用程序自动安装。
    • 拒绝会导致 Workspace ONE Intelligent Hub 中恢复为“请求”状态。
  5. 如果获得批准,Workspace ONE UEM 会将应用发送到 Workspace ONE Intelligent Hub,以便在设备上安装。

配置应用批准

可使用 Workspace ONE Intelligence 和 ServiceNow 服务来请求和批准应用程序安装。首先在 ServiceNow 中进行配置,然后在 Workspace ONE Intelligence 中将信息添加到 ServiceNow 连接,最后在 Workspace ONE UEM 中编辑应用分配。

必备条件

在使用应用批准之前,请先配置列出的集成、系统和设置。

  • 使用 Workspace ONE UEM v1910 或更高版本。
  • 向 Workspace ONE Intelligence 注册 Workspace ONE UEM。
  • 具有 ServiceNow 实例与 ServiceNow Integration Hub 插件,并向 Workspace ONE Intelligence 注册 ServiceNow。
  • 使用 Hub 服务,并使用 Intelligent Hub 应用作为您的应用目录。
  • 使用 Windows 10 设备。
  • 使用在 Workspace ONE UEM 中管理的本机应用(内部、公共和已购买)。
  • 了解 Workspace ONE UEM 中的应用分配。访问“向应用程序添加分配项和排除项”,以了解有关应用分配的信息。

设置 ServiceNow 以处理入站应用请求

设置 ServiceNow 以处理入站、应用请求,以便您可以自定义实例和批准策略。此过程使用 ServiceNow 的脚本化 REST API 功能。

要开始请求过程,Workspace ONE Intelligence 会将一个请求(如示例代码)发送到 ServiceNow。请求包括有关请求安装的用户、设备和应用程序的详细信息。

{
  "RequestId": "bffb4469-56fb-4141-9ab0-0897f65143ba",
  "RequestFor": {
    "UserId": "15",
    "UserAttributes": {
      "user_name": "username",
      "last_name": "user",
      "first_name": "name",
      "email": "username@example.com"
    }
  },
  "Domain": "${domain}",
  "DeviceId": 123,
  "DeviceProperties": {
    "name": "Device Name",
    "device_udid": "F11C43E8307092418D7D5B0D9B48F235",
    "platform": "Windows 10"
  },
  "Notes": "Notes",
  "CatalogItem": {
    "Id": "267",
    "Name": "App Name",
    "Categories": null,
    "Properties": {
      "package_id": "{12345A78-40C1-2702-0000-000004000000}",
      "version": "9.20.0",
      "platform": "WinRT"
    }
  },
  "DueDate": 1568989813956,
  "Links": {
    "ApprovalNotify": {
      "Url": "<CallbackURL>"
    }
  }
}
  1. 登录到 ServiceNow 并搜索 Scripted REST APIs
  2. 添加脚本化 REST API
  3. 名称文本框中输入描述性名称,例如 Workspace ONE App Approval
  4. 输入 API ID 作为 appapproval,并记录您的 API 命名空间,因为在此过程的稍后,您需要在 Workspace ONE Intelligence 中输入该信息。输入 API ID
  5. 转到“资源”部分,添加一个资源。
  6. 对于“资源名称”,请输入 Request。
  7. 对于“HTTP 方法”,请使用 POST。
  8. 检查相对路径是否为 /request。资源路径显示为 /api/<namespace>/appapproval/request。如果路径未采用此格式,则请求将失败。要修复此问题,请检查脚本化 REST API 和资源的名称是否正确。
  9. 配置脚本以匹配您的环境。将值存储为 ServiceNow 请求的一部分。如果存储值,则会在批准或拒绝请求票证后编译出站 API 请求。您可以自定义部署的示例代码。您可以在请求中创建一个 cart 项目,或者将用户名与您系统的 SYSID 相关联。
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
    var RequestID = request.body.data.RequestId;
    var CallbackURL = request.body.data.Links.ApprovalNotify.Url;
    var DeviceID = request.body.data.DeviceId;
    var Notes = request.body.data.Notes;
    var AppName = request.body.data.CatalogItem.Name;
    var UserID = request.body.data.RequestFor.UserId;
    var UserName = request.body.data.RequestFor.UserAttributes.user_name;
    var FirstName = request.body.data.RequestFor.UserAttributes.first_name;
    var LastName = request.body.data.RequestFor.UserAttributes.last_name;
    gs.info("Request Recieved");
    var create = new GlideRecord('sc_request');
    create.initialize();
    create.setValue('short_description',"Request for Installation of " + AppName);
    create.setValue('description',FirstName + " " + LastName + " Requests Installation of " + AppName);
    create.setValue('u_uem_callback_url',CallbackURL);
    create.setValue('u_uem_notes',Notes);
    create.setValue('u_uem_device_id',DeviceID);
    create.setValue('u_uem_request_id',RequestID);
    create.setValue('u_uem_user_id',UserID);
    create.setValue('u_requesting_user',UserName);
     
    create.insert();
     
    response.setStatus(200);
})(request, response);

在 ServiceNow 中将自定义字段添加到请求票证

使用 ServiceNow 中的表格将自定义字段添加到请求票证。自定义字段有助于编译发送到 Workspace ONE Intelligence 的出站批准和拒绝 API 请求。

  1. 在 ServiceNow 导航栏中搜索 Tables,然后选择系统定义 > 表

  2. 搜索表名称 sc_request,然后打开该表以查看列详细信息。如果要按表标签进行搜索,则表的标签为请求。

  3. 通过添加系统返回到 Workspace ONE Intelligence 的所需值来添加列,并在 API 请求中添加相应的值。

    • ApprovalNotify.URL = UEM 回调 URL
    • DeviceId = UEM 设备 ID
    • RequestId = UEM 请求 ID
  4. 添加可选值。如果更改默认列名称,请更新脚本以使用更新的列名称。

    • UserId = UEM 用户 ID
    • user_name = 请求用户
    • Notes = UEM 说明
    类型 列标签 列名称 最大长度
    字符串 UEM 回调 URL u_uem_callback_url 2048
    整数 UEM 设备 ID u_uem_device_id 不适用
    字符串 UEM 请求 ID u_uem_request_id 40
    整数 UEM 用户 ID u_uem_user_id 不适用
    字符串 请求用户 u_requesting_user 40
    字符串 UEM 说明 u_uem_notes 4000
  5. 选择更新并保存表格。

  6. 或者,您可以使用系统 UI表单区域来隐藏 UI 中的列和值。隐藏列和值会将其设置为仅在 API 请求中使用。

在 ServiceNow 中配置操作

  1. 在 ServiceNow 中,转到流设计器 > 新建 > 操作,为工作流配置一个操作。ServiceNow 工作流会向 Workspace ONE Intelligence 发送批准或拒绝响应。
  2. 操作属性中输入名称和元数据。操作属性
  3. 定义操作的输入
    • 请求 ID
    • 设备 ID
    • 更新者
    • 备注
    • 更新时间
    • 回调 URL
    • 批准 输入
  4. 通过在操作大纲部分中选择加号 (+) 来添加脚本步骤。然后,转到实用程序 > 脚本步骤。脚本步骤会将批准状态字符串转换为大写,以便为 API 调用做准备。
    • 将输入变量定义为 approval_status,然后将其拖动到批准值中。
    • 添加示例代码以将批准状态转换为大写。
    • 将输出变量定义为 ApprovalStatus
(function execute(inputs, outputs) {
var  approval_lc = inputs.approval_status;
 
outputs.ApprovalStatus = approval_lc.toUpperCase();
})(inputs, outputs);

Script_Step

  1. 向操作添加 REST 步骤
    • 使用回调 URL 变量作为基本 URL 值。
    • 对于 HTTP 方法,请使用 POST
    • 添加标题 Content-Type =application/json
    • 请求类型定义为 Text
    • 输入请求正文负载,如示例代码。将示例代码中的值替换为数据变量。
    • 保存操作。
{
"data":{
    "request_id": "action-Request ID", 
    "device_id": "action-Device ID", 
    "approval_status": "step-Script step-ApprovalStatus", 
    "updated_by": "action-Updated By", 
    "notes" : "action-Notes", 
    "updated_at" : "action-Updated At"
    }
}

REST 步骤

在 ServiceNow 中创建工作流

  1. 在 ServiceNow 中,根据您组织的批准策略,创建具有批准操作的工作流。
  2. 流设计器中,选择新建
  3. 应用程序运行方式中填充元数据,包括属性。流属性
  4. 要创建触发器,请使用已更新来查找票证状态中的更改。已更新
  5. 对于表格,请选择请求[sc_request]
  6. 条件定义为 [Approval - is one of - Approved, Rejected] and [UEM Callback URL - is not empty]
  7. 对于运行触发器,选择一次运行触发器
  8. 添加 AppApproval 操作。添加操作
  9. 从请求表中添加与所需操作输入匹配的相应值。添加值
  10. 保存并激活工作流。

将脚本化 REST API 命名空间添加到 Intelligence

  1. 在 Workspace ONE Intelligence 中,转到集成 > 自动化连接器 > ServiceNow
  2. 编辑连接以包含 API 命名空间。您在将脚本化 REST API 添加到 ServiceNow 时已记录了此值。编辑连接

需要批准

  1. 若需批准,请在 Workspace ONE UEM 中编辑应用分配。编辑应用分配以要求批准后,用户便可以请求使用 Workspace ONE Intelligent Hub 在 Windows 10 设备上安装应用。
  2. 在 Workspace ONE UEM console 中,导航到相应的应用并编辑分配。
  3. 启用需要批准安装需要批准
check-circle-line exclamation-circle-line close-line
Scroll to top icon