You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于JWT(用户同意)实现SOBO信封创建功能?

实现DocuSign JWT集成下的SOBO(代表其他用户创建信封)功能

要实现以指定非JWT认证用户的身份创建信封,你可以利用DocuSign的**Send On Behalf Of (SOBO)**机制,具体操作步骤如下:

1. 确认管理员用户具备SOBO权限

首先得确保你的JWT认证管理员用户拥有代表其他用户操作的权限:

  • 如果该用户是账号管理员,默认就具备SOBO权限;
  • 如果是非管理员用户,需要登录DocuSign控制台,在用户权限设置中为其开启Send On Behalf Of权限。

2. 在API请求中添加SOBO专属请求头

当调用创建信封的API时,只需在请求头里加上X-DocuSign-Act-As-User字段,值填你想要代表的目标用户的UUID格式用户ID就行。这个请求头会告诉DocuSign:当前JWT认证的管理员用户正在替目标用户执行操作,最终信封会以目标用户的身份创建。

示例:REST API请求头

POST /restapi/v2.1/accounts/{account_id}/envelopes HTTP/1.1
Host: demo.docusign.net
Authorization: Bearer {你的JWT访问令牌}
Content-Type: application/json
X-DocuSign-Act-As-User: 123e4567-e89b-12d3-a456-426614174000  // 替换为目标用户的UUID

示例:Python SDK代码实现

如果你用DocuSign官方SDK开发,可以通过设置客户端默认请求头来快速实现:

from docusign_esign import ApiClient, EnvelopesApi
from docusign_esign.models import EnvelopeDefinition, Signer, SignHere, Tabs, Recipients

# 初始化API客户端
api_client = ApiClient()
# 设置SOBO头:指定要代表的用户ID
api_client.set_default_header("X-DocuSign-Act-As-User", "目标用户的UUID")
# 传入JWT获取的访问令牌
api_client.set_access_token("你的JWT访问令牌")

# 构建信封基础定义
envelope_definition = EnvelopeDefinition(
    email_subject="请签署这份文档",
    status="sent"
)

# 添加签署人及签署位置(可根据实际需求调整)
signer = Signer(email="signer@example.com", name="签署人姓名", recipient_id="1")
sign_here = SignHere(document_id="1", page_number="1", x_position="100", y_position="100")
signer.tabs = Tabs(sign_here_tabs=[sign_here])
envelope_definition.recipients = Recipients(signers=[signer])
# 此处可添加要发送的文档(省略文档上传逻辑)

# 调用API创建信封
envelopes_api = EnvelopesApi(api_client)
response = envelopes_api.create_envelope("你的账号ID", envelope_definition=envelope_definition)

3. 关键注意事项

  • 目标用户必须是当前DocuSign账号下的有效用户,跨账号无法使用SOBO功能;
  • JWT认证的管理员用户必须能访问目标用户所在的账号;
  • 只有具备SOBO权限的用户,才能使用X-DocuSign-Act-As-User请求头,否则会返回权限错误。

内容的提问来源于stack exchange,提问作者pranav daipuria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:25:18