事实上,这种比较可能是不足够准确地。
SSO是一种设计思想。
OAuth是一种认证方式
CAS只是SSO的一种实现方式。oauth也可以实现SSO
1、OAuth2:Client端(第三方服务)是资源消费端,通过用户授权,允许用户不提供自己账号密码的情况下,使Client端有权访问用户资源(如个人信息、通讯录等);(如QQ授权页面,通过授权,使第三方服务有权访问QQ用户个人资料等)
2、CAS:Client端(应用系统)是资源存储端,用户是资源消费者(应用使用者);CAS使各Client端(应用系统)使用统一的用户账号密码信息进行身份认证;
3、需要统一的账号密码进行身份认证,用CAS;需要授权第三方服务使用我方资源,使用OAuth2;
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访问资源服务器的接口