二者区别主要集中在以下几个方面
目的不同
cas是用作单点登录的,oauth2是用来做授权的。
保护对象不同
cas保护的用户名密码(st可以看作用户名密码的等价物)。oauth2,保护的是code,code等价于用户名+密码+数据使用范围限制(第三方登录时,可以选择是否提供手机号,头像等信息给被授权方使用。
区别很大?并非如此
CAS和Oauth2乍一看区别很大。
譬如常见的流程图解
CAS
OAuth2
但是如果我们将CAS的流程图拍平,也修改为OAuth2的形式进行展示。那么二者的本质就体现出来了。
如下图右侧部分
二者步骤比对图
注意:右图跳转均为重定向,所以流程不大准确。比如2,实际是返回浏览器,浏览器负责跳转(url地址会变,但信息的流动方向并没变),所以也是对的。
可见:如果忽略参与者角色命名的差异。二者流程高度相似。
oauth2流程中,从开始到获取code的步骤,和CAS高度一致。
cas登录相对oauth2,在流程上的最大区别就是,通过ST或者code去认证的时候,需不需要预先商量好的密码(appId,appSecret),此外还回保存casServer下发的TGC(多保存了一个信息而已,整体信息流并未变化)。
oauth2比cas覆盖更广,基本内嵌了cas步骤,不过多了一个步骤,就是通过code获取token的步骤。
参考
左图:OAuth2认证流程:www.bubuko.com/infodetail-3429543.html
右图:统一身份认证(CAS)简单说明与设计方案:统一身份认证(CAS)简单说明与设计方案 - 程序员大本营
cas和oauth2的区别:cas和oauth2的区别 - 爬上巨人的肩膀 - 博客园
SSO单点登录和OAuth2.0的区别和理解:www.qishunwang.net/news_show_54343.aspx
CAS的单点登录和oauth2的最大区别:CAS的单点登录和oauth2的最大区别_Sky786905664的博客-CSDN博客_cas单点登录和token的区别
认证鉴权系列
http认证鉴权01基本认证和摘要认证
http认证鉴权02同域SSO
http认证鉴权03跨域SSO之CAS
http认证鉴权04跨域SSO之OAuth2入门
http认证鉴权05CAS和OAuth2区别
http认证鉴权06CSRF跨站请求伪造