原创作者: huaronghu   阅读:5862次   评论:2条   更新时间:2011-05-26    
最近有个项目使用了开源的CAS做为SSO,看了一些资料之后觉得它某些方面还是相当优秀的。

它的实现原理是这样的:
假设用户在访问http://www.yale.edu/tp之前需要验证身份,我们把用户从http://www.yale.edu/tp重定向到下面的Login URL:
       https://secure.its.yale.edu/cas/servlet/login?service=http://www.yale.edu/tp/authenticate.jsp
JSP页面authenticate.jsp是网站资源的一部分。一旦完成了上面描述的初步身份验证,CAS用下面的URL重定向用户浏览器到这个JSP页面:
       http://www.yale.edu/tp/authenticate.jsp?ticket=opaque-ticket-string
       一旦收到请求,authenticate.jsp页面需要校验这个收到的ticket,它把tickect传送Validation URL(如http://secure.its.yale.edu/cas/servlet/validate)。authenticate.jsp页面需要使用JSSE向Validation URL发送请求并读取数据。当生成这个请求时,authenticate.jsp页面还需要把先前的service ID用service的参数名传送给Validation URL,例子如下:
       http://secure.its.yale.edu/cas/servlet/validate?ticket=T&service=S
       当CAS从Validation URL收到这个ticket,它检查自己内部数据库,看看是否保存过这个ticket。如果数据库有这个ticket,则进一步检查数据库中和ticket关联的service是否和刚收到的service相匹配。如果匹配,则向请求验证身份的应用URL返回NetID;否则拒绝验证这个请求。

在当在线用户达到几千万级时,这样的反反复复的redirect(就是无数次的http请求与应答)还有它的内部数据库,是否存在严重的性能问题??

btw:CAS支持在集群的环境下吗?

请谁有这方面的经验介绍一下,谢谢。
评论 共 2 条 请登录后发表评论
2 楼 denger 2011-08-15 10:05
引用
在当在线用户达到几千万级时,这样的反反复复的redirec

对 CAS 稍作修改,就在解决这个问题~ 看看我的博客。
PS: 新浪微薄用的sso也是 CAS.
1 楼 zhaojuan8 2009-05-06 19:18
为了用户方便性能不是问题

发表评论

您还没有登录,请您登录后再发表评论

文章信息

  • fins在2005-07-20创建
  • fins在2011-05-26更新
Global site tag (gtag.js) - Google Analytics