什么是CAS及其相关的配置

8 篇文章 1 订阅
5 篇文章 0 订阅

CAS入门

什么是单点登录

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
我们目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。(简单来说,就是只要一次登录了某个子系统,就顺带登录了其他的子系统。其目的很简单,就是为了减少用户访问子系统的成本。)

什么是CAS

CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:

【1】开源的企业级单点登录解决方案。

【2】CAS Server 为需要独立部署的 Web 应用。

【3】CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。下图是 CAS 最基本的协议过程:

在这里插入图片描述
SSO单点登录访问流程主要有以下步骤:

  1. 访问服务:浏览器发送请求访问SSO客户端应用系统提供的服务资源。

  2. 重定向认证:SSO客户端会重定向用户请求到SSO服务器。

  3. 用户认证:用户身份认证。

  4. 发放票据:SSO服务器会产生一个随机的Service Ticket。

  5. 验证票据:SSO服务器验证票据Service Ticket的合法性,验证通过后,允许客户端访问服务。

  6. 传输用户信息:SSO服务器验证票据通过后,传输用户认证结果信息给客户端。

服务端

### cas.war

拷贝cas.war到tomcat的webapp目录下

[root@container webapps]# pwd
/usr/local/tomcat/webapps
[root@container webapps]# ll
总用量 8
drwxr-x---.  7 root root  108 1月  26 01:35 cas
drwxr-x---. 14 root root 4096 1月   8 16:05 docs
drwxr-x---.  6 root root   83 1月   8 16:05 examples
drwxr-x---.  5 root root   87 1月   8 16:05 host-manager
drwxr-x---.  5 root root  103 1月   8 16:05 manager
drwxr-x---.  3 root root 4096 1月   8 16:05 ROOT
drwxr-x---.  8 root root  117 1月   8 23:05 solr
[root@container webapps]# 

解压

启动tomcat,自动解压到cas目录

去除https认证

修改cas的WEB-INF/deployerConfigContext.xml
<!-- Required for proxy ticket mechanism. -->
<bean id="proxyAuthenticationHandler"
  class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
      p:httpClient-ref="httpClient" p:requireSecure="false" />
ticketGrantingTicketCookieGenerator.xml

修改cas的/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml

<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
		p:cookieSecure="false"
		p:cookieMaxAge="3600"
		p:cookieName="CASTGC"
		p:cookiePath="/cas" />
warnCookieGenerator.xml

修改cas的WEB-INF/spring-configuration/warnCookieGenerator.xml

<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
      p:cookieSecure="false"
      p:cookieMaxAge="3600"
      p:cookieName="CASPRIVACY"
      p:cookiePath="/cas" />

登出重定向

#### cas-servlet.xml

修改cas的WEB-INF/cas-servlet.xml

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

重启服务端

关闭tomcat,删除cas.war,重启tomcat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值