OpenAI 安全执行通知

2026-11-09 15:09 更新

使用安全 webhook 和 Safety Case Read API,将 OpenAI 的安全执行通知接入团队工作流。例如收到警告后,检索事件详情、识别受影响用户并创建内部审查工单。

适用场景

  • 将警告和停用通知路由给信任与安全团队或支持团队。
  • 在调查或支持工单中附加安全案例信息。
  • 通过应用内的安全标识符映射,将通知关联到用户。

本指南以警告为例,同样的集成方式也适用于停用通知。

工作原理

安全 webhook 告知应用已发出通知:

事件 通知
safety.warning_issued 针对组织内某个安全标识符的警告。
safety.deactivation_issued 针对组织内某个安全标识符的停用。

每个事件都包含案例 ID。用 GET /v1/safety/cases/{id} 取得安全标识符、通知类型、案例创建时间戳和可用的政策原因。

这些组织级通知与项目级偏离意图告警不同。检索案例不会改变或撤销执行措施。

接入应用

先配置组织级 webhook 和用于查询案例的密钥,再将通知接入审查流程。

配置 webhook 并接收事件

为每个用户使用稳定的安全标识符,在应用内保存其与用户的映射,避免在标识符中包含个人信息。

在组织 webhook 设置中创建组织级端点,订阅 safety.warning_issued 和 safety.deactivation_issued。

警告通知结构如下:

来源示例 1(json):

中文说明:data.id用于案例查询;entity_identifier关联安全标识符,查询不改变执行措施。

{
  "id": "evt_example",
  "object": "event",
  "created_at": 1787659200,
  "type": "safety.warning_issued",
  "data": {
    "id": "C-abc123"
  }
}

一般最佳实践见 Webhooks 指南。事件 id 标识 webhook 事件,data.id 才是需要检索的安全案例 ID。

检索案例

为同一组织配置 Restricted(受限)权限 API 密钥,将 Safety 设置为 Read,对应 api.safety.read。

通过 Safety Case Read API 查询元数据:

来源示例 2(bash):

## [中文] 以同一组织、具有api.safety.read权限的受限密钥,按webhook的data.id查询安全案例;查询不会解除执行措施。
curl "https://api.openai.com/v1/safety/cases/C-abc123" \
  -H "Authorization: Bearer ${OPENAI_API_KEY}"

成功返回 HTTP 200 和案例对象:

来源示例 3(json):

中文说明:data.id用于案例查询;entity_identifier关联安全标识符,查询不改变执行措施。

{
  "id": "C-abc123",
  "object": "safety.case",
  "created_at": 1787659100,
  "entity_identifier": "entity_identifier",
  "reason": "cyber_abuse",
  "notice": {
    "type": "warning"
  }
}

entity_identifier 表示受影响的安全标识符。案例创建时间戳有助于调查。字段定义见安全案例接口参考。

接入团队工作流

通过 webhook 接收通知,再通过案例元数据,将通知自动路由至现有调查或支持系统。

故障排查

现象 检查事项
签名验证失败 检查签名密钥,并按 Webhooks 指南保留未经改动的原始请求体。
查询返回 401 检查 API 密钥是否存在且有效。
查询返回 403 检查是否有 api.safety.read 权限。
查询返回 404 使用 data.id 而不是事件 ID;确认案例属于密钥所在组织。
查询返回 429 或暂时性 5xx 使用退避和有上限的重试策略;保留事件,以便稍后处理或调查。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号