ServiceDesk Plus V3

本文档介绍了如何将 ServiceDesk Plus V3 与 Google SecOps 集成。

将 ServiceDesk Plus V3 配置为与 Google Security Operations 搭配使用

如何生成 API 令牌

  1. 前往管理员用户控制台。

    ServiceDesk Plus V3
控制台

  2. 点击该按钮,然后点击生成 API 密钥。

    在 ServiceDesk Plus V3 控制台中生成 API 密钥

  3. 系统会显示一个对话框,其中会显示密钥生成状态。

    • 如果您已生成密钥,请务必将其保存在安全的地方,否则您将不得不重新生成。
    • 如果没有,请点击生成密钥,系统会立即显示 API 密钥。

    在 ServiceDesk Plus V3 控制台中重新生成 API 密钥

在 Google SecOps 中配置 ServiceDesk Plus V3 集成

有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。

集成参数

使用以下参数配置集成:

参数显示名称 类型 默认值 为必填项 说明
API 根 字符串 http://{IP OR FQDN}:8080/api/v3/ 是 ServiceDesk Plus 的 API 根。
API 令牌 字符串 不适用 是 ServiceDesk Plus 的 API 令牌。(也称为“技术人员密钥”)
验证 SSL 复选框 尚未核查 是 如果启用,系统会验证与 ServiceDesk Plus 服务器连接的 SSL 证书是否有效。

操作

Ping

说明

使用 Google SecOps Content Hub 页面中的集成配置页面上提供的参数,测试与 ServiceDesk Plus V3 的连接。

参数

不适用

使用场景

该操作用于在 Google SecOps Content Hub 页面上的集成配置页面测试连接性,并且可以作为人工处置措施执行,不用于 playbook。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功: “已使用提供的连接参数成功连接到 ServiceDesk Plus V3!”

操作应失败并停止 playbook 执行:

如果报告了严重错误(例如凭据错误或连接中断),请执行以下操作:

“未能连接到 ServiceDesk Plus V3!错误为 {0}”。format(exception.stacktrace)

常规

添加备注

说明

向请求添加备注。

参数

参数显示名称 类型 默认值 为必填项 说明
请求 ID 字符串 不适用 是 请求的 ID。
注意 字符串 不适用 是 备注的内容。
向请求者显示 复选框 尚未核查 否 指定是否应向要求提出者显示备注。
通知技术人员 复选框 尚未核查 否 指定是否应向要求提出者显示备注。
标记为“首次回复” 复选框 尚未核查 否 指定是否应将此备注标记为首次回复。
添加到关联的请求 复选框 尚未核查 否 指定是否应将此备注添加到关联的请求中。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "response_status": {
        "status_code": 2000,
        "status": "success"
    },
    "request_note": {
        "created_time": {
            "display_value": "Nov 10, 2020 01:14 AM",
            "value": "1690499678XXX"
        },
        "request": {
            "subject": "New Subject Dropdown",
            "id": "00"
        },
        "show_to_requester": false,
        "description": "New Note",
        "id": "23",
        "created_by": {
            "email_id": null,
            "name": "administrator",
            "is_vipuser": false,
            "id": "4",
            "department": null
        }
    }
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功: “已成功向 ServiceDesk Plus 请求添加备注。请求 ID:{ID},备注 ID:{note.id}。”

如果未找到“请求 ID”参数:

“操作无法向 ServiceDesk Plus 中 ID 为 {ID} 的请求添加备注。原因:找不到 ID 为 {ID} 的请求。”

操作应失败并停止 playbook 执行:

如果未成功: “执行‘添加备注’操作时出错。Reason: {0}''.format(error.Stacktrace)

常规

关闭请求

说明

了结请求。

参数

参数显示名称 类型 默认值 为必填项 说明
请求 ID 字符串 不适用 是 请求的 ID。
评论 字符串 不适用 是 关闭评论。
已确认解决方法 复选框 尚未核查 否 是否已确认请求的解决。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "response_status": {
        "status_code": 2000,
        "messages": [
            {
                "status_code": 2000,
                "type": "success",
                "message": "Request(s) closed successfully."
            }
        ],
        "status": "success"
    }
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:

打印“已成功关闭 ID 为 {ID} 的 ServiceDesk Plus 请求。”

如果找不到请求 ID:

打印“操作无法在 ServiceDesk Plus 中关闭 ID 为 {ID} 的请求。原因:找不到 ID 为 {ID} 的请求。”

操作应失败并停止 playbook 执行:

如果不成功:

打印“执行‘关闭请求’操作时出错。Reason: {0}''.format(error.Stacktrace)

常规

