代码之家  ›  专栏  ›  技术社区  ›  Maksim Gumerov

API无人参与授权-不再可能?

  •  0
  • Maksim Gumerov  · 技术社区  · 7 年前

    docusign send on behalf functionality ),我发现这在应用程序将签名请求与其他用户关联而不是与登录用户关联的场景中很有用。然而,我在当前的文件中找不到任何关于它的提及;相反,文档清楚地表明只支持3种授权类型,并且所有三种都涉及模拟用户主动表示同意。没有办法只发送用户凭据,或者,让用户在docusign admin页面上只表达一次同意,然后重复使用该同意,例如,一年或永远。或者其他一些避免最终用户交互的方法。

    此外,使用重定向URI发回继续数据的要求意味着必须使用本地解决方案或使应用程序在internet上可见。无法将公共docusign服务与内部应用程序一起使用,对吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Drew    7 年前

    DocuSign不鼓励旧式标头身份验证,因为它要求您的集成保留用户的纯文本密码。它还不能支持利用单点登录或双因素身份验证的帐户。长期计划很可能最终会让它完全退役,但没有时间表。文档已经失效,但是在过去使用过它的集成仍然可以这样做。

    JWT auth是等效的替代品。在个人同意的情况下,用户授予集成访问权限一次。除非用户撤销该同意,否则集成将能够生成访问令牌以无限期充当用户-JWT同意不会过期。

    如果您有一个拥有声明域的组织,组织管理员可以授予全面许可,允许集成作为该域下的任何用户。如果您希望对组织拥有的integrator密钥授予许可,只需导航到Org Admin>应用程序>批准申请。向第三方应用程序授予许可类似于个人许可工作流,但有额外的作用域,如下所述: https://developers.docusign.com/esign-rest-api/guides/authentication/obtaining-consent

    https://www.example.com ,授予同意,然后生成访问令牌。

        2
  •  -1
  •   JM-AGMS    7 年前

    我知道这个问题已经得到了回答,但我会把这个答案贴在这里,以防万一还有人需要这样做。此方法不需要用户同意。下面是Node.js/js,但通过下面的基础知识,可以轻松地翻译成任何语言。

    // set default authentication for DocuSign; pulls data from this account
    var auth = {
      'Username': '(user email)',
      'Password': '(user password)',
      'IntegratorKey': '(api key found in admin)',
    };
    var options = {
      'uri': 'https://www.docusign.net/restapi/v2/login_information',
      'method': 'GET',
      'body': '',
      'headers': {
        'Content-Type': 'application/json',
        // turns the auth object into JSON
        'X-DocuSign-Authentication': JSON.stringify(auth)
      }
    };
    // send off your request using the options above
    

    上面返回一个响应:

    {
      "loginAccounts": [
        {
          "name":"Your Company Name",
          "accountId":"0000000",
          "baseUrl":"https://{your_subdomain}.docusign.net/restapi/v2/accounts/0000000",
          "isDefault":"true",
          "userName":"User's Name",
          "userId":"(36 character UUID)",
          "email":"user@example.com",
          "siteDescription":""
        }
      ]
    }
    

    baseUrl 和 accountId 这是返回的。对于baseUrl,您只需要保存子域和域url( https://{your_subdomain}.docusign.net ),而不是之后的url参数。

    现在,您可以获得足够的信息来提出请求。下面的示例请求提取此帐户下的所有模板。

    var options = {
      'uri': baseUri+'/accounts/'+accountId+'/templates',
      'method': 'GET',
      'body': '',
      'headers': {
        'Content-Type': 'application/json',
        // turns the auth object into JSON
        'X-DocuSign-Authentication': JSON.stringify(auth)
      }
    };
    // send off your request using the options above