帐户和应用集成中的许多用户

时间:2018-11-23 07:06:15

标签: docusignapi

执行授权码授予验证时,Docusign征求同意。据我了解文档,这暗示着用户的同意。首次征得同意时,要求用户输入其凭据。下次询问时,隐含同一用户。

但是请考虑以下问题:我的演示帐户wowproj.dev@gmail.com中列出了3个用户:wowproj.dev@gmail.com本人,Mary@inbox.ru和Mike@inbox.ru。

我需要知道两件事:

1)在执行代码授权时是否可以静态指定用户(例如,通过其“ api用户名”),以便用户仅需按一些“确定”按钮即可(也许也输入密码),但不能用户名)-可以吗?否则,我的应用程序中可能会有用户“ Mike”和“ Mary”,而我的Docusign帐户中也有这些用户;然后我的应用程序的“迈克”用户开始执行某些操作,但是当征求同意时,“玛丽”输入其Docusign凭据并表示同意。我希望得到迈克的同意!例如,我可以将Mike的api用户名存储在我的应用程序的他的帐户中,并在授予授权中使用它。但是,据我所知,用户的登录名和他的api用户名都不会在授权代码请求中发送到Docusign,所以我看不到如何实现我想要的。

2)下一次询问时,暗示同一用户-这可能是一个问题。如果在Docusign的询问下我的上一段中的“ Mike”输入了自己的凭据并表示同意,然后他退出了我的应用程序,而Mary登录并开始了涉及Docusign的某些操作,该怎么办? Docusign会假设仍然是Mike的会议吗?我如何确保不会发生这种情况?

1 个答案:

答案 0 :(得分:2)

我不理解您的问题对“暗示”的使用。运作方式如下。如果您还有其他问题,请更新(编辑)您的原始问题。

使用授权码授予时,用户首先向DocuSign进行身份验证。

然后,如果他以前从未这样做过,则要求他同意集成。集成请求的权限是集成的作用域。通常的范围是签名,可以有其他范围。

在他同意后,DocuSign授权服务会将用户的浏览器重定向回集成,并且将包含授权码作为查询参数。

然后,您的集成对DocuSign进行了oauth调用,以将授权代码交换为访问令牌。

下一步(通常),您的集成使用OAuth::getUserInfo方法从DocuSign获取用户名,电子邮件,授权的DocuSign帐户等。

确保您的应用程序用户是DocuSign用户

您不能强迫谁将通过DocuSign进行身份验证。但是您可以检查对的人进行了身份验证。例如:

  1. Mike登录到您的应用程序。您知道迈克的电子邮件。
  2. 您的应用希望其用户通过DocuSign进行身份验证。您的应用程序通过DocuSign启动OAuth授权代码授予流程。
  3. 您的应用程序用户现在可以看到DocuSign登录屏幕。
  4. (问题)是Mike要求Mary为DocuSign进行身份验证。玛丽这样做。
  5. 但是,当您的应用程序了解经过DocuSign身份验证的用户的电子邮件地址时,它将是Mary的电子邮件地址,而不是Mike的电子邮件地址。因此,您的应用可以通过向用户发布一条消息,告知 Mike 必须通过DocuSign重新进行身份验证,从而拒绝DocuSign身份验证。

通过实施上述操作,您的应用程序可以保证当Mike登录到您的应用程序时,与DocuSign匹配的身份验证将是Mike的DocuSign用户帐户,而不是其他人的。

除了比较电子邮件地址,您还可以使用DocuSign用户ID。但是,这样做需要您完成一个将表加载到应用程序中的步骤,该表将Mike的帐户及其DocuSign用户ID关联起来。电子邮件地址可能更容易。

回复:其他人在上一次会话后登录

有两种情况:

同一台计算机上的同一浏览器

这是“公用计算机问题”。

Mike使用浏览器“ G”登录到您的应用程序以及DocuSign。后来,玛丽滑入他的座位,并使用相同的浏览器和相同的应用程序。

默认情况下,DocuSign的OAuth身份验证代码授权会启用静默身份验证。这意味着DocuSign身份验证流将使Mary默默使用Mike的DocuSign会话(如果仍处于活动状态)。对于公共机器场景,这显然不是很好。解决方案:

  1. 始终要求DocuSign主动对人员进行身份验证(不允许静默身份验证)。为此,请在发送到DocuSign的初始URL中包含prompt=login。参见docs

  2. 清除用户之间的浏览器cookie。处理公用计算机的标准方法将包括此。

同一应用上的不同用户

您的应用应使用会话。应用程序的每个用户(并行或顺序)都将获得自己的会话。每个会话应维护其自己的DocuSign身份验证信息,包括当前用户的访问令牌,帐户ID和基本URL。

所有这些信息都确定为“ DocuSign身份验证”过程的一部分。

如今,所有现代Web应用程序框架都提供了易于使用的会话界面。

我们还有可供您使用的代码示例。 See this repository list.(更多内容即将推出。)