添加备注并等待回复

说明

向请求添加备注。

参数

参数显示名称 类型 默认值 为必填项 说明
请求 ID 字符串 不适用 是 请求的 ID。
注意 字符串 不适用 是 备注的内容。
向请求者显示 复选框 尚未核查 否 指定是否应向要求提出者显示备注。
通知技术人员 复选框 尚未核查 否 指定是否应向要求提出者显示备注。
标记为“首次回复” 复选框 尚未核查 否 指定是否应将此备注标记为首次回复。
添加到关联的请求 复选框 尚未核查 否 指定是否应将此备注添加到关联的请求中。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "response_status": {
        "status": "Success",
        "statuscode": "2000"
    },
    "request_note": {
        "id": "1",
        "description": "Need more info on this topic. Please contact me.",
        "created_by": {
            "id": "4",
            "name": "administrator"
        },
        "show_to_requester": true,
        "request": {
            "id": "2"
        },
        "created_time": {
            "value": 1455520864880,
            "display_value": "Feb 15, 2016 12:51 PM"
        }
    }
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:“已成功向 ServiceDesk Plus 请求添加备注。请求 ID:{ID},备注 ID:{note.id}。”

如果未找到“请求 ID”参数:

“操作无法向 ServiceDesk Plus 中 ID 为 {ID} 的请求添加备注。原因:找不到 ID 为 {ID} 的请求。”

操作应失败并停止 playbook 执行:

如果未成功: “执行‘添加备注’操作时出错。Reason: {0}''.format(error.Stacktrace)

常规

创建提醒请求

说明

创建与 Google SecOps 提醒相关的请求。

参数

参数显示名称 类型 默认值 为必填项 说明
主题 字符串 不适用 是 请求的主题。
请求者 字符串 API 密钥的用户 是 请求的请求者。如果未指定,则设置为 API 密钥的用户。
资产 字符串 不适用 否 要与请求关联的素材资源的名称。
状态 字符串 不适用 否 请求的状态。
技术员 字符串 不适用 否 分配给请求的技术人员的姓名。
优先级 字符串 不适用 否 请求的优先级。
紧急情况 字符串 不适用 否 请求的紧急程度。
类别 字符串 不适用 否 请求的类别。
请求模板 字符串 不适用 否 请求的模板。
请求类型 字符串 不适用 否

请求的类型。

示例:突发事件、服务约叫

截止时间(毫秒) 字符串 不适用 否 请求的截止日期(以毫秒为单位)。
模式 字符串 不适用 否

创建此请求时所用的模式。

示例:电子邮件

级别 字符串 不适用 否 请求的级别。
网站 字符串 不适用 否 表示此请求所属的网站。
群组 字符串 不适用 否 此请求所属的群组。
影响 字符串 不适用 否 请求的影响。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "request": {
        "ola_due_by_time": null,
        "subject": "Test request number 2",
        "resolution": {
            "submitted_on": {
                "display_value": "Oct 28, 2020 09:31 PM",
                "value": "1603945909120"
            },
            "submitted_by": {
                "email_id": null,
                "name": "administrator",
                "is_vipuser": false,
                "id": "4",
                "department": null
            },
            "resolution_attachments": [],
            "content": "Mail Fetching Server problem has been fixed"
        },
        "linked_to_request": null,
        "mode": null,
        "lifecycle": null,
        "reason_for_cancel": null,
        "assets": [
            {
                "name": "servicedesk.workgroup",
                "id": "24"
            }
        ],
        "is_trashed": false,
        "id": "6",
        "assigned_time": null,
        "group": null,
        "requester": {
            "email_id": null,
            "name": "administrator",
            "is_vipuser": false,
            "id": "4",
            "department": null
        },
        "cancel_requested_by": null,
        "email_to": [],
        "created_time": {
            "display_value": "Oct 28, 2020 09:31 PM",
            "value": "1603945909120"
        },
        "item": null,
        "level": null,
        "has_resolution_attachments": false,
        "approval_status": null,
        "impact": null,
        "service_category": null,
        "sla": null,
        "priority": null,
        "created_by": {
            "email_id": null,
            "name": "administrator",
            "is_vipuser": false,
            "id": "4",
            "department": null
        },
        "scheduled_end_time": null,
        "tags": [],
        "first_response_due_by_time": null,
        "last_updated_time": null,
        "has_notes": false,
        "impact_details": "Routine tasks are pending due to mail server problem",
        "subcategory": null,
        "email_cc": [],
        "status": {
            "color": "#0066ff",
            "name": "Open",
            "id": "2"
        },
        "scheduled_start_time": null,
        "template": {
            "is_service_template": false,
            "name": "Default Request",
            "id": "1"
        },
        "email_ids_to_notify": [],
        "request_type": {
            "name": "Incident",
            "id": "1"
        },
        "cancel_requested_time": null,
        "description": "I am unable to fetch mails from the mail server",
        "has_dependency": false,
        "has_conversation": false,
        "callback_url": null,
        "chat_type": 0,
        "is_service_request": false,
        "urgency": null,
        "is_shared": false,
        "cancel_requested": false,
        "has_request_initiated_change": false,
        "request_template_task_ids": [],
        "department": null,
        "is_reopened": false,
        "has_draft": false,
        "has_attachments": false,
        "has_linked_requests": false,
        "is_overdue": false,
        "technician": null,
        "has_request_caused_by_change": false,
        "has_problem": false,
        "due_by_time": null,
        "has_project": false,
        "is_first_response_overdue": false,
        "cancel_requested_is_pending": false,
        "category": null
    },
    "response_status": {
        "status_code": 2000,
        "status": "success"
    }
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功: “Successfully created ServiceDesk Plus request”(已成功创建 ServiceDesk Plus 请求)

