快捷搜索: 王者荣耀 脱发

单点登录 Oauth2认证 详解

1.单点登录的特点是:

1、认证系统为独立的系统。 
2、各子系统通过Http或其它协议与认证系统通信,完成用户认证。 
3、用户身份信息存储在Redis集群。

Java中有很多用户认证的框架都可以实现单点登录:

1、Apache Shiro. 
 2、CAS 
 3、Spring security CAS    

2. Oauth2认证

OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本。

2.1 Oauth2认证流程

1.客户端请求第三方授权

2.资源拥有者同意给客户端授权

3.客户端获取到授权码,请求认证服务器申请令牌 此过程用户看不到,客户端应用程序请求认证服务器,请求携带授权码。

4.认证服务器向客户端响应令牌 认证服务器验证了客户端请求的授权码,如果合法则给客户端颁发令牌,令牌是客户端访问资源的通行证。 此交互过程用户看不到,当客户端拿到令牌后,用户在优就业官网看到已经登录成功。

6.资源服务器返回受保护资源 资源服务器校验令牌的合法性,如果合法则向用户响应资源信息内容。 注意:资源服务器和认证服务器可以是一个服务也可以分开的服务,如果是分开的服务资源服务器通常要请求认证 服务器来校验令牌的合法性。

Oauth2.0认证流程如下: 引自Oauth2.0协议rfc6749

Oauth2包括以下角色:

2、资源拥有者 通常为用户,也可以是应用程序,即该资源的拥有者。

3、授权服务器(也称认证服务器) 用来对资源拥有的身份进行认证、对访问资源进行授权。客户端要想访问资源需要通过认证服务器由资源拥有者授 权后方可访问。

4、资源服务器 存储资源的服务器,比如,东易买商城用户管理服务器存储了东易买的用户信息等。客户端最终访问资源服务器获取资源信息。

经验分享 程序员 微信小程序 职场和发展