CAS(单点登陆)---总结一
单点登录(sso)是指基于用户/会话认证的一个过程,用户只需一次性提供凭证(仅一次登录),就可以访问多个应用。??
?
?一, 最近一段时间公司进行系统整合,公司决定采用yale cas 单点登录进行整合,在这里对在项目整合中遇到的问题进行总结:
??1,到官方上下载CAS2.x服务器改名为ssoAuth
?
??2,以ssoAuth/login为所有系统的登录页,对每个系统进行配置,配置如下:
可查看这篇文章:http://129-cat-163-com.iteye.com/blog/477506
?
3,在登录之后,遇到一个问题,就是重新刷新又回到登录页(在登录之后会产生一个CASTGC的cookie)
解决:
更改ssoAuth/WebContent/spring-configuration/ticketGrantingTicketCookieGenerator.xml中的 p:cookiePath="/ssoAuth"?和warnCookieGenerator.xml中的p:cookiePath="/ssoAuth" 因为更改了登录名之后,cookie path设置的值没有相应的改变..在验证时获取不到castgc的cookie
?
??4,不跳转到ssoAuth/login下每一个系统都自定义登录页,
可查看这这里面的三篇文章:http://hi.baidu.com/fallenlord/blog/item/ecaa5f263e52cf0b908f9d21.html
?
??5,代理问题
代理可解决的问题:
当一个系统1要去取另一个系统2的数据时,两台不在同一台电脑上,而这两个又被同时都加到单点登录中,这时当你1系统已经登录要去取2系统的数据时,而2系统还没有登录,这时取不到数据??
这时候代理就派上用场.代理票据的产生
http://www.blogjava.net/security/archive/2006/04/26/SSO_CASProxy.html
解决:
可先查看这篇文章http://fallenlord.blogbus.com/logs/57175888.html
再以下详解:
在ssoProxyClient(代理端) ssoProxyBackClient(被代理端) ssoAuth上都要进行配置,
ssoAuth:在整合时发现一个问题,查找源代码,客户端配置正确而不返回代理票据
deployerConfigContext.xml下配置
?
? 代理端与被代理端都要进行配置(配置较长,不一一介绍)有需要留下联系地址,我发过去...
?
7,代理性能问题解决:
如以上问题所述,系统2变成了被代理的系统,代理系统1每次要到被代理服务器去取一次票据之后,传到系统2去,这时系统2也要到服务器去取下验证的代理票据,进行比对,,
这样一来,每次都要与服务器通信两次,,,性能耗费很大,在不考虑安全性的前提下,可以对双方进行保存一个票据,这样一来,不管访问多少次,只在服务器通信了两次.
我对以上的代理与被代理系统进行了扩展,,一样)有需要留下联系地址,我发过去...
?
8,客户端可以返回更多的用户数据,这个有两处要进行配置
以下提供一个较完整的deployerConfigContext.xml的配置,一般有用到都在这里面
<?xml version="1.0" encoding="UTF-8"?>
--->看下一章节
?
?
来自:http://www.iteye.com/topic/625961
1 楼 jfeimao 2012-07-12 credentialsToPrincipalResolvers