对单点登录与Oauth2协议的了解
单点登录
1、单点登录简介:
(1)用于分布式系统,一次登录即可访问多个系统。
(2)分布式系统要实现单点登录,通常将认证系统独立抽取出来。
(3)将用户的信息存储在单独的存储介质(如:redis、mysql.考虑性能要求,通常存储在redis中).
2、单点登录的流程:
(1)认证系统为一个单独的系统。负责用户的认证。
(2)用户请求学习系统,学习系统请求认证系统,认证用户是否登录。
(3)认证系统从redis中查询用户的信息是否存在,如果存在,认为用户是合法;如果不存在,就要求用户进行登录,用户登录之后,就会将信息存入到redis中。
(4)同时认证系统会给用户办法一个令牌(即一个字符串),用户拿着令牌就可以访问其他系统。
3、java中实现单点登录的框架:
Apache Shiro,
CAS,
Spring Security CAS.
Oauth2认证协议
1、Oauth2协议的来由:
(1)Oauth协议符合第三方认证技术的标准。
(2)Oauth协议为用户资源的授权提供了一个安全的、开放的和简易的标准。
(3)Oauth协议的使用是第二版本,所以称为Oauth2协议。
2、Oauth2协议的认证流程:
(1)客户端请求第三方授权;
(2)资源拥有者同意给客户端授权;
(3)客户端拿到授权码,请求认证服务器申请令牌;
(4)认证服务器向客户端响应令牌;
(5)客户端请求资源服务器的资源;
(6)资源服务器返回受保护的资源。