我想用jwt flow实现DocuSign Service集成认证。
我已生成有效的jwt(在jwt.io上验证),我可以根据https://docs.docusign.com/esign/guide/authentication/oa2_jwt.html#requesting-the-access-token
成功获取基于jwt的访问令牌我在这篇博文中发现:https://www.docusign.com/blog/dsdev-docusign-developers-look-inside-new-authentication-apis/如果应用程序代表系统中的用户(我需要),则应省略子声明:
sub:您要为其提供令牌的委托人的用户ID。如果省略,将发出令牌以表示应用程序本身而不是系统中的用户。必填:否
但是在下一步“获取基本URI”中指出:
获取访问令牌后,首先应该使用/ oauth / userinfo端点来获取用于访问DocuSign API的用户帐户和基本URI信息。
GET / oauth / userinfo授权:Bearer eyJ0eX ... AnHDQ0bbA
失败,状态代码401未经授权,回复正文详情:
{
"error": "internal_server_error",
"reference_id": "e051ca48-....f0f"
}
我还尝试调用Login(来自AuthenticationApi - DocuSign.NetCore 1.1.0 nuget包),默认授权标头包含一个访问令牌,如下所示:
Configuration.Default.DefaultHeader.Add("Authorization", string.Format("Bearer {0}", accessToken));
AuthenticationApi authApi = new AuthenticationApi(Configuration.Default);
LoginInformation loginInfo = authApi.Login();
上面的代码只有在我使用可直接从api explorer获取的OAuth2访问令牌时才有效: https://apiexplorer.docusign.com/#/esign/restapi?categories=Authentication&tags=Authentication&operations=login&mode=basic 但是当我使用我通过以下官方文档(如上所述)获得的访问令牌时,我得到例外:
DocuSign.eSign.Client.ApiException:'调用登录时出错:{ “errorCode”:“USER_AUTHENTICATION_FAILED”, “message”:“用户名和密码中的一个或两个无效。访问令牌无效“。
似乎我错过了什么?