Transcript 什么是单点登录
《单点登录》构件介绍 ———石鑫磊 2011年3月 单点登录的定义 什么是单点登录 单点登录(single sign on),简称SSO,是目前比较流 行的企业应用集成解决方案。SSO的定义就是用户只需 一次登录,就可以访问所有相互信任的应用系统。 使用单点登录的好处 1、方便用户 2、方便管理员 3、简化应用系统开发 2 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两个地方。 3 单点登录流程演示:第一次登录 CAS 服务器 https://casserver/login?service=http://mainpage/index.html 早晨第一件事,登录 用户名/密码 主页,查看通知! 写Cookie到客户浏览器 用户IE 便携电脑 redirect ST service=http://mainpage/index.html ticket=ST-5-qRPh34B1xhe4dquzz ST 验 证 成 功 , 返 回 用 户 数 据 服务器 ok,认证成功,我生成Cookie、 没有传cookie过来? TGT、ST,TGT我保存,Cookie,ST 那去登录页面登录吧! 返回到浏览器,浏览器可以用ST访问 主页了。 好,收到ST了,我去 哈哈,第一次来,我 CAS验证一下 好,我生成用户对象, 给你redirect到CAS 你可以到进入主页了! 去! 服务器 AMS 内网主页 业务系统 单点登录流程演示:访问业务系统 CAS 服务器 https://casserver/login?service=http://spxt/index.html 再登录业务系统,进 redirect行日常工作吧! ST 用户IE 便携电脑 http://spxt/index.html redirect 服务器 http://spxt/index.html?ticket= ST-2-qRPh78V1xhe4dquzz TGT Cookie传过来了,我验证一下 是不是我生成的,哦,还真是,那 我用TGT签发一个ST,redirect给 浏览器吧 哇,只输入了一次用户名/ 密码,就访问多个系统, 比原来强多了! OK,你可以登录业 好,我去CAS验证一 务系统了 哈哈,第一次来,没 下ST 有ST,去CAS申请 一个吧! 服务器 AMS 内网主页 业务系统 CAS登录认证原理图 6 单点登录构件 构件技术特点 基于CAS修改 客户端Filter功能整合 自定义用户表 用户密码MD5加密验证 支持CS客户端验证 登录日志审计 7 单点登录构件使用 服务器搭建 1. 将summer-ssoserver.war发布到中间件 2. 修改用户映射表 3. 修改数据库连接信息 4. 修改登录页面。单点登录服务器自带的为CAS的登 录页面,各系统使用的时候需要将其改为应用系统 的登录页面,所有单点登录系统将共用同一个登录 页面。 8 单点登录构件使用 客户端配置(各应用系统配置) 1. 引入依赖的Jar包 2. 修改Filter配置项 3. 增加实现Auth接口类 9 客户端过滤器配置项 客户端Filter有多种选项可自行配置 参数名 含义 描述 必填 authClass SSO 登录接口 必须实现接口 com.thunisoft.summer.comp onent.sso.auth.Auth 是 ssoServerUrlP refix SSO服务器地 址 是 loginUrl SSO登录URL 默认/login, 跟服务器的登录 url对应 logoutUrl SSO注销URL 默认/logout,跟服务器的注销 否 url对应 alwaysValidate 是否一直校验 excludeURL 排除登录验证 URL 否 默认为是 否 多个url之间用逗号“,”隔开。 默认为空。 否 10 客户端过滤器配置项 客户端Filter有多种选项可自行配置 参数名 含义 描述 必填 backLoginUrl 备选登录URL 当sso服务器出现问题时自动跳 否 转的登录url workWithCom 是否操作com 组件 与CS客户端相互实现单点登录 时设置为true,默认false comJspLocation 操作com组件 默认为 com/synCom.jsp,可根 否 的jsp文件位置 据实际情况修 否 11 单点登录构件典型应用 运维平台 老内网 12 公司其他单点登录方案 URL伪单点登录 公司早期系统基本都采用URL串来实现单点登录,URL中包含 有登录信息,但这并不是真正的单点登录,任何采用此方式的系统 都需要知道加密密钥,因此URL串极易被伪造。但此方式在 summer的框架下实现比较简单。 CoCall单点登录 通过用户IP到CoCall服务器获取用户登录信息的方式。原理实 际上是通过本地的dll获取cocall用户的用户名密码,然后去业务系 统中自动登录。安全性相对较高,和CoCall集成的较好。但是需要 用户有CoCall的环境,同时业务系统的人员帐号需要和CoCall的帐 号一致。应用系统使用时需要对系统登录模块进行一定的修改,同 时不支持外网用户的单点登录(因为外网用户无法传递真实IP)。 13 单点登录构件优势 真正的单点登录实现 较好的性能保障 配合组织机构构件能够统一人员登录信息,免除 人员同步的烦恼 为其他系统的开发提供便利(越早应用,代价越 小) 功能扩展方便 C/S和B/S系统均能集成使用 14 已有系统单点登录构件集成难点 人员帐号不统一 比如公司内部信息化应用,就有域帐号、CoCall帐号、 人员中文帐号等不同帐号。 如果无法统一人员帐号,只能进行人员帐号信息同步。 登录模块修改 Summer2.0以后的项目只需要修改登录模块,更老的 项目或者第三方开发的项目修改起来可能会有一定难 度。 15 组织机构同步 整合各个业务系统之间的组织机构人员表数据 制定全局的统一匹配规则 编写定时或者手动的组织机构同步服务代码 16 谢谢大家! 17