OneNym.id咨询部署
简体中文

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 作为权限依据。

相关技术设计

返回隐私保护平台概览

为您的业务流程设计集成。

梳理留存数据、合作方及必要操作,寻找减少暴露的方法。

咨询技术集成