项目中用到CAS 和 Oauth2.0 ,这边整理了2个技术的同异,供参考。
- CAS 是支持单点登录(SSO)的技术框架
- Oauth2.0 是授权协议
CAS适合场景
多个应用系统,只需要登录一次就可以同样访问其他系统
如图:
CAS它提供了CAS Server 和CAS Client , CAS Server 独立部署, CAS Client 是一个jar 包,导入到项目中,配合 CAS Server 实现多个项目的SSO。 实现项目之间的SSO技术上有很强的关联性, 各系统的用户名也应该在CAS Server 认证中心存在 ,访问其中某一个项目时,重定向到统一登录页面,登录完成后,带上凭证信息重定向该项目,该项目通过cas client 拦截验证cas server 提供的认证信息,完成当前项目的登录 , CAS比较适合技术体系差不多的公司内部项目做单点登录技术方案。
oauth2.0场景
希望能给外部系统颁发token,外部系统通过token访问资源服务器的接口
如图:
我想用知乎发文章,但不想再次注册,这个时候可以选择通过QQ登录,这个过程就使用到了Oauth2.0授权。
流程:
当我点击使用QQ登录时,相当于我告诉知乎,你可以使用我在QQ的用户信息作为我在知乎的登录信息,
知乎这个时候去QQ要我的用户信息, QQ说好,没问题,但是需要我输入用户密码授权知乎获取我在QQ的用户信息,
这个时候QQ展现一个登录框给我,我输入用户名密码验证成功,代表允许了知乎从QQ那里获取我的用户信息, 知乎拿到用户信息,给我自动登录了知乎,这个时候我在没有注册知乎的情况下就可以登录使用知乎了。
这里重在说明Oauth2.0 和CAS 认证流程,技术实现会比较复杂,下次分享
本文暂时没有评论,来添加一个吧(●'◡'●)