易企办博客 / 行业观察

企业集成如何选择 OAuth 与 API 密钥

从调用身份、授权范围和凭据生命周期出发,对照内部服务、合作伙伴和用户委托场景选择集成方式。

Addison Pfannerstill·

API 密钥与 OAuth。后台服务,独立凭据和受限资源。合作方,登记各自的客户端。用户委托,区分授权主体和资源范围。停用验证,测试旧凭据和已撤销访问。

本文由国际版原文本地化,文末提供原文链接。涉及的能力以易企办中国版租户和权限为准。

先确定谁在请求业务资源

一条采购流程可能先从 CRM 读取客户信息,再到 ERP 校验预算,把合同交给 AI 服务整理,最后把结果写回台账。合作伙伴、自研应用和智能体也可能接入这些 API。设计授权时先列清调用方、要读写的资源、代表谁操作,以及权限何时撤销。

谁可以调用什么。ERP,同步采购单和预算信息。CRM,读取或更新客户记录。智能体,在限定权限内处理请求。外部应用,管理独立访问范围。
先画出调用系统与资源的关系。

API 密钥适合身份固定的后台服务

服务端为每个受信任应用签发独立凭据。调用方在请求中提交凭据,接口按分配的资源权限验证。ERP 夜间同步、财务对账服务、CRM 客户更新和内部定时任务通常具有明确的服务身份、调用周期与维护人。

用不同凭据区分环境和应用,把密钥放在后端的凭据存储中,避免写入浏览器、源码、URL 和日志。限制每个应用可以调用的接口和资源,记录密钥负责人、有效期、轮换周期和停用方式。交接时验证旧密钥撤销后确实无法调用。具体凭据格式和是否需要换取访问令牌,以接口文档为准。

OAuth 把授权范围和凭据生命周期纳入管理

OAuth 2.0 用于授予资源访问权限。涉及用户登录时,身份验证可以由 OIDC 等身份层处理。OAuth 客户端先登记身份,授权服务器按场景校验客户端或用户授权,并签发访问令牌。资源服务器随后验证令牌和权限。常见的配置项包括以下内容。

  • 客户端标识和密钥。 客户端 ID 用来识别应用。能够安全保管密钥的机密客户端可配置客户端密钥。浏览器或原生应用的公开客户端无法可靠保管共享密钥。
  • 授权范围。 逐项定义允许读取或修改的资源。接口还应执行相应的应用和业务记录权限检查。
  • 回调地址和 PKCE。 用户委托场景需预先登记回调地址并核对匹配。授权码流程采用 PKCE,让换取令牌的一方证明自己发起了本次授权。
  • 访问令牌与续期。 访问令牌通常有效期较短。可否使用刷新令牌取决于授权流程和平台策略。客户端停用后,应按平台机制撤销授权并核对已有令牌的行为。
凭据与授权的关系。API 密钥,按固定应用身份校验。OAuth 客户端,登记标识与授权方式。访问令牌,按范围访问受保护资源。生命周期,到期、轮换与撤销。
两种方式都需要可解释的权限边界。

技术安全配置可参考 OAuth 2.0 安全实践 RFC 9700。

何时需要集中管理 OAuth 客户端

内部应用数量少且始终由同一服务身份运行时,密钥的维护成本较可控。接入方扩展到合作伙伴、第三方 SaaS、AI 智能体、AI 副驾、应用市场或客户自研应用后,管理员需要逐个管理权限、授权记录和停用策略。

从内部服务到外部生态。内部系统,稳定的后台服务。企业伙伴,单独接入与停用。AI 应用,区分系统和用户授权。平台治理,统一查看权限与生命周期。
接入方增多时,逐个管理权限。

例如采购伙伴只需要读取自己公司的订单和提交交付资料。客户门户中的应用可能需要在用户授权后读取当前用户可见的申请。内部审阅服务则可以用受限的系统身份读取必要字段。给三类调用分别登记客户端,并通过访问记录追溯动作来源。

应用凭据与 OAuth 集成怎样分工

参考文章将应用凭据用于已知后台服务,将 OAuth 集成用于平台级的客户端注册和授权管理。典型的应用凭据可以限定数据列表、表单、工作流、自定义服务等资源,并由管理员管理密钥的到期、轮换和启停。易企办中国版公开 REST API 文档给出的调用方式是在服务端传入 apiKey 请求头,参见API 认证与密钥。应用凭据与平台级 OAuth 客户端的具体支持范围,应按目标租户和对应接口文档核对。

应用凭据和 OAuth 集成。应用凭据,固定服务身份。资源分配,数据列表、表单与流程。OAuth 集成,登记各个客户端。授权管理,配置范围、回调和停用。
按目标租户能力检查各自的配置。

采用 OAuth 时,可根据平台实际支持的模式安排授权。用户授权让应用在相应用户权限内处理任务。系统间授权用于无需用户在线的后台服务。应用同时承担两类任务时,应分别审视两条权限链路,避免后台服务获得本应由用户授予的权限。

用调用场景做选择

场景先评估验收重点
固定服务每天从 ERP 同步采购单单独的应用凭据对应资源授权、重复记录保护、轮换与停用
合作伙伴应用读取订单独立 OAuth 客户端每个合作方的范围、记录隔离、撤销
用户委托智能体查看自己的申请用户授权回调、令牌生命周期和当前用户的记录权限
后台服务与用户功能同属一个产品分别建模用户授权与系统授权分别验证
从任务选授权模式。ERP 夜间同步,受控应用凭据。伙伴查询订单,独立 OAuth 客户端。用户委托智能体,按用户授权。后台与用户混合,分别建模与验收。
先验证实际调用,再放大范围。

已有内部凭据的系统可以继续运行。新增外部接入先使用限定范围的测试客户端,验证越权请求被拒绝、令牌到期和停用后能正确处理,再按接入方扩大范围。

从试点扩展到多方接入。建立客户端,限制测试资源。验证正常调用,读取或写入目标记录。检查拒绝,越权、到期和撤销。扩大范围,按接入方登记负责人。
每一步保留可核对的调用结果。

上线前验证一条完整调用

选一条读取订单或写入审批记录的真实流程,先用测试环境检查正确身份能执行目标动作,再用超范围请求、过期凭据和已撤销客户端检查拒绝结果。审计记录应能解释哪个应用在什么时间以什么身份调用了什么资源。

查看原始文章

返回易企办博客