使用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

php 用CAS实现SSO单点登陆及登出功能

php用CAS实现SSO单点登陆及登出功能 一..CAS服务器搭建 CAS服务器端下载地址:http://downloads.jasig.org/cas/  解压cas-server-4.0....
  • haiqiao_2010
  • haiqiao_2010
  • 2014年08月04日 11:21
  • 32590

CAS实现SSO单点登录原理【强烈推荐】

1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨...
  • honey_beeqiang
  • honey_beeqiang
  • 2017年06月08日 14:07
  • 874

CAS 实现单点登录(SSO)简单实例demo(二)

本文目的很明确,并不是要逐步讲清楚每一步的操作,具体的步骤网上有很多,那么整理本文的目的只是要梳理一下自己的知识点,帮助自己加深理解。   小知识点积累:   域名地址的修改:   根据演示需求,用修...
  • hejingyuan6
  • hejingyuan6
  • 2015年04月07日 16:55
  • 13034

CAS实现单点登录SSO执行原理探究(终于明白了)

一、不落俗套的开始1、背景介绍单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS框架:CAS(Central A...
  • javaloveiphone
  • javaloveiphone
  • 2016年09月05日 13:56
  • 62550

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

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

单点登录之CAS SSO从入门到精通(第一天)

啊。。。。。。it's quite a long time。好久没更新博客了,有一年之久了,一直在忙于公司的一些项目。2014年到2015年工作太忙,对于一些经常跟我博客的读者们深深说一声抱歉。同时,...
  • lifetragedy
  • lifetragedy
  • 2015年02月14日 20:05
  • 35104

CAS SSO结合ASP

Dim casServer casServer = "localhost:8443/cas" Declare additional variables used for redirect Dim pr...
  • smildlzj
  • smildlzj
  • 2007年02月07日 22:46
  • 2282

spring + shiro + cas 实现sso单点登录

sso-shiro-cas spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次,项目源码 系统模块说明cas: 单点登录模块,这里直接拿的是cas的项目改了点样式...
  • zmken497300
  • zmken497300
  • 2016年12月21日 14:49
  • 1516

SSO之CAS+LDAP实现单点登录认证

目录: 概述 详细步骤 LDAP安装配置 CAS基础安装配置 CAS整合LDAP的配置 [一]、概述 本来主要详细是介绍CAS和LDAP整合实现单点登录的步骤...
  • nchu2020
  • nchu2020
  • 2016年03月09日 15:06
  • 3825

单点登录cas常见问题(八) - 什么时候会用到代理proxy模式?

举一个例子:有两个应用App1和App2,它们都是受Cas服务器保护的,即请求它们时都需要通过Cas 服务器的认证。现在需要在App1中通过Http请求访问App2,显然该请求将会被App2配置的Ca...
  • matthewei6
  • matthewei6
  • 2016年02月21日 19:36
  • 3439
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用cas实现sso [摘]
举报原因:
原因补充:

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