操作应失败并停止 playbook 执行:

如果未成功: “执行操作‘创建提醒请求操作’时出错。Reason: {0}''.format(error.Stacktrace)

常规

创建请求

说明

创建新请求。

参数

参数 类型 默认值 为必填项 说明
主题 字符串 不适用 是 请求的主题。
请求者 字符串 API 密钥的用户 是 请求的请求者。如果未指定,则设置为 API 密钥的用户。
说明 字符串 不适用 否 请求的说明。
资产 字符串 不适用 否 要与请求关联的素材资源的名称。
状态 字符串 不适用 否 请求的状态。
技术员 字符串 不适用 否 分配给请求的技术人员的姓名。
优先级 字符串 不适用 否 请求的优先级。
紧急情况 字符串 不适用 否 请求的紧急程度。
类别 字符串 不适用 否 请求的类别。
请求模板 字符串 不适用 否 请求的模板。
请求类型 字符串 不适用 否

请求的类型。

示例:突发事件、服务约叫

截止时间(毫秒) 字符串 不适用 否 请求的截止日期(以毫秒为单位)。
模式 字符串 不适用 否

创建此请求时所用的模式。

示例:电子邮件

级别 字符串 不适用 否 请求的级别。
网站 字符串 不适用 否 表示此请求所属的网站。
群组 字符串 不适用 否 此请求所属的群组。
影响 字符串 不适用 否 请求的影响。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:“Successfully created ServiceDesk Plus request”(已成功创建 ServiceDesk Plus 请求)

操作应失败并停止 playbook 执行:

如果未成功:“执行操作‘创建请求操作’时出错。Reason: {0}''.format(error.Stacktrace)

常规

获取请求

说明

在 ServiceDesk Plus 中检索请求的相关信息。

参数

参数 类型 默认值 为必填项 说明
请求 ID 字符串 不适用 是 请求的 ID。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:“已成功提取 ID 为 {ID} 的 ServiceDesk Plus 请求。”

如果未找到“请求 ID”参数:“操作无法在 ServiceDesk Plus 中提取 ID 为 {ID} 的请求。原因:找不到 ID 为 {ID} 的请求。”

操作应失败并停止 playbook 执行:

如果不成功:“执行操作‘Get Request action’时出错。Reason: {0}''.format(error.Stacktrace)

常规

等待字段更新

说明

等待请求的字段更新为所需的值。

参数

参数 类型 默认值 为必填项 说明
请求 ID 字符串 不适用 是 请求的 ID。
字段名称 字符串 不适用 是 要更新的字段的名称。
值 字符串 不适用 是 给定字段的所需值。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功为字段创建了等待(异步操作)任务:“Created analysis tasks for the field: {0}”.format([fields_list])。

如果未能为所有提供的字段创建分析任务:“未创建任何 ServiceDesk Plus 分析任务。”

如果仍在等待字段更新:“操作正在等待下次更新”

操作应失败并停止 playbook 执行:

如果报告了严重错误(例如凭据错误或连接性中断),则会显示以下消息:“Failed to connect to the ServiceDesk service!错误为 {0}”。format(exception.stacktrace)

常规

更新请求

说明

通过 ServiceDesk Plus 请求的 ID 更新该请求。

参数

参数 类型 默认值 为必填项 说明
请求 ID 字符串 不适用 正确 要更新的请求的 ID。
主题 字符串 不适用 否 请求的主题。
请求者 字符串 不适用 否

请求的要求提出者。

