2026年8月28日

DocuSign API:如何零停机轮换集成密钥——分阶段策略

Summary · 10 min read

一套分阶段、零停机的 DocuSign API 凭据轮换策略:新旧集成密钥、RSA 密钥对与客户端密钥并行运行,附六阶段工作流表与轮换日检查清单。

简短答案:新旧凭据并行运行

可以:在不中断任何一个签署包的情况下轮换 DocuSign API 凭据——但方式不是原地替换某个值。DocuSign 没有提供「轮换此凭据」的接口,也不需要提供,因为它的 OAuth 模型本身就支持重叠期:一个集成密钥可以同时挂载多个 RSA 密钥对(JWT Grant 文档给出的上限是每个集成密钥 5 个),一个账号也可以持有多个集成密钥。零停机来自对这种重叠期的刻意利用:在旧凭据仍然有效时创建新凭据,让令牌服务在功能开关后同时支持用任意一套凭据签发令牌,逐步切流,待观察期干净无告警后再退役旧凭据。

令牌生命周期的两个特性把爆炸半径压到很小。访问令牌按授权类型存活一到八小时,所以你的应用本来就在持续重新签发令牌——轮换正好接入这条既有代码路径。而凭据层(Apps and Keys 页面)与令牌签发是解耦的:切换动作只是你的令牌服务改用哪把私钥或哪个密钥来签名。

你真正在轮换什么:集成密钥、客户端密钥与 RSA 密钥对

「集成密钥」这个词经常被混用,但 DocuSign 的凭据模型有三层,每一层的轮换方式都不同。

集成密钥本身是标识你应用的公开客户端 ID。它在账号的 Apps and Keys 页面创建,并关联到应用配置:重定向 URI、scope,以及下面要说的认证材料。它不是秘密——它会出现在授权 URL 和授权同意页面上——所以「轮换集成密钥」实际指的是轮换挂在它下面的东西。

对于 JWT Grant——服务间集成的典型选择——秘密材料是挂在集成密钥下的 RSA 密钥对。你的应用用私钥签署一个 JWT 断言(携带 iss = 集成密钥、sub = 被模拟用户的 GUID、aud = OAuth 基础路径,scope 通常是 signature impersonation),再到令牌端点换发令牌。

对于 Authorization Code Grant,秘密材料是在同一页面生成的客户端密钥SDK 文档注明该密钥只显示一次,忘了就只能重新生成——这正是基于 ACG 的集成的轮换抓手。

动手之前先想清楚你要轮换哪一层:RSA 密钥对(用 JWT 的团队)、客户端密钥(用 ACG 的团队),还是整个集成密钥(凭据泄露后的应急响应)。分阶段工作流是同一套。

为什么 DocuSign 的令牌生命周期让你实现零停机

三个有文档可查的行为让渐进切换足够安全:

  1. 访问令牌短命。DocuSign 开发者指南,访问令牌按授权类型存活一到八小时——JWT Grant 令牌在短端(约一小时),Authorization Code Grant 响应中的 expires_in 为 28800 秒并附带刷新令牌。一个过期令牌给你造成的损失以分钟计,而不是以天计。
  2. 刷新令牌以天计,不以小时计。 刷新令牌默认存活 30 天;启用 extended scope 后(仅 Authorization Code Grant),每次刷新都会换发一个再续 30 天的新令牌。你需要决定轮换是强制重新授权同意,还是放任旧的刷新链自然过期。
  3. 401 是恢复信号,不是故障。 DocuSign 的错误处理指南建议把 401 当作触发条件:获取新令牌并重试。如果你的客户端已经是这么做的,一次搞砸的切换只会退化成多几次令牌请求,而不是一场停机。

同时要留意按用户 ID 和集成密钥计的 /oauth/userinfo 每小时请求限额。这些运营层面的限额与套餐定价如何相互影响,可参见我们的 API 速率限制与定价评测

分阶段轮换工作流

阶段动作退出条件
0 — 盘点列出凭据存在的每一个角落:令牌服务、CI/CD 变量、定时任务、第三方自动化,以及它们支撑的业务流——从批量发起到签署后标签与表单数据提取依赖关系图中没有「未知」条目
1 — 创建在旧凭据仍有效的前提下,添加新的 RSA 密钥对、生成新的客户端密钥,或创建新的集成密钥。私密材料进密钥管理器,绝不进代码库。新凭据已存在,生产环境零引用
2 — 双跑令牌服务在功能开关后同时支持两套凭据签发;让金丝雀流量走新路径。金丝雀令牌能完成真实签署包
3 — 切换在你选定的窗口内把签发比例从 10% 推到 50% 再到 100%。100% 新令牌来自新凭据
4 — 观察让旧凭据保持一个完整业务周期的签发能力。盯 401 比率、令牌端点报错、webhook 投递。一个干净周期,无任何认证相关告警
5 — 退役删除旧密钥对、旧密钥或旧应用。把带日期的依赖关系图归档,供下一周期使用。旧凭据已 fail closed

