单点登录协议有哪些?CAS、OAuth、OIDC、SAML有何异同?

单点登录实现中,系统之间的协议对接是非常重要的一环,一般涉及的标准协议类型有 CAS、OAuth、OpenID Connect、SAML,本文将对四种主流 SSO协议进行概述性的介绍,并比较其异同,读者亦可按图索骥、厘清关键概念。

 

一、认证与授权的区别

在介绍具体协议之前,有必要先说明“认证(Authentication)”和“授权(Authorization)”的区别。

  • 认证(Authentication)即确认该用户的身份是他所声明的那个人;

  • 授权(Authorization)即根据用户身份授予他访问特定资源的权限。

也就是说,当用户登录应用系统时,系统需要先认证用户身份,然后依据用户身份再进行授权。认证与授权需要联合使用,才能让用户真正登入并使用应用系统。

 

二、CAS

Central Authentication Service简称CAS,是一种常见的B/S架构的SSO协议。和其他任何SSO协议一样,用户仅需登陆一次,访问其他应用则无需再次登陆。

顾名思义,CAS是一种仅用于Authentication的服务,它和OAuth/OIDC协议不一样,并不能作为一种Authorization的协议。

当前CAS协议包括CAS 1.0、CAS2.0、CAS3.0版本,这三个版本的认证流程基本类似。

CAS的认证流程通过包括几部分参与者:

  • Client: 通常为使用浏览器的用户

  • CAS Client: 实现CAS协议的Web应用

  • CAS Server: 作为统一认证的CAS服务器

认证流程大致为: 

  1. Client(终端用户)在浏览器里请求访问Web应用example;

  2. 浏览器发起一个GET请求访问example应用的主页https://www.example.com;

  3. 应用example发现当前用户处于未登陆状态,Redirect用户至CAS服务器进行认证;

  4. 用户请求CAS服务器;

  5. CAS发现当前用户在CAS服务器中处于未登陆状态, 要求用户必须得先登陆;

  6. CAS服务器返回登陆页面至浏览器;

  7. 用户在登陆界面中输入用户名和密码(或者其他认证方式);

  8. 用户把用户名和密码通过POST,提交至CAS服务器;

  9. CAS对用户身份进行认证,若用户名和密码正确,则生成SSO会话,  且把会话ID通过Cookie的方式返回至用户的浏览器端(此时,用户在CAS服务端处于登陆状态);

  10. CAS服务器同时也会把用户重定向至CAS Client, 且同时发送一个Service Ticket;

  11. CAS Client的服务端收到这个Service Ticket以后,请求CAS Server对该ticket进行校验;

  12. CAS Server把校验结果返回给CAS Client, 校验结果包括该ticket是否合法,以及该ticket中包含对用户信息;

  13. 至此,CAS Client根据Service Ticket得知当前登陆用户的身份,CAS Client处于登陆态。

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值