跳至主要内容

公开API

简介

Bitdefender 控制中心 API允许开发者实现业务流程自动化

这些API通过 JSON-RPC 2.0协议 进行暴露

以下是通过API调用更新 控制中心 :

{
        "id": "91d6430d-bfd4-494f-8d4d-4947406d21a7",
        "jsonrpc": "2.0",
        "method": "updateCompanyDetails",
        "params": {
            "name": "我的公司名称"
        }
    }

该调用会向应用程序返回以下响应

{
        "id":"91d6430d-bfd4-494f-8d4d-4947406d21a7",
        "jsonrpc":"2.0",
        "result": null
    }

每个API调用都针对一个方法并传递一组参数。

参数分为两种类型:

  • 必需参数 - 必须始终传递给被调用的方法。

  • 可选参数 - 具有默认值,可从参数列表中省略。任何可选参数均可跳过,无论其在参数列表中的位置如何。

API请求

API调用通过HTTP请求执行,以JSON-RPC消息作为负载。每个API调用必须使用HTTP POST方法。此外,每个HTTP请求必须设置 Content-Type 请求头为 application/json .

注意

API限制每个API密钥每秒的 特定请求数量 。若超出此限制,后续请求将被拒绝并返回 429HTTP 状态码,同时附带Retry-After头部,指明可发送新请求前的剩余秒数。

控制中心 提供针对产品不同领域的多个API。每个API公开一组与指定产品领域相关的方法。

所有API的基础URL为: CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/ 。API的完整URL通过将API名称附加到基础URL获得。

注意

部分方法也提供1.1版本。所有1.1 API的基础URL为: CONTROL_CENTER_APIs_ACCESS_URL/v1.1/jsonrpc/ .

CONTROL_CENTER_APIs_ACCESS_URL 显示在 访问URL 字段。要找到该字段,请点击 control_center_user_menu_icon.png 控制台右上角的用户图标并选择 我的账户 。进入 控制中心 API部分 .

access_url.PNG

重要提示

  • 确保访问URL(或普遍称为API端点)是安全的。安全URL始终以 https:// 协议开头。

  • 如果您使用应用程序自动化API调用,请确保其验证SSL/TLS证书。这有助于防止中间人攻击。

  • 使用支持现代TLS协议的最新库或框架。

当前开放的API如下:

  1. 账户 ,其API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/accounts
  2. 公司 ,其API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/companies
  3. 通用 ,其API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/general
  4. 事件 ,其API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/incidents
    CONTROL_CENTER_APIs_ACCESS_URL/v1.1/jsonrpc/incidents
  5. 集成 ,其API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/integrations
  6. 许可管理 ,对应的API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/licensing
  7. 维护窗口 ,对应的API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/maintenanceWindows
  8. 网络 ,对应的API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/network
    CONTROL_CENTER_APIs_ACCESS_URL/v1.1/jsonrpc/network
  9. 软件包 ,对应的API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/packages
  10. PHASR ,对应的API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/phasr
  11. 策略 ,对应的API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/policies
  12. 推送 ,对应的API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/push
  13. 隔离区 ,对应的API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/quarantine
    CONTROL_CENTER_APIs_ACCESS_URL/v1.1/jsonrpc/quarantine
  14. 报告 ,对应的API URL为:

    CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/reports

可通过向每个API URL发起包含JSON RPC 2.0的HTTP请求来调用已开放的功能。

注意

当前 控制中心 .

API密钥

API密钥是在 我的账户 控制中心 部分生成的唯一密钥。每个API密钥允许应用程序调用一个或多个API公开的方法。允许访问的API需在生成密钥时进行选择。

生成API密钥步骤:

  1. 使用管理员账户登录 https://gravityzone.bitdefender.com/ 。该账户需具备以下权限: 管理网络 , 管理用户 , 管理公司 以及 查看与分析数据 .

  2. 点击控制台右上角的用户名并选择 我的账户 :

    console_my_account_121716_en.png
  3. 进入 API密钥 部分,点击 添加 按钮:

    console_my_account_add_API_key121716_en.png
  4. 输入密钥描述并选择要为此密钥启用的API:

    console_my_account_configure_API_key_clpt_121716_en.png
  5. 点击 生成 .

    注意

    将显示一个包含新生成API密钥的窗口及警告信息,提示该密钥仅在窗口打开时可查看。关闭窗口后,您将无法在 GravityZone .

    console_my_account_display_API_key_121716_en.png
  6. 点击 copy_to_clipboard_121716_en.png 按钮将密钥复制到剪贴板并保存至安全位置。

  7. 关闭 API密钥 窗口。

新密钥将以模糊形式添加到 API密钥 区域,同时显示其描述、创建日期及已启用的API列表。

console_my_account_add_API_key_result_121716_en.png

重要提示

通过API密钥,开发者可访问许可证及客户清单等敏感信息。请勿共享或分发您生成的API密钥,以防敏感信息泄露!

控制中心 还允许您删除不再需要的API密钥:

  1. 从列表中选择API密钥。

  2. 点击 删除 按钮:

    console_my_account_delete_API_key_121716_en.png
  3. 选择 确认删除。

    警告

    删除后将无法使用该密钥,所有依赖该密钥的第三方应用连接将被终止。

身份验证

控制中心 的API调用在HTTP协议层通过 HTTP基本认证 机制进行验证,具体描述 见此处 .

客户端应用程序每次调用API时都需要发送Authorization请求头。

Authorization 请求头包含以下要素:

  1. 认证方法及空格前缀;在本例中,该值始终为 Basic .

  2. 用户名:密码 组合字符串经Base64编码生成的字符串。

    在本例中,API密钥作为用户名,密码设为空字符串。

    例如,若API密钥为

    N8KzwcqVUxAI1RoPi5jyFJPkPlkDl9vF ,则需对以下字符串进行Base64编码:

    N8KzwcqVUxAI1RoPi5jyFJPkPlkDl9vF: 。此时发送至授权头的内容为

    BasicTjhLendjcVZVeEFJMVJvUGk1anlGSlBrUGxrRGw5dkY6 .

错误报告

控制中心 当请求的API方法无法执行预期任务时将返回错误。

以下是API调用失败的错误响应示例:

{
          "id":"4d77e2d9-f760-4c8a-ba19-53728f868d98",
          "jsonrpc" : "2.0",
          "error" : {
              "code" : -32601,
              "message" : "方法未找到",
              "data" : {
                  "details" : "所选API不可用。"
              }
          }
      }

错误代码和错误信息按照 JSON-RPC 2.0规范 :

错误

代码

信息

解析错误

-32700

解析错误

无效请求

-32600

无效请求

方法未找到

-32601

方法未找到

无效参数

-32602

无效参数

服务器错误

-32000

服务器错误

完整的错误描述存放在 data.details 错误信息的成员中。

此外,HTTP状态码会根据错误类型设置:

HTTP状态码

描述

401 未授权

当请求认证失败时设置(例如API密钥错误或缺失)。

403 禁止访问

当请求未被授权使用所需功能时设置(例如当前API密钥未启用该API功能)。

405 方法不允许

HTTP请求方法非POST。

429 请求过多

同一API密钥每秒请求超过10次。

200 HTTP状态码

成功请求或由于服务器错误导致的失败请求(例如未传递必填参数)将返回此代码。