如果未指定,则设置为 API 密钥的用户。

说明 字符串 不适用 否 请求的说明。
资产 字符串 不适用 否

要与请求关联的素材资源的名称。

该参数还可以获取以英文逗号分隔的字符串列表,其中包含素材资源名称。

状态 字符串 不适用 否 请求的状态。
技术员 字符串 不适用 否 分配给请求的技术人员的姓名。
优先级 字符串 不适用 否 请求的优先级。
紧急情况 字符串 不适用 否 请求的紧急程度。
类别 字符串 不适用 否 请求的类别。
请求模板 字符串 不适用 否 请求的模板。
请求类型 字符串 不适用 否

请求的类型。

示例:突发事件、服务约叫

截止时间(毫秒) 字符串 不适用 否 请求的截止日期(以毫秒为单位)。
模式 字符串 不适用 否

创建此请求时所用的模式。

示例:电子邮件

级别 字符串 不适用 否 请求的级别。
网站 字符串 不适用 否 表示此请求所属的网站。
群组 字符串 不适用 否 此请求所属的群组。
影响 字符串 不适用 否 请求的影响。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:“已成功更新 ID 为 {ID} 的 ServiceDesk Plus 请求。”

如果未找到“请求 ID”参数:“操作无法在 ServiceDesk Plus 中更新 ID 为 {ID} 的请求。原因:找不到 ID 为 {ID} 的请求。”

操作应失败并停止 playbook 执行:

如果未成功:“执行操作‘更新请求操作’时出错。Reason: {0}''.format(error.Stacktrace)

常规

等待状态更新

说明

等待请求的状态更新为所需状态。

参数

参数 类型 默认值 为必填项 说明
请求 ID 字符串 不适用 是 请求的 ID。
值 字符串 不适用 是 给定字段的所需值。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功为字段创建了等待(异步操作)任务:“Created analysis tasks for the field: {0}”.format([fields_list])。

如果未能为所有提供的字段创建分析任务:“未创建任何 ServiceDesk Plus 分析任务。”

如果仍在等待字段更新:“操作正在等待下次更新”

操作应失败并停止 playbook 执行:

如果报告了严重错误(例如凭据错误或连接性中断),则会显示以下消息:“Failed to connect to the ServiceDesk service!错误为 {0}”。format(exception.stacktrace)

常规

创建请求 - 下拉列表

说明

创建新请求。

参数

参数 类型 默认值 为必填项 说明
主题 字符串 不适用 是 请求的主题。
请求者 字符串 不适用 否 请求的请求者。如果未指定,则设置为 API 密钥的用户。
资产 字符串 不适用 否

要与请求关联的素材资源的名称。

该参数还可以获取以逗号分隔的字符串列表,其中包含素材资源名称。

说明 字符串 不适用 否 请求的说明。
状态 DDL 不适用 否 请求的状态。
技术员 字符串 不适用 否 分配给请求的技术人员的姓名。
优先级 DDL 不适用 否 请求的优先级。
紧急情况 DDL 不适用 否 请求的紧急程度。
类别 DDL 不适用 否 请求的类别。
请求模板 字符串 不适用 否 请求的模板。
请求类型 DDL 不适用 否

请求的类型。

示例:突发事件、服务约叫

截止时间(毫秒) 字符串 不适用 否 请求的截止日期(以毫秒为单位)。
模式 DDL 不适用 否

创建此请求时所用的模式。

示例:电子邮件

级别 DDL 不适用 否 请求的级别。
网站 字符串 不适用 否 表示此请求所属的网站。
群组 字符串 不适用 否 此请求所属的群组。
影响 DDL 不适用 否 请求的影响。

运行时间

此操作不会对实体执行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:“Successfully created ServiceDesk Plus request”(已成功创建 ServiceDesk Plus 请求)

操作应失败并停止 playbook 执行:

如果未成功:“执行操作‘创建请求操作’时出错。Reason: {0}''.format(error.Stacktrace)

常规

作业

按标签同步已关闭的请求

说明

同步在 Google SecOps 案例 playbook 和 Google SecOps 案例中创建的 ServiceDesk Plus V3 请求。

参数

参数 类型 默认值 为必填项 说明
API 根 字符串 http://{IP OR FQDN}:8080/api/v3/ 是 ServiceDeskPlus 实例的 API 根。
API 密钥 密码 不适用 是 ServiceDeskPlus 实例的 API 密钥。
回溯的小时数上限 整数 24 否 指定要同步过去多少小时的状态。
验证 SSL 复选框 勾选 是 如果已启用,请验证与 ServiceDeskPlus 服务器连接的 SSL 证书是否有效。

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。