我们正在尝试将DocuSign与我们的产品集成。
我们的方案:我们的组织有一个(合作伙伴)帐户。我们创建了一个集成商密钥(ClientID)和密钥。我们希望我们的客户使用他们自己的帐户(不是我们的合作伙伴帐户的子帐户(管理员帐户-用户关系))来创建信封,并生成签名URL以及我们的集成商密钥和机密。
遵循的步骤:
问题:是否可以将一个帐户的集成商密钥和机密信息与另一个帐户(两个帐户都没有任何关系(管理员用户))的身份验证代码一起使用,以获取访问令牌和刷新令牌。
使用的API:
获取身份验证代码-https://account-d.docusign.com/oauth/auth(DocuSign门户中的合作伙伴帐户(集成商密钥和机密)和客户端用户凭据)
获取访问权限/刷新令牌-https://account-d.docusign.com/oauth/token(来自先前响应和base64(集成商密钥:秘密)的身份验证代码)
原因:我们不想存储用户凭据,也不希望用户每次想在我们的应用程序中使用其DocuSign帐户时登录。因此,我们希望征得用户的同意并与我们一起存储他们的刷新令牌。下次使用它们的刷新令牌和我们的集成商密钥来调用DocuSign API。
答案 0 :(得分:0)
更新
(我在DocuSign工作。)
通过提供给DocuSign的其他信息,我们能够找到失败的OP的OAuth事务的内部日志。从内部日志中我们可以看到,实际上问题是授权代码已过期。
在OAuth流程中,应用程序收到授权码后,应立即转过身来并使用它来获取访问和刷新令牌以及相关信息。我们将更新我们的文档以明确说明此问题。
原始答案
您所做的一切都听起来很正确。尤其是因为用户通过您的应用程序登录DocuSign后,第一次收到权限屏幕。
要直接回答您的问题:是的,应用程序可以将客户端ID(集成密钥)用于任何DocuSign帐户上的任何DocuSign用户。
一个想法:您的应用程序在收到授权码后是否立即请求令牌?几分钟后,授权代码本身就会超时。
您说的是,如果用户A登录有效(用户A属于管理客户端ID的帐户),但是如果用户B登录无效?我以前没看过那个问题。我将使用用户C创建一个新的演示开发人员沙箱,并让他们尝试登录。
所有这些都在演示或生产中吗?