具体考察了一下cas方面的资料,感觉不太适合我们的平台.利用cas实现单点登陆的原理是把认证过程统一了,交给一个认证机构(cas服务器)去处理,所有应用都到这里认证,认证方式分web应用和非web应用,web认证是基于浏览器的,非web应用是基于代理的,非web应用可以通过cas的代理认证实现.以下是我对我们平台部署cas服务的三种方式的评估:
1,我们的平台要用cas统一认证,那么cas服务器就要部署到我们的中心端,而客户端就要从中心端登陆,于我们的需求不符.
2,如果我们把cas服务器部署到客户端(中心端不到这里认证,只是把这里作为acegi认证的一个provider),然后客户端给中心端提供代理认证,那么我们中心端必须明确知道客户端的网路地址和其它一些情况,并且客户端和中心端是多对一的关系,且不说中心端无法到定位客户端,即使可以,中心端一个一个验证认证信息,效能可想而知.
3,在客户端和中心端都部署cas服务器,但问题在于怎么把客户端的认证信息暴露给中心端??
以上三种方式,我都还没找到解决方法,现在考虑的是怎么扩展一下acegi,自定义一下认证方式,然后我把用户一些标识传到中心端,让用户在中心端自动登陆一下,然后把认证信息保存到acegi的认证对象里,先在分析acegi源码.看看怎么实现
以下是我们的需求:上次发帖好像响应者不多,本人水平有限,希望大伙能给点意见
概述:平台分客户端和中心端(上次发帖说分客户端和服务端,为避免大伙把服务端当作插上服务器,就改名为中心端),客户端只是实现了中心端的一部分功能,客户端的信息都会同步到中心端,
要求:
1,在客户端登陆以后不需要在中心端再次登陆就能操作中心平台的服务
2,在客户端和中心端连接失败时要不影响客户端操作.
<o:p>
|