可使用 Workspace ONE Intelligence 和您的 ServiceNow 服务来请求和批准应用程序安装。首先在 ServiceNow 中进行配置,然后在 Workspace ONE Intelligence 中将信息添加到您的 ServiceNow 连接,最后在 Workspace ONE UEM 中编辑应用分配。
前提条件
在使用应用批准之前,请先配置列出的集成、系统和设置。
- 使用 Workspace ONE UEM v1910 或更高版本。
- 注册 Workspace ONE UEM 及 Workspace ONE Intelligence.
- 具有 ServiceNow 实例与 ServiceNow Integration Hub 插件以及 注册 ServiceNow 及 Workspace ONE Intelligence。
- 使用 Hub 服务,并使用 Intelligent Hub 应用作为您的应用目录。
- 使用 Windows 10 设备。
- 使用在 Workspace ONE UEM 中管理的本机应用(内部、公共和已购买)。
- 了解 Workspace ONE UEM 中的应用分配。访问向应用程序添加分配项和排除项,以了解有关应用分配的信息。
过程
- 设置 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>" } } }
- 登录到 ServiceNow,然后搜索脚本化 REST API。
- 添加脚本化 REST API。
- 在名称文本框中输入描述性名称,如 Workspace ONE 应用批准。
- 对于 API ID,请输入 appapproval,并记录您的 API 命名空间,因为在此过程的稍后,您需要在 Workspace ONE Intelligence 中输入该信息。
- 转到资源部分,添加一个资源。
- 对于资源名称,请输入 Request。
- 对于 HTTP 方法,请使用 POST。
- 检查相对路径是否为 /request。
资源路径显示为 /api/<namespace>/appapproval/request。重要事项: 如果路径未采用此格式,则请求将失败。要修复此问题,请检查脚本化 REST API 和资源的名称是否正确。
- 配置脚本以匹配您的环境。
将值存储为 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 中的表格将自定义字段添加到请求票证。自定义字段有助于将出站批准和拒绝 API 请求编译到 Workspace ONE Intelligence。
- 在 ServiceNow 导航栏中搜索表格,然后选择系统定义 > 表格。
- 搜索表格名称 sc_request,然后打开以查看列详细信息。
如果要按表格标签进行搜索,则表格的标签为 请求。
- 添加列。
- 添加系统返回到 Workspace ONE Intelligence 的所需值,并在 API 请求中添加相应的值。
- ApprovalNotify.URL = UEM 回调 URL
- DeviceId = UEM 设备 ID
- RequestId = UEM 请求 ID
- 添加可选值。
- 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 注: 如果更改默认 列名称,请更新脚本以使用更新的列名称。 - 添加系统返回到 Workspace ONE Intelligence 的所需值,并在 API 请求中添加相应的值。
- 选择更新并保存表格。
- 或者,您可以使用系统 UI 中表单区域来隐藏 UI 中的列和值。隐藏列和值会将其设置为仅在 API 请求中使用。
- 在 ServiceNow 中,转到流设计器 > 新建 > 操作以为工作流配置一个操作。
ServiceNow 工作流会向 Workspace ONE Intelligence 发送批准或拒绝响应。
- 在操作属性中输入名称和元数据。
- 定义操作的输入。
- Request ID
- Device ID
- Updated By
- Notes
- Updated At
- Callback URL
- Approval
- 通过在操作大纲部分中选择加号 (+) 来添加脚本步骤。然后,转到实用程序 > 脚本步骤。脚本步骤会将批准状态字符串转换为大写,以便为 API 调用做准备。
- 将输入变量定义为
approval_status
,然后将其拖动到批准值中。 - 添加此示例代码,以将批准状态转换为大写。
(function execute(inputs, outputs) { var approval_lc = inputs.approval_status; outputs.ApprovalStatus = approval_lc.toUpperCase(); })(inputs, outputs);
- 将输出变量定义为
ApprovalStatus
。
- 将输入变量定义为
- 向操作添加 REST 步骤。
- 使用 Callback URL 变量作为 Base URL 值。
- 使用 POST 作为 HTTP 方法。
- 添加标头 Content-Type =application/json。
- 将 Request Type 定义为文本。
- 输入请求正文负载,如示例代码。将示例代码中的值替换为数据变量。
{ "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" } }
- 保存操作。
- 在操作属性中输入名称和元数据。
- 在 ServiceNow 中,根据您组织的批准策略,创建具有批准操作的工作流。
- 在流设计器中,选择新建。
- 在流、应用程序和运行方式中填充元数据,包括属性。
- 要创建触发器,请使用已更新来查找票证状态中的更改。
- 对于表格,请选择请求[sc_request]。
- 将条件定义为[审批 - 其中之一 - 已审批、已拒绝] 和 [UEM 回调 URL - 非空]
- 对于运行触发器,选择一次。
- 添加 AppApproval 操作。
- 从请求表中添加与所需操作输入匹配的相应值。
- 保存并激活工作流。
- 在 Workspace ONE Intelligence 中,添加脚本化 REST API 命名空间。
- 在 Workspace ONE Intelligence 中,转到设置 > 集成 > ServiceNow。
- 编辑连接以包含 API 命名空间。
您在将脚本化 REST API 添加到 ServiceNow 时已记录了此值。
- 若需批准,请在 Workspace ONE UEM 中编辑应用分配。
编辑应用分配以要求批准后,用户便可以请求使用 Workspace ONE Intelligent Hub 在 Windows 10 设备上安装应用。
- 在 Workspace ONE UEM console 中,导航到相应的应用并编辑分配。
- 启用需要批准安装。