首页 > 解决方案 > 需要一些有关 REST API 的 JWT 身份验证的信息

问题描述

我需要保护我的 REST API,因为我在一个简单的 REST API 上使用了 JWT 身份验证。完成 JWT 身份验证后,我需要回答一些问题,如果有人可以在这里帮助我,那就太好了。以下是问题:

  1. 基于令牌的身份验证如何比基本身份验证更安全?
  2. 检查令牌有效性的标准是什么?
  3. 什么是生成令牌的算法是 JWT?
  4. 令牌在哪里/如何被比较/验证?

标签: restasp.net-corejwtjwt-auth

解决方案


  1. 对于问题 1:两者都不比另一个安全。事实上,两者都同样容易受到攻击(请对此进行更多研究)。jwt 的优点是您可以将授权证明存储在客户端上(是的,它由您的密钥签名是安全的)。但是在会话的情况下,它们会占用服务器空间。
  2. 对于问题2:有效性的过程取决于实施。您可以为令牌定义到期时间,并在令牌到期后使会话无效,或者您可以使用刷新令牌来发出新令牌。验证过程涉及使用您的秘密解码令牌(在将令牌发布给客户端之前已使用该密钥对其进行签名)。
  3. 对于问题3:编码中涉及的通用算法是base64,而签名中涉及的通用算法是带有密钥的HS256。其他算法也用于不同的实现。
  4. 对于问题 4:客户端应将每个受保护请求的令牌添加到服务器(说明客户端的授权)。服务器中的初始过程将是验证令牌并查找发送请求的人。所以验证过程是在服务器上完成的。

最后,您必须记住的是,jwt 是授权证明,对于身份验证,您可以使用基于用户名密码的安全性,通过该安全性您可以发出授权令牌。


推荐阅读