Launcher-csharp演示中的JWT流

问题描述

我现在正在玩DocuSign GitHub上的launcher-csharp演示。它与授权代码授予流程一起正常工作。但是,当我尝试运行JWT流时,此调用将引发异常:

        public void UpdateUserFromJWT()
        {
            this._authToken = _apiclient.RequestJWTUserToken(
                this._configuration["DocuSignJWT:ClientId"],this._configuration["DocuSignJWT:ImpersonatedUserId"],this._configuration["DocuSignJWT:AuthServer"],DSHelper.ReadFileContent(DSHelper.PrepareFullPrivateKeyFilePath(this._configuration["DocuSignJWT:PrivateKeyFile"])),1);

异常表明服务器返回了“需要同意” 错误。 “如何通过JWT Grant获得访问令牌”文档部分中的此错误描述说,这意味着用户未表示同意,这不是我的情况,或者URI配置有问题。我仔细检查了appsettings.Development.json中的DocuSignJWT部分。

  • “ ClientId” 是从此应用程序设置的“集成密钥”字段中复制的。与授权代码授予流程所使用的相同。
  • “ ImpersonatedUserId” 是从“用户ID”字段中复制的。用户编辑表单的“ API用户名”字段中的值相同。在授权代码授予流程中运行时,在用户“ sub”字段中返回了相同的值。
  • “ AuthServer” :“ account-d.docusign.com”。
  • “ PrivateKeyFile” 是用于存储该应用程序私钥的文件名,其中“ ----- BEGIN RSA PRIVATE KEY -----”和“ ---- -END RSA PRIVATE KEY -----“。

很明显我做错了,但是怎么办?

解决方法

您必须先获得JWT的同意。

https://account-d.docusign.com/oauth/auth?
response_type=code
&scope=signature%20impersonation
&client_id=your integration key
&redirect_uri=your **encoded** callback url from the ikey settings 

例如“ https%3A%2F%2Flocalhost%3A9090%2Fds%2Fcallback”。