精通Nginx(24)-Nginx Plus增强功能之身份验证JWT

        使用NGINX Plus,可以使用JWT身份验证来控制对资源的访问。JWT 规范是 OpenID Connect 的重要基础,它为 OAuth 2.0 生态系统提供了单点登录令牌。JWT 本身还可以用作身份验证凭证,相比传统 API 密钥,它提供了一种更好的对基于 Web 的 API 的访问控制。API和微服务的部署者也在转向JWT标准,因为它的简单性和灵活性。使用JWT身份验证,客户端提供一个JSON Web令牌,该令牌将根据本地密钥文件或远程服务进行验证。

从session认证说起

       互联网服务基本都离不开用户认证。目前最主流的用户认证就是采用session认证模式。

session基本流程

1、客户端浏览器向服务器发送用户名和密码。

2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。

3、服务器向用户返回一个 session_id,写入用户的 Cookie。

4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。

5、服务器收到 session_id,找到前期保存的数据,由此得知用户的身份。

session认证缺点

       session认证模式最大优点就是简单成熟。但存在如下缺点:

  1. 服务端保存每个用户的session,随着认证用户的增多,服务端的开销会明显增大。
  2. session信息保存在当前服务器内存中,意味着用户下次请求还必须要请求在这台服务器上。如果是分布式应用,就相应限制了负载均衡器的能力,也就意味着限制了应用的扩展能力。
  3. 因为后续访问合法性是基于cookie中session_id来进行的,如

你可能感兴趣的:(精通Nginx,nginx,服务器,数据库)