ServiceDesk Plus V3

集成版本:4.0

将 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 或 FQDN}:8080/api/v3/ ServiceDesk Plus 的 API 根地址。
API 令牌 字符串 不适用 ServiceDesk Plus 的 API 令牌。(也称为“技术人员密钥”)
验证 SSL 复选框 尚未核查 如果启用,则验证与 ServiceDesk Plus 服务器的连接所用的 SSL 证书是否有效。

操作

Ping

说明

使用 Google Security Operations Marketplace 标签页中的集成配置页面上提供的参数,测试与 ServiceDesk Plus V3 的连接。

参数

不适用

使用场景

此操作用于在 Google Security Operations Marketplace 标签页的集成配置页面上测试连接,可以作为手动操作执行,但不能在 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 执行

如果不成功“执行操作‘添加注释操作’时出错。原因:{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 执行

如果成功

打印“Successfully closed ServiceDesk Plus request with ID {ID} .”

如果找不到请求 ID

打印“Action wasn't able to close request with ID {ID} in ServiceDesk Plus. 原因:找不到 ID 为 {ID} 的请求。”

操作应失败并停止 playbook 执行

如果不成功

打印“执行操作‘关闭请求操作’时出错”。原因:{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 执行

如果成功:“Successfully added note to ServiceDesk Plus request. 请求 ID:{ID},备注 ID:{note.id}。”

如果找不到“请求 ID”参数

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

操作应失败并停止 playbook 执行

如果不成功“执行操作‘添加注释操作’时出错。原因:{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 执行

如果成功“已成功创建 ServiceDesk Plus 请求”

操作应失败并停止 playbook 执行

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

常规

创建请求

说明

创建新请求。

参数

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

请求的类型。

示例:突发事件、服务请求

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

创建相应请求的模式。

示例:电子邮件

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

运行于

此操作不会在实体上运行。

操作执行结果

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

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

如果成功:“已成功创建 ServiceDesk Plus 请求”

操作应失败并停止 playbook 执行

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

常规

Get 请求

说明

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

参数

参数 类型 默认值 是否为必需属性 说明
请求 ID 字符串 不适用 请求的 ID。

运行于

此操作不会在实体上运行。

操作执行结果

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

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

如果成功:“Successfully fetched ServiceDesk Plus request with ID {ID} .”

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

操作应失败并停止 playbook 执行

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

常规

等待字段更新

说明

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

参数

参数 类型 默认值 是否为必需属性 说明
请求 ID 字符串 不适用 请求的 ID。
字段名称 字符串 不适用 要更新的字段的名称。
字符串 不适用 相应字段的所需值。

运行于

此操作不会在实体上运行。

操作执行结果

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

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

如果成功为相应字段创建了等待(异步操作)任务:“为以下字段创建了分析任务:{0}”。format([fields_list])。

如果未能为所有提供的字段创建分析任务:“No ServiceDesk Plus analysis tasks were created.”

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

操作应失败并停止 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 执行

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

常规

等待状态更新

说明

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

参数

参数 类型 默认值 是否为必需属性 说明
请求 ID 字符串 不适用 请求的 ID。
字符串 不适用 相应字段的所需值。

运行于

此操作不会在实体上运行。

操作执行结果

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

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

如果成功为相应字段创建了等待(异步操作)任务:“为以下字段创建了分析任务:{0}”。format([fields_list])。

如果未能为所有提供的字段创建分析任务:“No ServiceDesk Plus analysis tasks were created.”

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

操作应失败并停止 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 执行

如果成功:“已成功创建 ServiceDesk Plus 请求”

操作应失败并停止 playbook 执行

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

常规

作业

按标记同步已关闭的请求

说明

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

参数

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

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