【问题标题】:How to Validate JWT Token issued by Thinktecture identity server?如何验证 Thinktecture 身份服务器颁发的 JWT Token?
【发布时间】:2014-06-11 02:03:51
【问题描述】:

当OAuth客户端从身份服务器获取JWT令牌时,有什么方法可以吗?

我担心当用户获得 access_token 并尝试使用 base64 对其进行解码时,用户可以修改令牌字符串。

我的情况是: 我有两个门户网站 A 和 B,它们都集成了 Thinktecture 身份服务器。 用户 A 只能使用“role:portalA”声明访问门户 A,但无法访问门户 B 如果用户 A 尝试登录门户 A 并获取 access_token,则用户 A 将“role:portalB”添加到 access_token 中,然后再次使用 base64 进行编码。 然后修改后的access_token传递给Portal B,我担心用户A可以访问Portal B。所以我必须再次检查access_token到身份服务器。这是验证此 access_token 的任何方法吗?还是不会出现这种情况?

【问题讨论】:

    标签: jwt thinktecture-ident-server


    【解决方案1】:

    我相信 Thinktecture Identity Server 在 (baseurl + "/core/accessTokenValidation?token=" + access_token) 有一个端点。

    示例:

    GET request to: http://localhost:3333/core/accessTokenValidation?token=aEdhoi23hlv2khdf2lkhfv4pv....
    

    如果 access_token 有效,则应返回 200 响应,否则将返回 JSON 错误消息 {"error":"invalid_token"} 和 4XX 响应。

    您应该调用此服务来验证令牌,然后缓存响应。

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

    【讨论】:

      【解决方案2】:

      Thinktecture IdentityServer3 有不同的端点。

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

      例子:

      GET /connect/accesstokenvalidation?token=<token>
      

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

      【讨论】:

        猜你喜欢
        • 2014-05-23
        • 2019-05-02
        • 1970-01-01
        • 1970-01-01
        • 2014-05-11
        • 1970-01-01
        • 2021-04-16
        • 1970-01-01
        • 2021-08-13
        相关资源
        最近更新 更多