【问题标题】:DocuSign - OAuth Authorization Code Grant - Multiple Users - Error while fetching Access and Refresh TokenDocuSign - OAuth 授权代码授予 - 多个用户 - 获取访问和刷新令牌时出错
【发布时间】:2018-12-20 03:56:45
【问题描述】:

我们正在尝试将 DocuSign 与我们的产品集成。

我们的场景:我们的组织有一个(合作伙伴)帐户。我们创建了一个集成密钥 (ClientID) 和 Secret。我们希望我们的客户使用他们自己的帐户(不是我们合作伙伴帐户的子帐户(管理员-用户关系))来创建信封并生成签名 URL 以及我们的集成密钥和秘密。

后续步骤:

  1. 创建了一个帐户(合作伙伴帐户)。
  2. 已创建集成商密钥和机密。
  3. 我们的场景被认为是User Application,使用Authorization Code Grant机制来获取授权码。
  4. 客户端被重定向到 DocuSign 门户以进行身份​​验证。 (通过将我们的集成密钥作为参数传递来使用授权码授予机制)
  5. 客户同意我们的应用程序使用他们的凭据来创建信封。
  6. 接收授权码。
  7. 使用客户端 authcode 和合作伙伴帐户 Integrator Key & Secret,尝试获取刷新和访问令牌。但 DocuSign API (OAuth/token) 以 "Bad Request" (400) 作为响应。
  8. 代替客户帐户,如果我们使用相同的合作伙伴帐户凭据,则 API (OAuth/token) 将使用正确的刷新令牌和访问令牌进行响应。

问题:一个帐户的集成密钥和密码是否可以与另一个帐户的验证码(两个帐户没有任何关系(管理员-用户))一起用于获取访问令牌和刷新令牌。

使用的 API:

获取验证码 - https://account-d.docusign.com/oauth/auth(DocuSign 门户中的合作伙伴帐户(集成商密钥和秘密)和客户用户凭据)

获取访问/刷新令牌 - https://account-d.docusign.com/oauth/token(来自先前响应和 base64 的验证码(Integrator Key:Secret))

原因:我们不想存储用户凭据或要求用户每次在我们的应用程序中使用他们的 DocuSign 帐户时都登录。因此,我们希望获得用户的同意并将他们的刷新令牌存储在我们这里。下次使用他们的刷新令牌和我们的集成密钥来调用 DocuSign API。

【问题讨论】:

    标签: docusignapi


    【解决方案1】:

    更新

    (我在 DocuSign 工作。)

    通过提供给 DocuSign 的其他信息,我们能够找到失败的 OP 的 OAuth 事务的内部日志。我们从内部日志中可以看出,确实问题在于授权码已经过期。

    在 OAuth 流程中,一旦应用程序收到授权码,它应该立即转身并使用它来获取访问和刷新令牌以及相关信息。我们将更新我们的文档以明确说明此问题。

    原答案

    您所做的一切听起来都非常正确。特别是因为用户在通过您的应用程序登录 DocuSign 后第一次收到许可屏幕。

    直接回答您的问题:是的,应用程序可以为任何 DocuSign 帐户上的任何 DocuSign 用户使用客户端 ID(集成密钥)。

    一个想法:您的应用程序是否在收到授权码后立即请求令牌?授权码本身会在几分钟后超时。

    您是说如果用户 A 登录它可以工作(用户 A 属于管理客户端 ID 的帐户),但是如果用户 B 登录它不起作用?我以前没见过这个问题。我会使用用户 C 创建一个新的演示开发人员沙箱,并让他们尝试登录。

    所有这些都是演示还是生产?

    【讨论】:

    • 非常感谢您的快速响应 Larry(DocuSign 团队)。正如您所指出的,问题在于身份验证代码的到期。现在,我在获取 Auth Code 后立即测试了所有场景,一切似乎都运行良好。
    • 目前我们正在使用演示帐户来测试将DocuSign与我们的产品集成的可行性。一个建议:由于身份验证代码将在几分钟内过期,如果 API(oauth/token)响应错误消息“未经授权的用户/身份验证代码已过期”以及“错误请求”会更好。它将为开发人员提供更好的上下文来重试/重新验证失败场景的用户。
    • 嗨@SriHarsha,是的,我已提交内部请求以改进错误代码/消息。我100%同意你的建议!感谢您使用 DocuSign。
    猜你喜欢
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多