一,背景分析。
传统的登录系统中,每个站点都实现了自己的专用登录模块,
各站点的登录状态相互不认可,各站点需要逐一手工登录。
例如:用户登录京东超市后,想进入京东家电,需要重新登录。
这样的系统,我们又称之为多点登陆系统,应用起来相对繁琐,
由此单点登陆系统诞生。
============================================================
二,单点登陆系统。
即多个站点共用一台认证授权服务器,用户在其中任何一个站点
登录后,可以免登录访问其他所有站点。
三,单点登陆系统技术方案。
SpringSecurity---安全认证。
JWT-------用来创建令牌的规范。
Oauth2----支持三方认证协议。
==============================================================
四,Spring Security
Spring Security 是一个企业级安全框架,由spring官方推出,它实现对软件系统中的
认证,授权,加密等功能,底层构建了大量的过滤器。
==============================================================
五,JWT
JWT是一种令牌规范,通过对JSON数据采用一定的编码,加密进行令牌设计。
JWT有三部分构成,分别为Header(头部),Payload(负载),Signature(签名)。
1.Header 部分是一个 JSON 对象,描述 JWT 的元数据,
alg属性表示签名的算法(algorithm),默认是 HMAC SHA256(简写HS256);
typ属性表示这个令牌(token)的类型(type),JWT 令牌统一写为JWT。
最后,将这个 JSON 对象使用 Base64URL 算法(详见后文)转成字符串。
2.Payload 部分也是一个 JSON 对象,用来存放实际需要传递的数据。
3.Signature 部分是对前两部分的签名,其目的是防止数据被篡改。
首先,需要指定一个密钥(secret)。这个密钥只有服务器才知道,不能泄露给用户。
然后,使用 Header 里面指定的签名算法(默认是 HMAC SHA256)产生签名,
算出签名以后,把 Header、Payload、Signature 三个部分拼成一个字符串,
每个部分之间用"点"(.)分隔,就可以返回给用户。
=================================================================
六,oauth2定义了一种认证授权协议,一种规范。
此规范中定义了四种类型的角色:
1)资源有者(User)
2)认证授权服务器(jt-auth)
3)资源服务器(jt-resource)
4)客户端应用(jt-ui)
同时,在这种协议中规定了认证授权时的几种模式:
1)密码模式 (基于用户名和密码进行认证)
2)授权码模式(就是我们说的三方认证:QQ,微信,微博等.)
==================================================================