面试必问:说说什么是单点登录?什么是SSO?什么是CAS?

283 篇文章 17 订阅
262 篇文章 3 订阅

目录

  • 单点登录简介
  • SSO&CAS是什么
  • 单点登录适合什么场景
  • 单点登录的三种实现方式
  • CAS的几个重要知识点
  • CAS的实现过程

单点登录简介

单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。

A.传统登录流程图:

面试官:说说什么是单点登录?什么是SSO?什么是CAS?

B.单点登录流程图:

面试官:说说什么是单点登录?什么是SSO?什么是CAS?

SSO&CAS是什么

SSO

SSO是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。

面试官:说说什么是单点登录?什么是SSO?什么是CAS?

CAS

CAS 是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(SSO的一种框架)

CAS 包括两部分:CAS Server 和 CAS Client

  • CAS Server:负责完成对用户的认证工作 , 需要独立部署。
  • CAS Client:负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。

阶段汇总集合:一年内容,200期Java面试题阶段汇总

单点登录适合什么场景

拿新浪举个单点登录的例子

面试官:说说什么是单点登录?什么是SSO?什么是CAS?

新浪微博与新浪博客是相互信任的应用系统:

  • 当用户首次访问新浪微博时,新浪微博识别到用户未登录,将请求重定向到认证中心,认证中心也识别到用户未登录,则将请求重定向到登录页。
  • 当用户已登录新浪微博访问新浪博客时,新浪博客识别到用户未登录,将请求重定向到认证中心,认证中心识别到用户已登录,返回用户的身份,此时用户无需登录即可使用新浪博客。
  • 只要多个系统使用同一套单点登录框架那么它们将是相互信任的。

单点登录的三种实现方式

1.同域SSO

没有设置独立的 SSO 服务器,因为业务后台服务器本身就足以承担 SSO 的职能。

2.同父域SSO

和同域SSO不同在于,服务器在返回 cookie 的时候,要把cookie 的 domain 设置为其父域。

3.跨域SSO(CAS)

设置专门SSO服务器,当两个产品不同域时,cookie无法共享,从而我们就需要搭建SSO服务器。

CAS的几个重要知识点

接口:

/login:登录接口,用于登录到中心服务器。
/logout:登出接口,用于从中心服务器登出。

票据

1. TGT (Ticket Grangting Ticket) :

TGT 是 CAS 为用户签发的登录票据,拥有了 TGT,用户就可以证明自己在 CAS 成功登录过。TGT 封装了 Cookie 值以及此 Cookie 值对应的用户信息。

2.TGC(Ticket Granting Cookie) :

CAS Server 生成TGT放入自己的 Session 中,而 TGC 就是这个 Session 的唯一标识(SessionId),以 Cookie 形式放到浏览器端。

3.ST(Service Ticket) :

ST 是 CAS 为用户签发的访问某一 service 的票据。用户访问 service 时,service 发现用户没有 ST,则要求用户去 CAS 获取 ST。

面试官:说说什么是单点登录?什么是SSO?什么是CAS?

CAS的实现过程

跨域SSO(CAS)实现过程

  1. 用户访问产品 a,域名是 http://www.a.cn。
  2. 由于用户没有携带在 a 服务器上登录的 a cookie,所以 a 服务器重定向到SSO 服务器的地址。
  3. 由于用户没有携带在 SSO 服务器上登录的 TGC,所以 SSO 服务器判断用户未登录,给用户显示统一登录界面。
  4. 登录成功后,SSO 服务器构建用户在 SSO 登录的 TGT,同时返回一个 http 重定向(包含 sso 服务器派发的 ST )。
  5. 重定向的 http response 中包含写 cookie。这个 cookie 代表用户在 SSO 中的登录状态,它的值是 TGC。
  6. 浏览器重定向到产品 a。此时重定向的 url 中携带着 SSO 服务器生成的 ST。根据 ST,a 服务器向 SSO 服务器发送请求,SSO 服务器验证票据的有效性。验证成功后,a 服务器知道用户已经在 sso 登录了,于是 a 服务器构建用户登录 session。
  7. 用户访问产品 b,域名是 http://www.b.cn。
  8. 由于用户没有携带在 b 服务器上登录的 b cookie,所以 b 服务器重定向到SSO 服务器,去询问用户在 SSO 中的登录状态。
  9. 浏览器重定向到 SSO服务器。由于已经向浏览器写入了携带 TGC 的cookie,所以此时 SSO 服务器可以拿到,根据 TGC 去查找 TGT,如果找到,就判断用户已经在 sso 登录过了。
  10. SSO 服务器返回一个重定向,重定向携带 ST。
  11. 浏览器带 ST 重定向到 b 服务器。
  12. b 服务器根据票据向 SSO 服务器发送请求,票据验证通过后,b 服务器知道用户已经在 sso 登录了,于是生成 b session,向浏览器写入 b cookie。

面试官:说说什么是单点登录?什么是SSO?什么是CAS?

为帮助开发者们提升面试技能、有机会入职BATJ等大厂公司,特别制作了这个专辑——这一次整体放出。

大致内容包括了: Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈! 

需要获取以上这些面试题答案以及学习资料得话麻烦一键三连之后微信扫描下图作者助手的微信:( wjn168178 )添加即可免费获取到哦

朋友扫描下方二维码免费获取:暗号:【csdn】

看完三件事❤️

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注公众号 『 java烂猪皮 』,不定期分享原创知识。
  • 同时可以期待后续文章ing🚀
  • 关注后回复【666】扫码即可获取学习资料包

作者:Java面试题精选

链接:https://mp.weixin.qq.com/s/Fcd7626X18_hwRRL_T88Og

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值