什么是单点登录

Report
《单点登录》构件介绍
———石鑫磊
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

similar documents