团队最常跳过的是第 4 阶段,而跳过后最疼的是第 0 阶段:没有文档的定时任务和被遗忘的 Zapier 式自动化,正是「我们轮换了密钥,两周后三条工作流死了」这类故事的来源。我们的电子签名网络安全风险指南里的凭据卫生论点在这里同样适用。

在同一集成密钥内轮换,还是新建集成密钥

两种模式都可行,二者之间的取舍是主要的战略决策。

模式 A——在同一集成密钥上新增 RSA 密钥对。 因为 OAuth 授权同意是授予客户端 ID 的,替换密钥对无需重新授权。文档记载的上限是每个集成密钥 5 个 RSA 密钥对,所以可以在旧密钥对仍可用时新增;若已到上限,先删掉废弃的密钥对。切换动作就是你的令牌服务改用哪把私钥签名。

模式 B——整体新建集成密钥。 这是凭据泄露或配置重建时的正确应对方式,DocuSign 支持每个账号持有多个集成密钥。代价是:授权同意按客户端 ID 授予,新密钥需要新的授权同意——没有它,JWT Grant 会返回 consent_required 错误,必须由用户或管理员重新授权新应用,模拟调用才能工作。把这部分预算排进第 2 阶段。

模式 A:新增密钥对模式 B:新建集成密钥
适用场景例行轮换、私钥卫生凭据泄露、配置重建
对授权同意的影响无——客户端 ID 不变新客户端 ID 需重新授权同意
并行能力每个集成密钥最多 5 个密钥对两个应用天然并行运行
回滚切回旧密钥对,直至删除保留旧应用,直至退役
工作量中:授权同意、scope、配额核对

轮换日检查清单与错误处理

在碰 Apps and Keys 页面之前,先走完这份清单:

  1. 第 0 阶段的依赖关系图是最新的,且已会签确认。
  2. 新凭据已入密钥管理器,访问权限仅授予令牌服务。
  3. 功能开关支持按请求选择凭据,而不是只有一个全局开关。
  4. 告警覆盖 401 比率、令牌端点报错和签署包完成延迟。
  5. 回滚路径已写入文档:把开关拨回旧凭据。
  6. 日历里已有观察期复盘的提醒。

一个最简形式的 JWT Grant 令牌请求——仅占位符,切勿填入真实凭据:

```bash

curl --data "grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion={$JWT}" \

--request POST https://account.docusign.com/oauth/token

```

你的应用签署的断言携带以下声明:

```json

{

"iss": "YOUR_INTEGRATION_KEY",

"sub": "YOUR_IMPERSONATED_USER_ID",

"aud": "account.docusign.com",

"iat": {$IAT},

"exp": {$IAT_PLUS_6000},

"scope": "signature impersonation"

}

```

有两个行为值得先在沙箱里验证:删除旧密钥对或旧密钥之后,由旧凭据签发的访问令牌是否一直有效到自然过期;在同一集成密钥上重新生成客户端密钥后,旧密钥是否仍然有效。文档讲了机制,但没有覆盖这两个边缘场景——把沙箱确认当作第 2 阶段的一部分。

当轮换周期暴露出平台瓶颈:Nota Sign

如果凭据轮换对你的工程团队来说是一笔反复缴纳的税,是时候重新评估平台本身了——我们的 DocuSign 是什么、何时该对比替代方案指南 给出了这个决策的框架。Nota Sign 是FaDaDa面向国际业务的电子签名平台,从设计上坚持 API 优先:连续多年位居 IDC 中国电子签名软件排名第一,法律覆盖横跨 100 多个国家和地区,亚太身份认证能力——iAM Smart、Singpass、SES/AES/QES——原生内置而非事后拼接,凭据管理因此保持日常化,而不是一次次救火。开发者可以直接阅读我们的 iD-One 与 iCorp-One 身份集成实践,或中国电子签名 API 指南。不按席位收费,意味着小团队扩张不必为席位数焦虑;中端市场与企业客户可洽谈定制方案。想从第一天起就规划对轮换友好的凭据体系,开启对话

FAQ

Nota Sign 帮助企业构建合规的协议签署流程,所有内容均遵循严格的编辑方针。

发现更便捷的电子签名方式

联系销售
免费试用