您好,欢迎来到米粿美食网。
搜索
您的当前位置:首页cas认证是什么意思

cas认证是什么意思

来源:米粿美食网


CAS是Central Authent优冷革马头布优ication 来自Service的缩写,认证服务,一种开放指令协议。

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

特点

1、开源的企业级单点登录解决方来自案。

2、CAS Server 为需要部署跟的 Web 应用。

3、来自CAS Client 支持非常多的客户端(这里指单庆之交探商吸很将点登录系统中的各个 Web 应用),包括 Java, .Net, P口运垂是HP, Perl, Apache, 取界派培翻耐约苦uPortal, Ruby 等。

原理和协议

从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。混CAS Server 需要部署,主要负责对用户的认证工来自作;

CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。图 是 CAS 最基本的协议过程:

C来自AS Client 与受保护的客户端应用部署在一起,以 价据盾快水圆获Filter 方式保护受保护的资源为知督。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,

如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。

用户在第 3 来自步中输入认证信息,如果登录成功,CAS Server 随机次度产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来金适换验证,

之后系统自动重定向到 Service 来自所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),

CAS Client 在拿到 Service 和新产生的 Tick危解et 过后,在第 写草5,6 步中与 CAS Server 进行身份核实,以确保 Service Ticket 的合来自法性。

在该协议中,所有与 司都混机英比CAS 的交互均采编用 SSL 协议,确保,ST 和 TGC 来自的安全性。协议工作过程中会有 2 次重定向的过程,但是 CAS Client 与 CAS Server 之间进攻云掉星非苗条征行 Ticket 验证的过程对于用户是透明的。

另外,CAS 协议中还提供了 Proxy (代理)模式,以适应更加高级来自、复杂的应用场景,具体介绍可以参考 CAS 官方网站上的相关文档。

扩展资料

使用 CAS 在 Tomcat 中实现单点么参开飞延林登录中部署客户考立兵急新均游凯端应用

单点登录的目的是为了让多个相关联的应用使用相同的登录过程,本文在讲解过程中构造 2个简单的应用,分别以 casTest1 和 casTest2 来作为示例,它们均只有一个页面,显示欢迎信息和当前登录用户名。

这 2 个应用使用同一套登录信息,并且只有登录过的用户才能来自访问,通过本文输的配置,实现单点登录,即只需登录一次就可以访问这两个应用。

与 CAS 来自Server 建立信任关系

假设 CAS Server 单独部署在一台机器 A,而客户端应用部署在机器 B 上,由感可阳轮题完于客户端应用与 CA来自S Server 的通信采用 SSL,因此,需要在 A 与 B 的 JRE 之间建立信任关系。

首先与 A 机器一样,要生成 B 机器上的证书,配置 Tomcat 的 SSL 协议。

其次,下载http://blogs.sun.com/andreas/entry/no_more_unable_to_极候乐核重及find 的 InstallC营关止扩简将ert.java,运行“ java InstallCert compA:8443 ”命令,

并且在接下来出现的询问中输入 1。

这样,就将 A 添加到了 B 的 trust store 中。如果多个客户端应用分别部署在不同机器上,那么每个机器都需要与 CAS Server 所在机器建立信任关系。

配置 CAS Filter

准备好应用 casTest1 和 casTest2 过后,分别部署在 B 和 C 机器上,由于 casTest1 和casTest2突星何板推现翻,B 和 C 完全等同,我们以 casTest1 在 B 机器上的配置做介绍,

假设 A 和 B 的域名分别为 domainA 和 domainB。

将 cas-client-java-2来自.1.1.zip 改名笔余皮某素案没为 cas-client-java-2.1.1.jar 并拷贝到 casTest1/WEB-INF/lib目录下,修改 web.xm汽限可l 文件,添加 CAS Fil械ter,如清单 10 所示:

清单 10. 添加 CAS Filter

... CAS Filter

edu.yale.its.tp.ca众向操格兴s.client.filter.CASFilter

edu.yale.its.t来自p.cas.client.fil脚升系也渐ter.loginUrlhttps://domainA:8443/cas/login

edu.y厂倒买州春食良车ale.its.tp.cas.client.f设ilter.validateUrl

https://domainA:8443/cas/serviceValidate

edu.yale.its.tp.cas.client.filter.serverName

dom来自ainB:8080

CAS Filter

/protected-pa注来里强医ttern/*

...

对于所有访问满足 casTest1/protected-pattern/ 路径的资源时,都要求到 CAS Server 登录,如果需要整个 casTes措况修滑浓室校局t1 均受保护,可以将 url-p来自attern 指定为“/*”。

来自清单 10 可以看到沙庆,我们可以为 CASFilter 指定一些参数,并且有些是必须的,表格 1 和表格 2 中分别是必需和可选的参数:

表格 1. CASFilter 必需的参数

表格 2来自. CASFilter 可选参数

传递登录用户名

CAS 在登录成功过后,会给浏览器回传 Cookie,设置新的到的 留环困务现Service Tic岩问湖注ket。但客户端应用拥有各自的 Session,我们要怎么在各个应用中获取当前登录用户的用户名呢?

CAS Client 的 Filter 已经做好了处理来自,在登录成功后,就可以直接从 Session 的属性中获取,染而线能如清单 11 所示:

清鸡单 11. 在 Java 中通过 Sessi酸维on 获取登录用户名

1 洋// 以下两者都可以

2 来自session.getAttribute(CASFilter.CAS_FILTER_USER);

3 session.getAttribute("edu.yale.its.tp.c来自as.client.filter.user");

在 JSTL 中获取用户名的方法如清单 12 所示:

清单 12. 集们认读通过 JSTL 获取登录用户名

1

另外,CAS 提供了一个 CASF来自ilterRequestWrapper 类,该类继承自HttpServletRequest移Wrapper,主要是重写了 getRemoteUser() 方法,

只要在前面配置 CASFilter 的来自时候为其设置“ edu.yale.its.tp.cas.client.filter.wrapRequest ”参数为 true,就可以通过 getRemoteUser() 方法来获取登录用户名,具体方法如清单 13 所示:

清单 13来自. 通过 CASFilterReque孩关室哪婷罗stWrapper 获取登录用户名

1 CASFilterRequestWrapper r来自eqWrapper白=new CAS值旧斤探FilterRequestWrapper(request);2 out.println地随永提("The logon user:" + reqWrapper.getRemoteUser());

参考资料来源:

参考来自资料来源:

Copyright © 2019- imig.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务