cas认证是什么认证

cas认证是什么认证

CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。

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

特点

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 最基本的协议过程:

CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,

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

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

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

CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 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 上,由于客户端应用与 CAS Server 的通信采用 SSL,因此,需要在 A 与 B 的 JRE 之间建立信任关系。

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

其次,下载http://blogs.sun.com/andreas/entry/no_more_unable_to_find 的 InstallCert.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.xml 文件,添加 CAS Filter,如清单 10 所示:

清单 10. 添加 CAS Filter

<web-app>  ...  <filter>

<filter-name>CAS Filter</filter-name>

    <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>

<init-param>

      <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>

<param-value>https://domainA:8443/cas/login</param-value>

    </init-param>

<init-param>

<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>

      <param-value>https://domainA:8443/cas/serviceValidate</param-value>

</init-param>

    <init-param>

<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>

      <param-value>domainB:8080</param-value>

</init-param>

  </filter>

<filter-mapping>

<filter-name>CAS Filter</filter-name>

    <url-pattern>/protected-pattern/*</url-pattern>

</filter-mapping>

  ...

</web-app>

对于所有访问满足 casTest1/protected-pattern/ 路径的资源时,都要求到 CAS Server 登录,如果需要整个 casTest1 均受保护,可以将 url-pattern 指定为“/*”。

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

表格 1. CASFilter 必需的参数

表格 2. CASFilter 可选参数

传递登录用户名

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

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

清单 11. 在 Java 中通过 Session 获取登录用户名

1  // 以下两者都可以

2  session.getAttribute(CASFilter.CAS_FILTER_USER);

3  session.getAttribute("edu.yale.its.tp.cas.client.filter.user");

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

清单 12. 通过 JSTL 获取登录用户名

1   <c:out value="${sessionScope[CAS:'edu.yale.its.tp.cas.client.filter.user']}"/>

另外,CAS 提供了一个 CASFilterRequestWrapper 类,该类继承自HttpServletRequestWrapper,主要是重写了 getRemoteUser() 方法,

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

清单 13. 通过 CASFilterRequestWrapper 获取登录用户名

1  CASFilterRequestWrapper  reqWrapper=new CASFilterRequestWrapper(request);

2  out.println("The logon user:" + reqWrapper.getRemoteUser());

参考资料来源:百度百科-CAS

参考资料来源:IBM中国-使用 CAS 在 Tomcat 中实现单点登录

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-01
CSA是加拿大标准协会(Canadian Standards Association)的简称它成立于1919年,是加拿大首家专为制定工业标准的非盈利性机构。在北美市场上销售的电子、电器等产品都需要取得安全方面的认证。目前CSA是加拿大最大的安全认证机构,也是世界上最著名的安全认证机构之一 。它能对机械、建材、电器、电脑设备、办公设备、环保、医疗防火安全、运动及娱乐等方面的所有类型的产品提供安全认证。CSA已为遍布全球的数千厂商提供了认证服务,每年均有上亿个附有CSA标志的产品在北美市场销售。

1992年前,经CSA认证的产品只能在加拿大市场上销售,而产品想要进入美国市场,还必须取得美国的有关认证。现在CSA International已被美国联邦政府认可为国家认可测试实验室。这意味着能根据加拿大和美国的标准对您的产品进行测试和认证,同时保证您的认证得到联邦、洲、省和地方政府的承认。有了CSA有效的产品安全认证,想要进入世界上最为坚韧而广阔的北美市场就轻而易举了。CSA能够帮助您的产品迅速有效地打入美国和加拿大市场。 CSA International将通过消除申请认证过程中的重复手续来帮厂商节省时间和金钱。对于厂商来说, 所要做的只是提出一次申请、提供一套样品和缴交一笔费用,而所得到的安全标志却能被联邦、州、省以及从纽约到洛杉矶的当地各级的认可。CSA International将与厂商一起共同努力, 提供一个高素质且安全可靠的认证项目。在北美以至全世界,CSA人都以诚实正直和熟练技能赢得人们的信赖。

CSA International在加拿大拥有四间实验室。从1992年至1994年,它们都先后获得"美国政府劳工部职业安全及健康管理局"(OSHA)的正式认可。 根据OSHA的规则,获得这一认可后,即可作为一个国家认可测试实验室,对一系列产品按照360多个美国ANSI/UL标准进行测试和认证。经CSA International 测试和认证的产品,被确定为完全符合标准规定,可以销往美国和加拿大两国市场。

取得北美认证既省时间又省金钱,只需完成一项申请、提供一套样品、缴交一次费用。有了CSA,一步就能帮您打入两国市场。CSA这一便利的测试认证服务,排除了取得两国不同认证所需的重复测试和评估。这无疑减少了厂商在产品认证、跟踪检验和重新测试方面的成本费用,同时也节省了宝贵的时间,并省却了厂商与各种不同的认证机构打交道的麻烦,从而达到事半功倍的效果。

CSA Marking是经由向加拿大Canadian Standards Association标准协会申请登录,经由该单位认可产品之安全性及授权后,始可于产品上附加 CSA Marking标志。CSA为一个非营利性质的会员赞助机构,其所制定标准的领域包括:保健技术、石油及瓦斯管路系统、职业安全、电气产品及太阳能。CSA在加拿大除总公司外,另有大西洋地区、奎北克地区、中部平原地区、西部地区、太平洋地区等分部,在世界各地亦有附属机构及驻外代表。CSA的标准是自愿性质的。市、省及联邦政府经常在管理中使用或参照CSA的标准以取代他们去发展自己的标准。在此情况下,CSA标准便成为政府规格的参考依据。政府或其它组织及协会也许会要求遵守某种标准或指明某种特定产品必需经过验证以证明符合某种标准。这都建立在每一组织是否希望在其管辖范围内要求使用CSA标准及验证作业。

CSA Marking为目前世界上最知名的产品安全认可标志之一,即使非强制实施,很多地区之厂商都以取得此一标志作为对客户推荐其产品安全性之重要依据,很多购买者甚至会指定要求购买已附加CSA标志之产品。近来制造商被加拿大进口商或购买者指定需取得CSA标志的情况渐增。

CSA认证 - 宗旨
CSA是加拿大标准协会的英文缩写,它是加拿大最大的检验认证机构,作为一个独立的、民间的、非赢利的机构主要是为公众、政府、工商界等从事产品认证、检验及与此有关的标准开发和信息服务。它不仅根据加拿大政府有关部门的授权从事安全项目的认证,还承担性能品质方面的检测。
CSA的会员来自加拿大全国各地各阶层的7000多名自愿者和2200多个社团赞助成员组成,这些成员组成1000多个标准委员会,本着集思广益、综合众人的合理意见的原则,按着一定的程序拟制范围相当广泛的各种材料、产品、设备、服务设施的标准、要求和指南。CSA的标准是自愿采用的,但联邦、省、地方政府经常在制定法规时使用和参照CSA标准,这类标准便成为政府立法的依据,也就是说具有强制性。CSA在加拿大本土有六个实验室,总部在多伦多。在远东的日本、台湾、香港设立了三个办事处,同时,它还与日本的JMI、荷兰的KEMA、英国的BSI建立了代理认证关系。

CSA认证 - 流程
1、将初步申请表填妥,连同一切有关产品(包括全部电器部件和塑胶材料)的说明书和技术数据一并交给CSA International。
2、CSA International 将根据产品的具体情况确定认证费用,再以传真通知申请公司。
3、经申请公司确认后,将寄上正式申请表和通知书,该通知书包括下列要求:
(1)正式申请表签署后,电汇认证费用(可以人民币支付)到办事处。
(2)按通知将测试样板送到指定地点。
4、指定实验室将依时进行认证工作。
5、认证测试完毕之后,将会发给申请公司一份初步报告书(Findings Letter),详细列明如下:
(1)产品结构需如何改良才能符合标准。
(2)要用来完成认证报告的其他资料。
(3)请申请公司检阅认证记录(Certification Record)草案的内容
(4)CSA认证所需的唛头以及获取唛头的方法。
(5)产品所需的工厂测试(Factory Tests)。
6、CSA International 将申请公司对上述第五项的回答加以评估。
7、同时 CSA International将会编写一份用作产品生产参考和跟踪检验用的认证报告(Certification Report)。
8、到了这个阶段,在某种情况下,CSA International要到工厂作工厂初期评估(Initial Factory Evaluation),简称IFE。
9、最后 CSA International 便会连同认证记录(Certification Record)发一份合格证书(Certification of Compliance)授权申请公司在其产品上加上CSA的认证标志。
10、申请公司要和CSA International签订一份服务协议(Service Agreement),以表示双方同意CSA International到工厂作产品跟踪检验。申请公司每年需支付年费(Annual Fee)来维持该项协议。本回答被提问者采纳
相似回答