相信关注过CAS和OAuth2.0协议的朋友们,都有大概的了解,简单描述两个协议的主要区别,网上的伙伴们通常会说:
CAS单点登录时,保护客户端资源
OAuth2.0是保护服务端资源安全
而对于单点登录场景来说,无论是保护客户端资源,还是保护服务端资源,最终都是完成认证中心的认证,使访问的资源获取到登录的用户信息,从这个角度来看,两个协议并没有什么区别。
那么在怎样去理解两种的区别呢?先来看一下两个协议:
CAS协议
说到CAS协议,必须亮出下图:
1、访问服务:SSO 客户端发送请求访问应用系统提供的服务资源。
2、定向认证:SSO 客户端会重定向用户请求到 SSO 服务器。
3、用户认证:用户身份认证。
4、发放票据:SSO 服务器会产生一个随机的 Service Ticket 。
5、验证票据:SSO 服务器验证票据 Service Ticket 的合法性,验证通过后,允许客户端访问服务。
6、传输用户信息:SSO 服务器验证票据通过后,传输用户认证结果信息给客户端。
交互过程中1、2、3、4步骤是通过客户端网传输的,存在安全隐患,可以看出其中3和4步携带有敏感数据,3用户认证是最基本的场景由CAS Server保障认证安全,4重定向到CAS Client的过程携带有认证核心票据Service Ticke