CAS 单点登录之 单点登出(SLO)

说在前面

最近刚刚接过来公司的单点登录,发现网上对单点登录的介绍还是蛮多了,不论是使用webflow的传统方式交互,还是使用流行的restful接口方式认证,但是对登出的介绍却不多,而且内容大多雷同,所有打算将单点登出在这里记录一下,也希望有不当的地方帮指出,共同进步

一、概念

CAS认证服务器支持了单点登出(Single Logout),单点登出意味着用户不仅从cas服务器退出,也从所有访问过cas客户端应用中退出,当用户发出登出请求时,CAS服务器将向session中存在的所有 service url 发送包含一个xml退出文档的请求,使TGT失效,如果不想使用CAS单点登出,可以忽略掉CAS服务器发出的登出请求。


请求路径/logout销毁客户端单点登录的session,同时销毁ticket-granting cookie(TGT),再次请求/login的时候不会再返回service tickets(ST),除非你重新登录。

下面具体说一下,当需要单点登出时,服务端和客户端分别做了什么:

服务端:服务端在向各应用系统发出单点登出请求时会忽略所有可能出现的错误,这样是为了确保在发送请求时不会被打算,这样可以使所有的cas client 应用接受到登出请求。


客户端:处理来自于CAS服务器的登出的POST请求,这些用户是通过service ticket(ST)与CAS client Applacation建立连接的。如果该应用支持单点登出,它将会返回HTTP请求成功的状态吗给CAS server。

登出的内容大概就这些,说的不够细,代码中可能会更清楚一些,如果最近不加班的话,我会把代码贴出。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
单点登录SSO)是一种认证技术,允许用户只需一次登录,就可以访问多个应用程序。Java中有多种实现SSO的框架,其中比较流行的有CAS(Central Authentication Service)、Shiro等。这里以CAS为例介绍Java中的单点登录实现。 CAS是一个开源的单点登录系统,可以提供统一的认证服务。CAS客户端和服务器之间通过HTTPS协议进行通信,CAS服务器负责认证和授权,CAS客户端负责将用户重定向到CAS服务器,并将认证成功后的票据传递给应用程序。 以下是使用CAS实现Java单点登录的基本步骤: 1. 安装和配置CAS服务器 CAS服务器可以使用官方提供的war包或自行编译部署。在CAS服务器中需要配置用户认证的方式,例如LDAP、数据库等。还需要配置CAS客户端和服务端的证书,以保证安全通信。 2. 集成CAS客户端 在Java应用程序中集成CAS客户端,可以使用CAS Client for Java或其他第三方库。在集成CAS客户端时,需要配置CAS服务器的地址和端口号,并实现CAS客户端的回调函数,以接收CAS服务器返回的票据。 3. 配置应用程序 在应用程序中需要添加CAS客户端过滤器,以拦截所有请求并进行认证。CAS客户端过滤器会将请求重定向到CAS服务器,进行用户认证。认证成功后,CAS服务器会返回一个票据,应用程序需要验证票据的合法性,并将用户信息保存在会话中。 4. 实现单点注销 单点注销是指用户在任意一个应用程序中注销后,所有已登录的应用程序都会注销。在CAS中,实现单点注销需要使用CAS Server端的Single Logout (SLO)功能。在SLO中,应用程序需要发送注销请求给CAS服务器,CAS服务器会通知所有已登录的应用程序进行注销。 以上是使用CAS实现Java单点登录的基本步骤,具体实现细节可以参考CAS官方文档或第三方库的文档。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值