认证

认证


1. 基础概念

1.1 认证

认证是为了保护系统的隐私数据和资源,用户的身份合法方可访问系统的资源。


认证:用户认证就是判断一个用户的身份身份合法的过程。用户去访问系统资源时,系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝访问。


常见认证方式:


用户名密码

二维码登录

手机验证码

指纹认证

1.2 会话

认证授权方案的产生根本原因应用层(WEB)通信基于HTTP协议,而HTTP协议是无状态的,我们无法通过HTTP访问确认用户是否登录。

用户登录后,为了避免用户每次操作都进行认证,需要将用户信息保存。

会话就是系统为了保持用户的登录状态提供的机制,常见的有基于Session-Cookie方式,基于token方式。


Session-Cookie

基于Session-Cookie方式自行查阅相关文档。


缺点:服务器内存需要存储session信息,天然不支持分布式。


token

token是就是令牌的意思。用户认证成功后,服务器端生成一个token发给客户端,客户端可以放到cookie或者localStorage等存储介质中。

每次请求时携带token,服务器通过接收校验该token来确认用户身份。


1.3 jwt

jwt(json web token)是token的一种实现方式。本质也是加密的字符串。jwt相关知识可自行参考相关文档。


Springboot + JWT-Token 生成与解析

1.4 授权

认证是为了保证用户身份的合法性,授权则是为了更细粒度的对隐私数据进行划分,授权不同的用户访问不同的资源。


授权:授权是用户认证通过后,根据用户的权限来控制用户访问资源的过程。


2. 授权的数据模型

授权可简单理解为who对what进行how操作。


who:即主体(Subject),主体一般值用户。

what:即资源(Resource),如菜单,页面,按钮代码方法、系统商品信息等。

系统菜单、页面、按钮、代码方法都属于系统功能资源,对于web系统每个功能资源通常对应一个URL;系统商品信息、订单信息、人员信息等属于实体资源(数据资源)。

实体资源有资源类型和资源实例组成,比如商品信息为资源类型,编号为001的商品为资源实例。

how:权限/许可(Permission),规定了用户对资源的操作许可,权限脱离资源没有意义,如用户添加权限、用户修改权限等。

通过权限可知用户对那些资源都有那些操作许可。



关键词 :  认证,authentication