将 DocuSign 集成到 SPA 的选项

Bin*_*ell 5 docusignapi

我正在为会议提交一份文件。我想将 DocuSign 与 Alfresco 基于 Angular 的开发人员框架,特别是 Alfresco Content App 集成。

为了简单起见,我想考虑可以 100% 从浏览器完成的工作流,而无需我自己的任何后端代码。

我怀疑我可以为在 Alfresco UI 中找到的任何文档创建“立即签署此文档”类型的操作。这可以启动不需要我自己的任何后端服务的 OAuth 流程。

我想我需要将我的集成密钥放入 SPA。然后,任何使用该应用程序的人都可以看到这一点。通过阅读文档,我不清楚“泄漏”此密钥是否可以?

我是否可以在 SPA 中实现其他用例而无需添加我自己的后端服务?诸如发送一份文件由一个或多个人签名之类的事情?或者在 Angular UI 中嵌入签名体验?

我在 DocuSign 博客上看到了以下系列:

https://www.docusign.com/blog/dsdev-building-single-page-applications-with-docusign-and-cors-part-1/

通读了那个和 REST API 文档后,我仍然不清楚是否有可能在没有我自己的后端服务的任何支持的情况下实现这样的东西。

我也没有在网上找到任何可以联系 DocuSign 的开发人员布道者来讨论我的选择的地方。我相信 DocuSign 开发人员会监控 SO,所以认为这是下一个最好的事情。

Lar*_*y K 1

很好的问题。浏览器实施同源策略。因此,正如我在博客系列中所写的(请参阅下面列出的所有三篇文章),您将需要一个 CORS 网关来从浏览器本身中运行的 Angular 程序向 DocuSign 系统进行 API 调用。

好消息是创建私有 CORS 网关并不难。请参阅该系列的第 2 部分:

验证

您的应用程序在对 DocuSign 进行 API 调用时将需要访问令牌。有多种技术可以为您的应用程序提供所需的访问令牌:

  • 您的应用程序本身可以使用 DocuSign 对用户进行身份验证。在这种情况下,由于安全问题(正如您在问题中提到的),您不使用 OAuth 授权代码授予流程。相反,您可以使用专为此用例设计的OAuth 隐式授予流程。该流程在博客系列的第 3 部分中进行了演示。
  • 您可以在服务器中实现 OAuth 授权代码授予流程,然后在服务器和浏览器应用程序之间创建私有 API 以获取访问令牌。

私有API

作为使用 CORS 的替代方案,您可以在服务器上实现您自己的私有版本的 DocuSign API 方法。然后您的浏览器应用程序将向private_send_envelope您的服务器发送请求。您的服务器将管理访问令牌,将请求发送到 DocuSign,并将响应转发回您的浏览器应用程序。

此模式与您有关实现后端服务的问题相同。它可以正常工作,但不如在浏览器应用程序中实现所有内容那么优雅。根据您的 SPA 当前和未来的 API 需求,这可能是一个好主意,也可能不是一个好主意。

CORS支持是关键

在 DocuSign 提供 CORS 支持之前,您需要在后端构建一些东西。要么是 CORS 网关(只涉及配置,不涉及软件),要么是私有 API 网关。

请要求您的 DocuSign 销售或技术联系人将您的信息添加到 CORS 支持的内部 DocuSign 提案 PORTFOLIO-1100 中。这将有助于提高 CORS 支持的优先级。谢谢。

具体答案

关于:

我想我需要将我的集成器密钥放入 SPA 中。然后,使用该应用程序的任何人都可以看到这一点。通过阅读文档,我不清楚“泄露”这个密钥是否可以?

回答:当且仅当 IK 设置为隐式授权使用时(选中 IK 属性表上的“移动应用程序”复选框),才可以将集成器密钥 (IK) 添加到浏览器应用程序。

阅读完该文档以及 REST API 文档后,我仍然不清楚是否可以在没有我自己的后端服务支持的情况下实现类似的功能。

答:此时您要么需要实现私有 CORS 网关,要么需要实现后端软件。