代码之家  ›  专栏  ›  技术社区  ›  XLTChiva

Docusign服务集成身份验证

  •  2
  • XLTChiva  · 技术社区  · 7 年前

    我正在创建一个需要使用我的Docusign帐户的服务集成。我从查看身份验证信息开始,发现 Legacy Header 页这建议不要将其用于服务集成

    以前建议将旧标头身份验证用于服务集成。DocuSign建议使用服务集成身份验证构建新的服务集成。

    所以我决定去 Service Integration Authentication page 哪些国家

    在应用程序可以模拟用户之前,应用程序必须直接获得用户或其帐户管理员的同意。

    然后在“授予同意”一节中指出

    用户同意可以从授权码授权或隐式授权开始。

    然而 Authorization Code Grant 以及 Implicit Grant 页面状态位于页面顶部

    此授权不适用于服务集成。

    那么我不应该使用这些补助金吗?如果我不这样做,我就只能使用传统的头验证了。我对此没有问题,但为什么建议不要使用它,然后建议不要使用替代品呢?我错过什么了吗?

    1 回复  |  直到 7 年前
        1
  •  4
  •   Larry K    4 年前

    很抱歉,服务集成的文档不清楚。我们将努力改进它。

    TL;DR--看我的 screencast 我关注的正是这个问题。

    以下是独家新闻:

    如果您正在编写应用程序供自己的组织使用,建议将JWT流用于服务集成。如果您是ISV(如果您将向DocuSign客户销售软件),那么此时还需要考虑其他问题。

    使用JWT流并模拟某人或指定的“系统用户” (通常情况下)那么你的应用程序需要许可才能这样做。如果您启用了组织管理员,您的组织管理员可以主动授予您的应用程序模拟组织中任何人的权限。

    您还可以让每个人单独授予权限。例如,您在DocuSign中创建了一个名为“HR Dept”的用户。然后,您以“HR Dept”身份登录,并授予应用程序模拟“HR Dept”的权限

    用户在第一次使用应用程序时授予其权限。但用户不“使用”服务集成!(正如您通过文档所发现的。)

    诀窍在于:在DocuSign中将应用程序设置为身份验证代码授予应用程序(设置重定向URI)和JWT流应用程序(创建公钥/私钥对)。为方便起见,请将重定向URI设置为现有站点。如, https://www.docusign.com

    然后,针对每个将被模拟的用户,告诉他们在浏览器中输入特定的URL。该URL是OAuth身份验证代码授权流的第一段。它是

    ${AUTHENTICATION_URL}/oauth/auth?response_type=code&scope=${encoded_scopes}&client_id=${CLIENT_ID}&redirect_uri=${REGISTERED_REDIRECT_URI}`
    
    # AUTHENTICATION_URL = https://account-d.docusign.com  (demo)
    # AUTHENTICATION_URL = https://account.docusign.com  (production)
    # CLIENT_ID = your integration key
    # encoded_scopes = signature%20impersonation
    # REGISTERED_REDIRECT_URI = https://www.docusign.com (or whatever
    #                            you registered)
    

    当用户输入上述url时,DocuSign将要求他们登录,然后要求他们向您的应用程序授予权限(作用域)。

    然后,您可以运行JWT流(无需用户),您就是黄金。

    添加:每个集成密钥每个用户一次授予许可

    授予许可是每个用户对每个集成密钥的一次性操作。因此,一旦您的用户授予了许可,您的应用程序就可以继续重新运行JWT授权流。

    注意事项:

    • 仅当您的应用程序需要为被模拟的用户提供新的访问令牌时,才使用JWT授权流。 不要 在每次API调用之前使用JWT grant流!仅在现有访问令牌已过期或即将过期时使用流。

    • 如果用户撤销了对你的应用程序的同意,那么你的应用程序将需要再次获得同意。