OpenAI 安全执行通知
使用安全 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 |
使用退避和有上限的重试策略;保留事件,以便稍后处理或调查。 |

TRAE-AI编程


更多建议: