docusignapi - 我们应该如何允许我们的网络应用程序的个人用户连接到他们自己的 DocuSign 帐户?
问题描述
就上下文而言,我们目前正在我们的 DMS 网络应用程序产品上开发 DocuSign 集成。到目前为止,我们所做的是网络应用程序的管理员(我们假设这将是我们客户的 IT 人员)可以通过输入 API 帐户 ID、集成密钥、秘密密钥、访问令牌和刷新令牌来设置集成。所有这些信息都是使用 DocuSign 管理员帐户获取/生成的。有了这个,我们看到任何使用 DMS 的用户都可以发送签名请求(通过 API),而无需登录到他们自己的 DocuSign 帐户。
然而,我们意识到这意味着所有的签名请求都将使用通用的 DocuSign 管理员帐户发送,即信封来自管理员帐户,并且所有签名的文档也存储在 DocuSign 管理员帐户中。这不是我们想要的,因为 DocuSign 管理员可以看到机密的签名文档。
我很困惑,想就我们应该如何解决这个问题寻求建议?理想情况下,DMS 的用户 A 可以将他的 DocuSign 帐户与他的 DMS 帐户相关联。因此,当用户 A 从我们的 DMS 发出签名请求时,签名者会收到来自 DocuSign 的电子邮件,显示它来自该用户而不是普通管理员帐户。
此外,看起来每个使用我们 DMS 的客户都必须进行上线流程?这是否意味着每个客户都需要拥有他们的 DocuSign 开发人员帐户,以便集成密钥可以升级到生产环境?还是我走错了方向,应该将合作伙伴集成视为 ISV?
解决方案
如果您的 DMS 系统是 SAAS 系统,那么您可以有 1 个集成密钥(客户端 ID)用于与 DocuSign 的集成。换句话说,您的个人客户不会拥有自己的集成密钥、机密等。
如果您的应用程序的体系结构可以支持它,那么一个集成密钥是最好的。为此,您需要一个或几个重定向 URI,以使您的用户(也有 DocuSign 帐户)能够使用 DocuSign 进行身份验证。
然后,您的应用程序会为通过 DocuSign 进行身份验证的每个用户存储生成的访问令牌、刷新令牌和到期日期。这样,正如您所说,当您的用户发送一个要签名的信封时,它将属于他们自己的 DocuSign 帐户,并将他们显示为发件人。
当您的客户想要通过 DocuSign 发送时,您的应用程序会检查此人的访问令牌的到期日期。如果访问令牌已过期,则使用刷新令牌获取新的访问令牌和新的刷新令牌。
刷新令牌存储在您应用的非易失性存储中(最好加密),因此您可以在几天或几周后为用户使用它。这样他们就不必使用 DocuSign 重新进行身份验证。对于这种情况,使用范围signature%20extended
对于 account_id 信息,使用用户的默认帐户并允许他们根据需要切换到另一个帐户。
更多信息:
推荐阅读
- javascript - 如何 - 提高我的代码性能以从数组中获取唯一值 - Javascript
- c++ - 使用 SCH_CRED_FORMAT_CERT_HASH 时,AcquireCredentialsHandle 在内核模式下失败
- python - 将列表列表的列表转换为字典
- c# - 在 MS BotFramework 中使用 PromptDialog 开始对话
- laravel - 当父级不存在时,Laravel hasMany
- c++ - 缺少 Qt5PrintSupportd.dll
- java - 将本机查询转换为 JPQL
- spring-boot - Kinesis 作为 Spring Boot Reactive Stream API 中的生产者
- vba - 在另一个 Sub 中编辑一个 Sub
- c# - 如何在 Windows 中制作文件版本号?