小白学习CAS单点登录

一、单点登录

1.什么是单点登录?

单点登录简称SSO,其定义为:在多个应用系统中,用户只需要登录一次,就可以访问所有互相信任的应用系统。

2.为什么要使用单点登录技术?

一些大型网站背后存在成百上千个子系统,用户每一次操作都可能涉及到几十个其他系统的协作,如果每个子系统都要做用户验证,不经用户会疯掉,子系统重复认证用户和授权逻辑也会疯掉。
而单点登录技术能优化用户体验,简化系统开发难度。

2.单点登录的流程是什么?

  1. 客户端访问应用系统1,如果没有登录,跳转到验证系统。
  2. 客户端输入登录信息到认证系统,认证系统到数据库中验证用户名密码是否正确,如果正确就把票据返回给客户端。
  3. 客户端再去访问其他应用系统时会带上票据,为了防止客户端使用伪造的票据,其他应用系统会拿着票据去验证系统做底层的交互验证,确认是否真实有效,如果验证的票据是真的,就不再跳转到认证系统。
    票据本质上其实是一个cookie。

二、CAS

1.什么是CAS?

CAS是解决单点登录的一种技术

2.CAS的执行步骤有哪些?

CAS的执行流程和单点登录的流程差不多:
在这里插入图片描述

  1. 访问服务:SSO 客户端发送请求访问应用系统提供的服务资源。
  2. 定向认证:SSO 客户端会重定向用户请求到 SSO 服务器。
  3. 用户认证:用户身份认证。
  4. 发放票据:SSO 服务器会产生一个随机的 Service Ticket。(该步骤容易产生误区,实际上,Ticket是由服务器发放给浏览器端,然后浏览器端带着Ticket去访问客户端。)
  5. 验证票据:SSO 服务器验证票据 Service Ticket 的合法性,验证通过后,允许客户端访问
    服务。
  6. 传输用户信息:SSO 服务器验证票据通过后,传输用户认证结果信息给客户端。
3.CAS的https认证

CAS默认使用的是HTTPS协议,如果使用该协议需要SSL安全证书,需要向特定的机构申请购买,如果项目安全要求不高,或者只是在开发测试阶段,可以通过修改配置,让CAS使用HTTP协议,从而节省成本。

4.CAS的单点退出登录

在地址栏输入 http://localhost:8080/cas/logout即可完成单点退出登录,如果想在退出登录后自动跳转到某个页面,只需要修改配置文件cas-servlet.xml文件

 <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction"
 p:servicesManager-ref="servicesManager"
 p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/>

然后在前端页面修改登出跳转的页面地址即可。

<a href="http://localhost:8080/cas/logout?service=http://www.baidu.com">退出登录</a>
4.CAS的单点退出登录
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值