当OAuth客户端从身份服务器获取JWT令牌是否正常时,有没有办法?
我担心当用户获得access_token并尝试使用base64对其进行解码时,用户可以修改令牌字符串。
我的情景是: 我有两个门户网站A和B,它们都集成了Thinktecture身份服务器。 用户A可以使用"角色访问门户网站A:portalA"声称但无法访问门户网站B. 如果用户A尝试登录门户网站A并获取access_token,则用户A添加"角色:portalB"进入access_token然后再次使用base64进行编码。 然后修改后的access_token传递给Portal B,我担心用户A可以访问门户B.所以我必须再次检查access_token到Identity服务器。是否有任何方法来验证此access_token?或者这种情况不会发生?
答案 0 :(得分:4)
我相信Thinktecture Identity Server的端点为(baseurl +" / core / accessTokenValidation?token =" + access_token)。
示例:
GET request to: http://localhost:3333/core/accessTokenValidation?token=aEdhoi23hlv2khdf2lkhfv4pv....
如果access_token有效,则应返回200响应,否则它将返回JSON错误消息{"错误":" invalid_token"}和4XX响应
您应该连接对此服务的调用以验证令牌,然后缓存响应。
答案 1 :(得分:4)
Thinktecture IdentityServer3具有不同的端点。
官方文档中的更多详细信息: https://identityserver.github.io/Documentation/docs/endpoints/accessTokenValidation.html
示例:
GET /connect/accesstokenvalidation?token=<token>
成功的响应将返回状态代码200以及令牌的相关声明。 不成功的响应将返回400并显示错误消息。