使用cas实现sso [摘]

转载 2006年06月08日 09:09:00
CAS (Central Authentication Service)是Yale大学的ITS开发的一套JAVA实现的开源
的SSO(single sign-on)的服务,http://www.yale.edu/tp/cas/
cas分为服务端和客户端,在服务端开启SSL,服务器下发证书安装到各个客户端中,客户端在与服务器进行通讯验证时,将检验二者的证书是否一致。
1、服务器中生成证书:keytool -genkey -alias cnc -keystore c:/mykeystore
导出证书,由客户端安装: keytool -export -alias -keystore c:/mykeystore -file c:/mycerts.cer
注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost
2、客户端配置:(注:使用client2.0.11版本稳定些,2.0.10总报异常)
将服务器下发的证书导入到JVM中
keytool -import -trustcacerts -alias cnc -keystore $JAVA_HOME/JRE/LIB/SECURITY/CACERTS -file c:/mycert.cer
(如果这样不行,则到JAVA_HOME/JRE/LIB/SECURITY/下进行)
配置web.xml:
<filter>
<filter-name>CASFilter</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://localhost:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://localhost:8443/cas/proxyValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>localhost</param-value>
</init-param>

</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

 当前CAS默认的用户名和密码判断是,只要用户名和密码相同即可。使用的类为SampleHandler,一般的是与数据库进行匹配,这样我们可以实现PasswordHandler接口, 在authenticate()方法中进行验证。可以在容器中配置数据源,使用容器提供的数据源。

  同时修改服务器下CAS的web.xml中的配置,使用自己的类。

<context-param>
<param-name>edu.yale.its.tp.cas.authHandler</param-name>
<param-value>edu.yale.its.tp.cas.auth.provider.MyDBHandler</param-value>
</context-param>

  然后重新BUILD,将类打包,替换服务器CAS/WEB-INF/LIB下原来的包。

 

 CAS只能提供SSO,对于角色,授权,则要在web.xml进行相应的配置<security-constraint>,也可以使用filter。

 

常出现的异常:“未找到可信任的证书”--主要原因为在客户端未将服务器下发的证书导入到JVM中,可以用keytool -list -alias cnc -keystore $JAVA_HOME/JRE/LIB/SECURITY/CACERTS
来查看证书是否真的导入到JVM中。

“https hostname must be www.xx.com“---主要原因为在创建keystore是,CN没设置成为服务器的域名,例如 www.auth.com.cn

【SSO】——使用CAS实现二级域名不同的网站的单点登录(二)

回顾上一篇文章中,实现了二级域名相同的网站的单点登录的效果。但是利用上篇文章的方式不能满足诸如:www.blog.com和www.news.com这样二级域名不同的网站的单点登录。 问题出在哪呢? 就...

使用 CAS 在 Tomcat 中实现单点登录(SSO)

下面内容主要为转载,在自己的尝试搭建的工程中,遇到了问题,部分内容作了调整,主要调整点: 1、用keytool生成证书是,姓名(CN)必须为客户端服务器要访问的域名,域名可以自己随意定,然后在客户端服...
  • yab2012
  • yab2012
  • 2013年06月29日 16:01
  • 1082

Liferay中使用CAS实现单点登陆(SSO)

单点登陆(SSO)的实现方式有很多种,这里所说的是用CAS实现,这也是Liferay中所采纳的方式。至于什么是CAS,单点登陆实现的原理等,这里不做解释,直接一步一步明说实现方式,好了,多一个字的费话...

架构师熟悉cas技术方案实现sso

  • 2017年07月30日 10:22
  • 344KB
  • 下载

用YALE -CAS实现SSO

  • 2008年09月17日 16:47
  • 149KB
  • 下载

SSO单点登录学习总结(3)—— 基于CAS实现单点登录实例

第一:        本demo在一个机器上实现(三个虚拟主机),来看SSO单点登录实例(我们可以布到多个机器上使用都是同一个道理的),一个服务器主机,和两个客户端虚拟主机 ...

cas配置实现sso登录

  • 2014年11月06日 00:18
  • 11.89MB
  • 下载

CAS框架SSO的实现

  • 2012年03月05日 17:11
  • 8.66MB
  • 下载

CAS实现SSO单点登录原理

yale cas可以百度一下,这是学习cas后的一点总结,以备日后使用! 安全性: 用户只须在cas录入用户名和密码,之后通过ticket绑定用户,在cas客户端与cas校验是通过ticket,并...
  • kongls08
  • kongls08
  • 2013年07月02日 10:56
  • 13564
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用cas实现sso [摘]
举报原因:
原因补充:

(最多只允许输入30个字)