【问题标题】:JSON web token - how to identify user?JSON Web 令牌 - 如何识别用户?
【发布时间】:2018-12-27 09:18:58
【问题描述】:

基本上,我使用 JWT 身份验证,在成功登录后,我将返回 JWT 令牌、到期时间和用户的 GUID(我应该吗?)

让我们举个例子:

我有一个端点,它返回需要经过身份验证的用户特定数据

那么,我该怎么做呢?

让我们这么说

user1 生成了他的 jwt:“a.b.c”

user2 生成了他的 jwt:“c.b.a”

如何确保 user1 不会使用他的 JWT 访问 user 2 的数据?

我考虑过(正如我之前提到的)使用 JWT 令牌发送用户的 GUID 并将其用作识别该用户的一种方式,但如果有人有其他人的 GUID,那么他将能够操纵他的数据,这不是不错。

提前致谢。

【问题讨论】:

  • 你好,我看到你是新来的。因此欢迎来到 Stack Overflow。请通过this tour 了解该社区支持的问题的性质。至于你问的问题,看起来too-broad。尝试一下,然后发布您的代码。那么也许我们可以帮忙..
  • 这就是 JWT 的本质。如果有人设法劫持了您的 JWT,那么他们基本上可以假装是您。您可以采取一些措施来帮助消除这种情况,例如使用安全连接以使其不被拦截,并且不使用寿命很长的 JWT
  • How can I ensure that user1 will not use his JWT to access user's 2 data? jwt 有效负载通常具有sub 声明,这是令牌颁发给谁的标识符。将userid 存储在其中,然后检查两者。那么 jwt token owner 只能访问自己匹配的 userid 数据。
  • 如果 user1 可以使用 JWT,他也可以伪装成 user1,因此通常您的客户端和服务器之间的通信必须加密,以便数据只能由预期用户读取,因此在这种情况下,不应将 user2 的 JWT 发送给 user1,并且在发送令牌时,必须对通信通道进行加密这是一篇关于 oauth2.0 工作流程的好文章requests-oauthlib.readthedocs.io/en/latest/oauth2_workflow.html
  • 要添加到 Mardoxx 点,如果令牌已签名,您可以读取令牌的内容,但没有私钥您无法更改它 - 签名可防止篡改。

标签: c# asp.net-core jwt backend asp.net-core-webapi


【解决方案1】:

如果 user1 和 user2 通过单独的 ip 发送请求,您可以通过连接用户名和客户端 ip 来生成 jwt 令牌,并在验证令牌时检查从验证请求发送的请求用户名 + ip 和用户名 + ip 来自解密令牌,否则使用数据过滤机制

【讨论】:

    【解决方案2】:

    它回答了我的问题:

    @Mardoxx

    如何确保 user1 不会使用他的 JWT 访问 user 2 的数据? jwt 有效负载通常具有 sub 声明,它是令牌颁发给谁的标识符。将用户 ID 存储在其中,然后检查两者。那么 jwt token owner 只能访问自己匹配的 userid 数据。

    如果 user1 和 user2 通过单独的 ip 发送请求,您可以通过连接用户名和客户端 ip 来生成 jwt 令牌,并在验证令牌时检查从验证请求发送的请求用户名 + ip 和用户名 + ip 来自解密令牌,否则使用数据过滤机制

    https://stackoverflow.com/a/45315377/10074551

    您应该能够在您的控制器中检索这样的声明

    var identity = HttpContext.User.Identity as ClaimsIdentity;
    if (identity != null)
    {
        IEnumerable<Claim> claims = identity.Claims; 
        // or
        identity.FindFirst("ClaimName").Value;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-08
      • 1970-01-01
      • 2019-01-24
      • 2016-04-06
      • 2018-07-24
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      相关资源
      最近更新 更多