我试图通过每个用户的命名凭据生成JSON Web令牌(JWT)。我想使用这个命名的信用用于身份验证目的。在salesforce提供JSON web令牌后使用它们,作为交换,我的本地认证服务器将提供令牌。
下面是我在创建每个用户的命名凭据时添加的设置。
标签: TestJWTCredential
<名称/strong>: TestJWTCredential
:→外部端点& lt; -
认证部分
: MulesoftJWT
身份类型: Per User
认证协议: JWT令牌交换
令牌端点Url: http://localhost: 8091/api/供应商/标记
: refresh_token full
发行人:→用户名& lt; -
Per User Subject: $ userId
观众: http://localhost: 8091/api/供应商/标记
令牌对有效: 1 Hours
JWT签名证书: MulesoftJWT
Ref:——https://help.salesforce.com/articleView?err=1& id = sf.named_credentials_about.htm&类型= 5 # language-combobox
,http://localhost: 8091/api/供应商/标记">这是我的授权服务器的url,它是部署在我本地的一个mule应用程序。
同样,当从开发控制台调用这个命名的creds时,它会给出这个错误系统。CalloutException:无法完成JWT令牌交换。以下是APEX代码
HttpRequest req = new HttpRequest();
req.setEndpoint('callout:TestJWTCredential/services/oauth2/userinfo');
req.setMethod('GET');
req.setHeader('Authorization', 'Bearer'+ UserInfo.getSessionId());
Http http = new Http();
System.debug('REQUEST :::: ' + req);
HTTPResponse resp = http.send(req);
System.debug('RESPONSE :::: ' + resp.getBody());
有谁能告诉我怎么做吗?
我刚刚看了一些Salesforce关于这个主题的视频。深入了解Salesforce Connected App -第3部分视频中,在23:56处,Salesforce演示者不得不删除"作用域"。让它工作的价值。https://youtu.be/wN8d4vwSA-E?t=1436