如何验证Thinktecture身份服务器发出的JWT令牌?

时间:2014-04-25 11:27:19

标签: jwt thinktecture-ident-server

当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?或者这种情况不会发生?

2 个答案:

答案 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响应

您应该连接对此服务的调用以验证令牌,然后缓存响应。

查看源代码:https://github.com/IdentityServer/IdentityServer3/blob/master/source/Core/Endpoints/Connect/AccessTokenValidationController.cs

答案 1 :(得分:4)

Thinktecture IdentityServer3具有不同的端点。

官方文档中的更多详细信息: https://identityserver.github.io/Documentation/docs/endpoints/accessTokenValidation.html

示例:

GET /connect/accesstokenvalidation?token=<token>

成功的响应将返回状态代码200以及令牌的相关声明。 不成功的响应将返回400并显示错误消息。