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

是否有生成DocuSign OAuth2 JWT的VBA类?Access 2016迁移求助

VBA实现DocuSign OAuth2 JWT认证的库引用与实现方案

所需VBA库引用

  • Microsoft Scripting Runtime:用于构造和序列化JWT的Header/Payload JSON结构
  • CAPICOM 2.0 Type Library:支持SHA256哈希与RSA签名操作(32位系统默认兼容,需确保已安装)
  • 若CAPICOM不可用,可替代为Microsoft RSA Cryptography Provider 1.0:专门处理RSA加密签名

实现步骤方向

  1. 构造JWT核心组件

    • Header固定为{"alg":"RS256","typ":"JWT"},用Scripting.Dictionary构建后序列化为JSON字符串
    • Payload需包含DocuSign要求的必填字段:
      • iss:你的DocuSign集成商密钥(Integrator Key)
      • sub:授权用户的DocuSign用户ID
      • aud:环境域名(测试用account-d.docusign.com,生产用account.docusign.com)
      • exp:过期时间戳(当前Unix时间+3600秒,不超过1小时)
      • scope:权限范围,固定为signature impersonation
  2. Base64URL编码处理

    • 对Header和Payload分别做标准Base64编码,再转换为JWT要求的Base64URL格式:
      • 替换+为-,/为_
      • 移除末尾所有=填充字符
    • 若未引用Base64库,可自行实现VBA编码函数(成熟的Base64/VBA实现代码可直接复用)
  3. 生成RSA-SHA256签名

    • 拼接编码后的Header与Payload:encodedHeader + "." + encodedPayload
    • 读取你的RSA私钥(需为PKCS#8格式,去掉PEM首尾行和换行,转成Base64字符串后解码为字节流)
    • 使用CAPICOM的Hash和SignedData对象,对拼接后的字符串做SHA256哈希并签名
    • 对签名结果再次做Base64URL编码
  4. 拼接完整JWT

    • 将编码后的Header、Payload、签名用.连接,得到最终可用于认证的JWT字符串
  5. 验证与调用API

    • 生成的JWT可在JWT.IO上验证格式和签名正确性
    • 调用DocuSign的OAuth2令牌接口,参数grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer,assertion=生成的JWT,获取access token后即可调用其他DocuSign API

关键注意事项

  • 确保所有引用库为32位版本,适配Access 2016 32位环境
  • 私钥请勿硬编码在代码中,建议存储在加密文件或安全的注册表项中
  • exp字段必须设置为当前时间1小时内的时间戳,否则DocuSign会拒绝认证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:57:14