190 likes | 504 Views
《 单点登录 》 构件介绍. ——— 石鑫磊. 2011 年 3 月. 单点登 录 的定义. 什么是单点登 录 单点登录( single sign on ),简称 SSO ,是目前比较流行的企业应用集成解决方案。 SSO 的定义就是用户只需一次登录,就可以访问所有相互信任的应用系统。 使用单点登 录 的好处 1 、 方便用户 2 、 方便管理员 3 、 简化应用系统开发. CAS 介绍. CAS 是什么
E N D
《单点登录》构件介绍 ———石鑫磊 2011年3月
单点登录的定义 • 什么是单点登录 单点登录(single sign on),简称SSO,是目前比较流行的企业应用集成解决方案。SSO的定义就是用户只需一次登录,就可以访问所有相互信任的应用系统。 • 使用单点登录的好处 1、方便用户 2、方便管理员 3、简化应用系统开发
CAS介绍 • CAS是什么 CAS (Central Authentication Service)是Yale大学的ITS开发的一套JAVA实现的开源的SSO服务。该服务是以一个java web app来进行服务的,使用时需要将war包发布到一个servlet2.3兼容的服务器上,并且服务器需要支持SSL,在需要使用该服务的其他服务器(客户端),只要进行简单的配置就可以实现SSO了。 • CAS中的几个概念 ST:Service Ticket,用于客户端应用持有,每个ST对应一个用户在一个客户端上。TGT:Ticket Granting Ticket,存储在CAS服务器端和用户cookie两个地方。
https://casserver/login?service=http://mainpage/index.html 单点登录流程演示:第一次登录 早晨第一件事,登录主页,查看通知! CAS http://mainpage//index.html?ticket= ST-1-qRPh34B1xhe4dquzz 用户IE 用户名/密码 写Cookie到客户浏览器 redirect ST ok,认证成功,我生成Cookie、TGT、ST,TGT我保存,Cookie,ST返回到浏览器,浏览器可以用ST访问主页了。 没有传cookie过来?那去登录页面登录吧! service=http://mainpage/index.html ticket=ST-5-qRPh34B1xhe4dquzz ST验证成功,返回用户数据 redirect http://mainpage/index.html 好,收到ST了,我去CAS验证一下 哈哈,第一次来,我给你redirect到CAS去! 好,我生成用户对象,你可以到进入主页了! AMS 内网主页 业务系统
单点登录流程演示:访问业务系统 https://casserver/login?service=http://spxt/index.html 再登录业务系统,进行日常工作吧! CAS 用户IE redirect ST TGT Cookie传过来了,我验证一下是不是我生成的,哦,还真是,那我用TGT签发一个ST,redirect给浏览器吧 http://spxt/index.html redirect 哇,只输入了一次用户名/密码,就访问多个系统,比原来强多了! http://spxt/index.html?ticket=ST-2-qRPh78V1xhe4dquzz service=http://spxt/index.html ticket=ST-2-qRPh78V1xhe4dquzz OK,你可以登录业务系统了 ST验证成功,返回用户数据 好,我去CAS验证一下ST 哈哈,第一次来,没有ST,去CAS申请一个吧! AMS 内网主页 业务系统
单点登录构件 • 构件技术特点 • 基于CAS修改 • 客户端Filter功能整合 • 自定义用户表 • 用户密码MD5加密验证 • 支持CS客户端验证 • 登录日志审计
单点登录构件使用 • 服务器搭建 • 将summer-ssoserver.war发布到中间件 • 修改用户映射表 • 修改数据库连接信息 • 修改登录页面。单点登录服务器自带的为CAS的登录页面,各系统使用的时候需要将其改为应用系统的登录页面,所有单点登录系统将共用同一个登录页面。
单点登录构件使用 • 客户端配置(各应用系统配置) • 引入依赖的Jar包 • 修改Filter配置项 • 增加实现Auth接口类
客户端过滤器配置项 • 客户端Filter有多种选项可自行配置
客户端过滤器配置项 • 客户端Filter有多种选项可自行配置
单点登录构件典型应用 • 运维平台 • 老内网
公司其他单点登录方案 • URL伪单点登录 公司早期系统基本都采用URL串来实现单点登录,URL中包含有登录信息,但这并不是真正的单点登录,任何采用此方式的系统都需要知道加密密钥,因此URL串极易被伪造。但此方式在summer的框架下实现比较简单。 • CoCall单点登录 通过用户IP到CoCall服务器获取用户登录信息的方式。原理实际上是通过本地的dll获取cocall用户的用户名密码,然后去业务系统中自动登录。安全性相对较高,和CoCall集成的较好。但是需要用户有CoCall的环境,同时业务系统的人员帐号需要和CoCall的帐号一致。应用系统使用时需要对系统登录模块进行一定的修改,同时不支持外网用户的单点登录(因为外网用户无法传递真实IP)。
单点登录构件优势 • 真正的单点登录实现 • 较好的性能保障 • 配合组织机构构件能够统一人员登录信息,免除人员同步的烦恼 • 为其他系统的开发提供便利(越早应用,代价越小) • 功能扩展方便 • C/S和B/S系统均能集成使用
已有系统单点登录构件集成难点 • 人员帐号不统一 • 比如公司内部信息化应用,就有域帐号、CoCall帐号、人员中文帐号等不同帐号。 • 如果无法统一人员帐号,只能进行人员帐号信息同步。 • 登录模块修改 • Summer2.0以后的项目只需要修改登录模块,更老的项目或者第三方开发的项目修改起来可能会有一定难度。
组织机构同步 • 整合各个业务系统之间的组织机构人员表数据 • 制定全局的统一匹配规则 • 编写定时或者手动的组织机构同步服务代码