开发您的第一个自定义集成
支持:
Google SecOps
SOAR
本文档介绍了如何在集成开发环境 (IDE) 中创建与商业集成具有相同结构的自定义集成。自定义集成显示在内容中心内,您可以在其中针对不同的环境配置这些集成,以便在剧本、手动操作和远程代理中使用。您还可以像其他 IDE 项一样导入和导出它们。
在此自定义集成示例中,您将为 WHOIS XML API 产品构建自定义集成。首先创建您的第一个集成 ,其中包括向 WHOIS 产品注册的过程,包括注册该产品和创建所需的 API 密钥。
选择要集成的产品
- 在此示例中,您将与 WHOIS XML API 产品集成,这是一个 免费的开源工具,可提供对网域数据的 API 访问权限,包括 注册人姓名、组织、电子邮件地址、注册地址、注册商信息、 网域创建、到期和更新日期、网域 可用性和网域使用时长。
- 前往 WHOIS XML API/ 并注册。
- 登录后,从您的账号页面获取 API 密钥: https://user.whoisxmlapi.com/products
- 在集成参数中使用此 API 密钥。
在 IDE 中创建第一个自定义集成
如需在 IDE 中创建第一个自定义集成,请按以下步骤操作:
- 在 Response > IDE 页面上,点击 add 添加 以添加新的 IDE 项。
- 选择集成 单选按钮,然后输入集成的名称。
- 点击创建 。集成将显示自定义集成图标。
- 点击 设置。
- 在集成对话框中,定义图标、说明、Python 依赖项和集成参数。
在此示例中,系统会显示以下详细信息: - 系统会上传 WhoisXML API 徽标的图片。 此图片会与集成一起显示在内容中心内。
- 系统已在 IDE 中集成的旁边添加了一个 SVG 图标,其中包含简要说明和一个参数(API 密钥)。这是 Who Is XML API 产品配置集成所需的参数。
- 此集成不需要额外的 Python 库。默认情况下,集成设置为在 Python 3.7 上运行,您可以在设置 中更改版本。
配置默认实例
创建集成后,您可以在 Google SecOps Response 集成中查看它(在搜索栏中搜索集成名称,或按 集成类型过滤自定义集成),其中包含您为集成定义的图片、 说明和参数。
- 依次点击 设置 > 配置默认实例。
- 输入您的 API 密钥,然后点击保存 。
- 可选:如需为其他环境(而非默认环境)配置集成,请点击配置 标签页,然后为该实例设置参数。
创建 Ping 操作
- 在 Response > IDE 中,依次点击 add 添加 > 添加新的 IDE 项。
- 选择操作 单选按钮,输入名称,然后 选择集成。
- 点击创建 。查看生成的代码模板。
-
复制以下代码以用于 Ping 操作。Ping 操作使用您为集成配置的
API Key参数,并将其放入产品提供的网址中以进行测试。如需了解详情,请参阅创建自定义 操作。 - 点击操作上方的切换开关,然后点击保存 以测试与产品的连接。
- 前往 Google SecOps Marketplace,点击 配置默认实例,并确保 集成已配置并保存。
- 点击测试 以测试集成。连接成功后,系统会显示绿色对勾标记;连接失败后,系统会显示 X 以及关联的错误。
- 完成身份验证后,在自定义集成中创建您的第一个自定义操作。如需了解详情,请参阅创建自定义操作。
from SiemplifyAction import SiemplifyAction
from SiemplifyUtils import output_handler
import requests
INTEGRATION_NAME = "My first Integration - Whois XML API"
SCRIPT_NAME = "Whois XML API Ping"
@output_handler
def main():
siemplify = SiemplifyAction()
siemplify.script_name = SCRIPT_NAME
api_key = siemplify.extract_configuration_param(provider_name=INTEGRATION_NAME,
param_name="API Key")
url = "https://www.whoisxmlapi.com/whoisserver/WhoisService?apiKey={api_key}&domainName=google.com".format(api_key=api_key)
res = requests.get(url)
res.raise_for_status()
if "ApiKey authenticate failed" in res.content.decode("utf-8"):
raise Exception("Error, bad credentials")
siemplify.end("Successful Connection", True)
if __name__ == "__main__":
main()
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。