跳至主内容

公共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由基础URL加上API名称构成。

注意

部分方法也提供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。

生成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 方法不允许

使用了非POST的HTTP方法。

429 请求过多

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

200 HTTP状态码

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