我对你的API的OAuth2
过程感到很困惑。在文档中它说“客户端应用程序应显示UI
以提示用户输入电子邮件/密码,并且有责任保留信息保密,不在本地存储。“
我的观点是OAuth2
的目的在这里没有实现。客户端应用程序不应关心用户的电子邮件和密码。 DocuSign表示不要在本地存储密码!如果任何客户开发了一个存储用户密码并为DocuSign用户创建安全威胁的应用程序,该怎么办?
我使用OAuth2
身份验证使用了几个API,这是我第一次遇到不同的流程。能否请你告诉我如何实际应用这个,你能举例说明吗?
以下是我们的应用程序的工作原理。它连接docusigns用户,我们将保留他们的access_tokens,我们将使用它代表他们发送自定义信封/小部件。我们不想使用我们的域名询问用户的电子邮件和密码。
我不认为我走在正确的轨道上,我有点困惑,我需要你的协助。
答案 0 :(得分:1)
关键问题是当前DocuSign REST API OAuth2功能不支持单点登录。
相反,OAuth2功能使您的DocuSign客户端应用程序不会存储明确的用户名/密码对,以代表指定用户使用API进行身份验证。
另一方面,"代表他人发送" (SOBO)还使应用程序不会存储将发送交易(信封)的其他人的用户名/ pw。相反,您将一个用户名指定为"验证用户"。 More info.
所以这一切都取决于你的用例。请记住,API通常用于发送事务以进行签名,而不是签署文档。您可以作为"系统用户"或者您可以代表帐户中的其他用户发送邮件。
要取消客户端应用程序存储用户名/ pw的需要,您的应用可以:
对于您的用例:
以下是我们的应用程序的工作原理。它连接DocuSigns用户,我们将保留他们的access_tokens,我们将使用它代表他们发送自定义信封/小部件。我们不想使用我们的域名向用户询问电子邮件和密码。
听起来你的应用应该有一个"认证用户"最终用户所属的每个帐户。 (您不能说明您的所有用户是否在同一帐户中。)通常,DocuSign的每个公司/客户都有一个帐户供其所有用户使用。但是,由于各种原因,许多DocuSign客户确实拥有多个帐户。个人用户可以属于多个帐户。
验证用户将代表(SOBO)发送最终用户。在这种情况下,您不需要知道用户的pw。 (你不会持有他们的OAuth2令牌,也不需要请求他们的pw。)
但您确实需要他们的电子邮件(他们在DocuSign中的用户名)。大概你的应用程序有这些信息。
此外,您需要决定如何在DocuSign中配置发送用户帐户。您可以假设该帐户存在,然后在没有这种情况时优雅地处理该案例。
或者您可以通过API在帐户中配置用户。 Create_user method.
此外,用户是否会直接登录DocuSign?如果是这样,那么用户可能希望使用DocuSign实施SSO。 DocuSign SSO使用SAML。
<强>加强>
如果您使用SOBO认证用户的想法,那么请将认证用户视为您应用的系统用户(但每个DocuSign帐户需要一个)。系统用户的凭据通常包含在配置文件中,您仍然可以执行此操作。或者,您可以在安装时为系统用户创建令牌 - 管理员将添加名称/ pw。无需向普通用户询问密码。
对于任何适用于任何DocuSign 发件人的应用程序,在任何帐户中,通常您都有一个配置步骤&#34;添加&#34;应用程序到新帐户。这将是一个管理步骤,由管理员完成。您的sw会指示管理员为新帐户创建一个身份验证用户,然后输入该用户的电子邮件/ pw。
如果您的应用只是将您的应用中的签名请求(甚至只是收到确认请求的消息)发送给与您的应用相关联的任何随机人员,请记住签名是免费的 - 收件人用户不需要帐户的DocuSign。
如果您的客户希望&#34;发送&#34;签署请求(通过您的应用程序)并在他们的帐户等中查看它们,然后听起来您想要为每个客户使用SOBO和经过身份验证的用户&#39;配置帐户。请注意first paragraph in this doc。
不使用SOBO 您还可以按如下方式规划应用:
你是对的,这个流程可能会出现信任问题。为了最大限度地减少您需要发送DocuSign电子邮件/邮件的频率,我请使用验证用户+ SOBO。这样,只有在将DocuSign帐户添加到您的系统时,您才需要询问一次。
添加了更多 如果您的客户,他们的DocuSign帐户稀疏(换句话说,您的客户通常没有共同的DocuSign帐户),那么我会选择更简单的非SOBO流程。
为什么呢?更方便您的客户。如果他们是DocuSign帐户中唯一使用您的应用程序的人,那么在帐户级别进行配置步骤几乎没有意义。
你的一些客户可能会问你,#34;为什么你不使用OAuth2?&#34;答案是DocuSign API还不支持它。
最终添加
DocuSign REST API中对OAuth2的DocuSign支持:正如docs所说:
资源所有者密码授予是DocuSign REST API中唯一支持的OAuth2流程。这允许客户端应用程序通过为用户显示用户名,密码和集成商密钥,直接从REST API获取访问令牌。获得访问令牌后,它将在API调用中使用,而不是用户名/密码/集成键组合。
有关SOBO的信息,请参阅docs 1, docs 2和docs 3。如果您对SOBO有其他疑问,请打开一个新的StackOverflow问题。