公开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
字段。要找到该字段,请点击
控制台右上角的用户图标并选择
我的账户
。进入
控制中心
API部分
.
重要提示
-
确保访问URL(或普遍称为API端点)是安全的。安全URL始终以
https://协议开头。 -
如果您使用应用程序自动化API调用,请确保其验证SSL/TLS证书。这有助于防止中间人攻击。
-
使用支持现代TLS协议的最新库或框架。
当前开放的API如下:
-
账户 ,其API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/accounts
-
公司 ,其API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/companies
-
通用 ,其API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/general
-
事件 ,其API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/incidents
CONTROL_CENTER_APIs_ACCESS_URL/v1.1/jsonrpc/incidents
-
集成 ,其API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/integrations
-
许可管理 ,对应的API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/licensing
-
维护窗口 ,对应的API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/maintenanceWindows
-
网络 ,对应的API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/network
CONTROL_CENTER_APIs_ACCESS_URL/v1.1/jsonrpc/network
-
软件包 ,对应的API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/packages
-
PHASR ,对应的API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/phasr
-
策略 ,对应的API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/policies
-
推送 ,对应的API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/push
-
隔离区 ,对应的API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/quarantine
CONTROL_CENTER_APIs_ACCESS_URL/v1.1/jsonrpc/quarantine
-
报告 ,对应的API URL为:
CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/reports
可通过向每个API URL发起包含JSON RPC 2.0的HTTP请求来调用已开放的功能。
注意
当前 控制中心 .
API密钥
API密钥是在 我的账户 的 控制中心 部分生成的唯一密钥。每个API密钥允许应用程序调用一个或多个API公开的方法。允许访问的API需在生成密钥时进行选择。
生成API密钥步骤:
-
使用管理员账户登录
https://gravityzone.bitdefender.com/。该账户需具备以下权限: 管理网络 , 管理用户 , 管理公司 以及 查看与分析数据 . -
点击控制台右上角的用户名并选择 我的账户 :
-
进入 API密钥 部分,点击 添加 按钮:
-
输入密钥描述并选择要为此密钥启用的API:
-
点击 生成 .
注意
将显示一个包含新生成API密钥的窗口及警告信息,提示该密钥仅在窗口打开时可查看。关闭窗口后,您将无法在 GravityZone .
-
点击
按钮将密钥复制到剪贴板并保存至安全位置。
-
关闭 API密钥 窗口。
新密钥将以模糊形式添加到 API密钥 区域,同时显示其描述、创建日期及已启用的API列表。
重要提示
通过API密钥,开发者可访问许可证及客户清单等敏感信息。请勿共享或分发您生成的API密钥,以防敏感信息泄露!
控制中心 还允许您删除不再需要的API密钥:
-
从列表中选择API密钥。
-
点击 删除 按钮:
-
选择 是 确认删除。
警告
删除后将无法使用该密钥,所有依赖该密钥的第三方应用连接将被终止。
身份验证
对 控制中心 的API调用在HTTP协议层通过 HTTP基本认证 机制进行验证,具体描述 见此处 .
客户端应用程序每次调用API时都需要发送Authorization请求头。
该 Authorization 请求头包含以下要素:
-
认证方法及空格前缀;在本例中,该值始终为
Basic. -
由
用户名:密码组合字符串经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规范 :
|
错误 |
代码 |
信息 |
|---|---|---|
|
解析错误 |
|
解析错误 |
|
无效请求 |
|
无效请求 |
|
方法未找到 |
|
方法未找到 |
|
无效参数 |
|
无效参数 |
|
服务器错误 |
|
服务器错误 |
完整的错误描述存放在
data.details
错误信息的成员中。
此外,HTTP状态码会根据错误类型设置:
|
HTTP状态码 |
描述 |
|---|---|
|
|
当请求认证失败时设置(例如API密钥错误或缺失)。 |
|
|
当请求未被授权使用所需功能时设置(例如当前API密钥未启用该API功能)。 |
|
|
HTTP请求方法非POST。 |
|
|
同一API密钥每秒请求超过10次。 |
|
|
成功请求或由于服务器错误导致的失败请求(例如未传递必填参数)将返回此代码。 |