DocuSign - 获取组织管理员已预先授权应用程序的用户的用户ID

时间:2017-11-13 16:55:54

标签: oauth docusignapi

任何路线都要求您作为DocuSign用户进行身份验证才能使用它。使用标准服务集成流程,您可以引导用户通过docusign的/oauth/auth流程,使用返回的代码通过/oauth/token获取访问令牌,然后在/oauth/userinfo上使用该令牌获取用户的权限然后,您可以在JWT中签名并使用该ID。

DocuSign不允许用户通过oauth UI获得他们的同意,而是允许组织管理员为应用程序中的每个人预先授权应用程序。无需通过oauth流程发送组织成员。大。

但是,一旦采取此操作,我的应用程序如何代表任何用户发出请求并不清楚,因为为您提供用户ID的/oauth/userinfo路由需要通过传递获得的oauth代码用户通过DocuSign的oauth浏览器UI。

更具体地说:如果foo.com的DocuSign组织的管理员授权我的应用程序,并且bob@foo.com开始使用我的应用程序,我如何获得bob@foo.com的用户ID来创建JWT?

1 个答案:

答案 0 :(得分:0)

当你说“bob@foo.com开始使用我的应用程序”时,究竟是什么意思?

案例1 :Bob正在与您的应用程序进行交互。在这种情况下,您应该使用用户应用程序OAuth流程(例如Authorization Code Grant)来启用他登录。

如果您的应用需要稍后代表Bob行动,那么请存储Bob的用户ID,以便以后使用JWT授权。

案例2 :您的应用在后台运行(无需人工干预)。在某些时候,你的应用程序需要通过模仿他开始为Bob做事。你只拥有他的电子邮件地址。

如果此时间到来并且您的应用与Bob没有互动,那么是的,您需要事先作为管理员访问(在Bob的帐户中),以便您可以从他的电子邮件中查找Bob的user_id。

此第二个帐户将是您应用的“管理员用户帐户”。该帐户需要管理员权限才能查找用户的信息。安装应用后,您的应用可以访问此管理员帐户。

使用Users:list API调用。请记住对电子邮件地址进行编码。

示例:

GET call: /v2/accounts/{accountId}/users?email=larry%2Buser%40foo.com

Re:user_id生命周期我有理由相信,对于给定的帐户用户(在DocuSign上成为帐户成员的人),user_id guid不会更改。我会检查以确保。