Slide 1

Slide 1 text

B/S单点登陆解决方案 使用CAS解决单点登陆问题 大洋上海研发基地 作者:吕健,王毅飞 2012-10-12

Slide 2

Slide 2 text

大纲 ž  单点登陆原理 ž  Java中单点登陆方案:CAS —  CAS 服务器使用 —  CAS 客户端使用 ž  如何和portal集成 ž  我们已经做的改进 —  支持http验证 —  CAS客户端支持多网段路由 ž  参考资料

Slide 3

Slide 3 text

单点登陆原理 当用户第一次访问应用系统1的时候,因为还没有登录,会 被引导到认证系统中进行登录;根据用户提供的登录信息, 认证系统进行身份校验,如果通过校验,应该返回给用户 一个认证的凭据--ticket; 用户再访问别的应用的时候就会将这个ticket带上,作为自 己认证的凭据,应用系统接受到请求之后会把ticket送到认 证系统进行校验,检查ticket的合法性。如果通过校验,用 户就可以在不用再次登录的情况下访问应用系统2和应用系 统3了。

Slide 4

Slide 4 text

单点登陆原理 根据单点登陆的原理,我们要实现如下两个内容: 1.  所有应用系统共享一个身份认证系统 2.  所有应用系统能够识别和提取ticket信息 这里我们并不打算自己实现, 而是直接采用Java开 源单点登陆系统: CAS CAS: http://www.jasig.org/cas

Slide 5

Slide 5 text

Java中单点登陆方案:CAS ž CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一 种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一 个项目。CAS 具有以下特点: ž 开源的企业级单点登录解决方案。 ž CAS Server 为需要独立部署的 Web 应用。 ž CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用), — 包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。 CAS: http://www.jasig.org/cas

Slide 6

Slide 6 text

CAS 组成 CAS分服务器端和客户端两部分, 使用时只需要将服务 器端部署到Tomcat, 并且在客户端添加filter即可. —  服务器端: ○  负责登陆 ○  提供统一登陆的校验 —  客户端: ○  负责做登陆拦截 ○  发起统一登陆的校验

Slide 7

Slide 7 text

CAS 原理

Slide 8

Slide 8 text

CAS Server 使用 ž  使用官方提供的server服务,只需要修改 deployerConfigContext.xml添加数据库验 证bean即可

Slide 9

Slide 9 text

CAS Client 使用 ž  修改web.xml加入CASFilter

Slide 10

Slide 10 text

改造现有应用的登陆 ž  修改web.xml 直接返 回至action方法,在action方法中通过 name = (String)sess.getAttribute(CASFilter.CAS _FILTER_USER)取得登录用户名

Slide 11

Slide 11 text

如何和portal集成 ž CAS Server使用了如下技术: —  JPA, Spring, Spring MVC ž 因此可以有如下两种方式: —  将CAS Server相关配置和jar集成到portal项 目中 —  或者直接在CAS Server源码上开发portal(推 荐)

Slide 12

Slide 12 text

我们已做的改进 ž  支持http的方式认证 —  用来回避tomcat中 https 证书生成问题 ž  支持多网段路由 —  用来解决台里内外网的问题

Slide 13

Slide 13 text

参考资料 ž  SSO单点登陆原理 ž  Java CAS 官方网站 ž  使用CAS在Tomcat中实现单点登陆