对外部系统暴露 JSON-RPC / REST 时,默认不安全。Odoo 19 至少落实四件事:专用集成用户与 API Key、强制分页、限流、审计日志。禁止把管理员密码发给集成方。本文给出最小安全基线与验收用例。
鉴权与最小权限
创建专用集成用户,只加入必要安全组;使用 API Key / OAuth。按公司隔离;禁止跨公司万能账号。写操作(过账、支付、改价)可另加 IP 白名单或二次确认机制。
分页与字段白名单
强制 limit 上限;拒绝或截断超大 limit。search_read 明确字段列表,默认不返回超大 binary。列表接口返回 next cursor/offset 约定,避免深度分页打爆数据库。
限流与审计
按用户/IP 限流,超额返回 429。审计记录:调用方、模型、方法、耗时、结果码、关键写操作的 before/after 摘要。审计要能回答「昨晚谁改了价格」。
接口规范
错误码稳定;幂等写操作带外部键;文档给出沙箱与生产地址差异。版本升级时维护变更说明,避免集成方静默失败。
验收标准
- 无 Token 调用被拒。
- 超大 limit 被截断或报错。
- 审计能追到某次改价/过账来源。
集成账号与生产沙箱隔离
为每个外部系统建独立集成用户与 API Key,权限按模型白名单收缩。
沙箱库与生产库使用不同 Key,禁止共用。对 search_read 设默认字段黑名单
(如工资、银行账号)。每月导出审计:按用户汇总调用次数、写操作次数、429 次数。
发现异常峰值先禁用 Key 再排查。文档中明确 rate limit 与分页约定,发给集成方签字。
开放 API 的破坏性变更(删字段、改语义)至少提前一个迭代通知集成方,并保留兼容期。
API 发布清单
文档含:鉴权方式、限流数值、最大 limit、字段白名单、错误码表、幂等写说明、沙箱地址。
集成用户禁用 UI 登录(若策略允许)或强制 2FA。对写接口另开审计模型,记录 before/after。
压测证明:超限返回 429;深度分页不会全表扫描失控。密钥轮换流程写进运维手册,
旧 Key 有重叠有效期。禁止在日志打印完整 Token。
变更字段语义时提供版本头或新端点;监控旧端点流量归零再下线。
API 变更窗口建议与集成方季度例会对齐;紧急热修走缩短兼容期但必须书面通知。
预生产勾选表需覆盖文章编号 318 全部验收点后再约生产窗口。
将文章编号 318 的配置变更记入发版说明,便于回滚对照。
将文章编号 318 的配置变更记入发版说明,便于回滚对照。
将文章编号 318 的配置变更记入发版说明,便于回滚对照。
将文章编号 318 的配置变更记入发版说明,便于回滚对照。
密钥与限流运营
每集成方独立 Key;泄露即轮换。监控 429 与写操作峰值。字段黑名单季度回顾。 破坏性 API 变更提前通知并保留兼容期。审计能回答谁改价。沙箱与生产 Key 严禁混用。 文档与 Postman 集合同步更新,集成分发前内部走一次鉴权失败用例。
落地备忘(318-0):把本文验收项做成检查表,预生产逐条勾选并附截图;生产窗口前提交负责人签字。相关模型与字段以当前 Odoo 19 实例开发者模式显示为准。
落地备忘(318-1):把本文验收项做成检查表,预生产逐条勾选并附截图;生产窗口前提交负责人签字。相关模型与字段以当前 Odoo 19 实例开发者模式显示为准。
中国Odoo网|对照 Odoo 19 企业版开放 API 基线:专用密钥、分页限流、写操作可审计。