PERMISSIONS / TECHNICAL DESIGN
授权与 API 集成
身份验证识别请求方,授权决定允许的操作。逐操作检查记录与用途。
仅在所有条件满足时允许
检查已验证的操作方与租户、请求操作、记录及授权有效性。缺少必要条件时默认拒绝。
- 操作方
- 已验证的服务或合作方。不要信任请求正文中的 client_id。
- 记录
- 将记录限制在已验证的 tenant_id 内。
- 操作与用途
- 检查 shipping.address.read 等权限及其关联的配送用途。
- 附加条件
- 检查接收方、有效期、撤销、使用次数及与个人的关系。
- 一致的授权决策
- 考虑授权、读取及使用次数更新之间的状态变化。
服务身份验证与凭据
使用 Microsoft Entra 应用 Bearer token。Azure 可用 Managed Identity,证书方式以私钥认证应用并获取令牌,并非通信层 mTLS。当前 Vault 信任一个 Entra 目录,不会自动支持其他组织。凭据只放在后端。
- 接收方限制
- 验证令牌的目标接收方及目的地,拒绝为其他 API 签发的令牌。
- 凭据轮换
- 管理旧凭据退役及过渡期。
- 分离浏览器与服务器凭据
- 绝不将服务器凭据嵌入 JavaScript 或 HTML。
错误、重试与审计
内部记录拒绝原因,不泄露其他租户记录或个人信息。超时后结果不明时,使用幂等键或状态查询,而非盲目重试。
- 401 / 403
- 区分缺少身份验证与缺少授权,在受保护的内部日志中记录详情。
- 404
- 考虑对不存在的记录与未获授权的记录返回无法区分的响应。
- 409 / 429
- 幂等冲突与请求限流。定义重试策略及等待时间。
- 503
- 无法检查授权或撤销状态时停止处理,不将请求视为已授权。
DATA / INTEGRATION EXAMPLE
数据与集成示例
这些示例用于说明设计。字段名及值仅供演示,并非可执行的 API 参考。
{
"operation": "Authorization inputs and decision example",
"authenticated_context": {
"tenant_id": "tenant_a",
"client_id": "carrier-a"
},
"request": {
"action": "shipping.address.read",
"resource_ref": "order_example_01",
"purpose": "fulfillment"
},
"decision": {
"allowed": true,
"fields": [
"postal_code",
"address",
"recipient_name"
],
"decision_id": "dec_example_01"
}
}从已验证凭据构建身份上下文,绝不以客户端提供的 tenant_id 作为权限依据。
相关技术设计
返回隐私保护平台概览为您的业务流程设计集成。
梳理留存数据、合作方及必要操作,寻找减少暴露的方法。
咨询技术集成