《 单点登录 》 构件介绍

17
单单单单 单单单单 ——— 石石石 2011 石 3 石

description

《 单点登录 》 构件介绍. ——— 石鑫磊. 2011 年 3 月. 单点登 录 的定义. 什么是单点登 录 单点登录( single sign on ),简称 SSO ,是目前比较流行的企业应用集成解决方案。 SSO 的定义就是用户只需一次登录,就可以访问所有相互信任的应用系统。 使用单点登 录 的好处 1 、 方便用户 2 、 方便管理员 3 、 简化应用系统开发. CAS 介绍. CAS 是什么 - PowerPoint PPT Presentation

Transcript of 《 单点登录 》 构件介绍

Page 1: 《 单点登录 》 构件介绍

《单点登录》构件介绍———石鑫磊

2011年 3月

Page 2: 《 单点登录 》 构件介绍

单点登录的定义什么是单点登录

单点登录( single sign on ),简称 SSO ,是目前比较流行的企业应用集成解决方案。 SSO 的定义就是用户只需一次登录,就可以访问所有相互信任的应用系统。使用单点登录的好处

1 、方便用户2 、方便管理员3 、简化应用系统开发

2

Page 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 两个地方。 3

Page 4: 《 单点登录 》 构件介绍

单点登录流程演示:第一次登录

服务器

服务器

便携电脑

内网主页AMS

早晨第一件事,登录主页,查看通知!

http://mainpage/index.html

哈哈,第一次来,我给你 redirect 到 CAS去!

redirect

https://casserver/login?service=http://mainpage/index.html

没有传 cookie 过来?那去登录页面登录吧!

用户名 / 密码 ok ,认证成功,我生成 Cookie 、

TGT 、 ST , TGT 我保存, Cookie,ST 返回到浏览器 , 浏览器可以用 ST 访问主页了。

写 Cookie 到客户浏览器 redirect ST

http://mainpage//in

dex.html?ticket= ST-1-qRPh34B1xhe4dquzz

好,收到 ST 了,我去 CAS 验证一下

service=http://mainpage/

index.html ticket=S

T-5-qR

Ph34B

1xhe4dquzzST验证成功,返回用户数据

好,我生成用户对象,你可以到进入主页了!

业务系统

用户 IECAS

服务器

liangtk
这个图要好好讲解一下,比较乱
Page 5: 《 单点登录 》 构件介绍

单点登录流程演示:访问业务系统

AMS

再登录业务系统,进行日常工作吧!

http://spxt/index.htm

l

哈哈,第一次来,没有 ST ,去 CAS 申请一个吧!

redirect

https://casserver/login?service=http://spxt/index.html

TGT Cookie 传过来了,我验证一下是不是我生成的,哦,还真是,那我用 TGT 签发一个ST , redirect 给浏览器吧

http://spxt/index.html?

ticket=ST-2-qR

Ph78V1xhe4dquzz 好,我去 CAS 验证一下 ST

service=http://spxt/index.html ticket=ST-2-qRPh78V1xhe4dquzz

ST 验证成功,返回用户数据OK ,你可以登录业务系统了

哇,只输入了一次用户名 / 密码,就访问多个系统,比原来强多了!

redirect ST

服务器

服务器

便携电脑

服务器

内网主页 业务系统

用户 IECAS

Page 6: 《 单点登录 》 构件介绍

CAS 登录认证原理图

6

Page 7: 《 单点登录 》 构件介绍

单点登录构件构件技术特点

基于 CAS 修改 客户端 Filter 功能整合 自定义用户表 用户密码 MD5 加密验证 支持 CS 客户端验证 登录日志审计

7

Page 8: 《 单点登录 》 构件介绍

单点登录构件使用服务器搭建

1. 将 summer-ssoserver.war 发布到中间件2. 修改用户映射表3. 修改数据库连接信息4. 修改登录页面。单点登录服务器自带的为 CAS 的登录页面,各系统使用的时候需要将其改为应用系统的登录页面,所有单点登录系统将共用同一个登录页面。

8

Page 9: 《 单点登录 》 构件介绍

单点登录构件使用客户端配置(各应用系统配置)

1. 引入依赖的 Jar 包2. 修改 Filter 配置项3. 增加实现 Auth 接口类

9

Page 10: 《 单点登录 》 构件介绍

客户端过滤器配置项客户端 Filter有多种选项可自行配置

10

参数名 含义 描述 必填authClass SSO 登录接

口必须实现接口com.thunisoft.summer.component.sso.auth.Auth

ssoServerUrlPrefix

SSO 服务器地址

是loginUrl SSO 登录

URL默认 /login, 跟服务器的登录url 对应

否logoutUrl SSO 注销

URL默认 /logout ,跟服务器的注销 url 对应

否alwaysValidate 是否一直校验 默认为是 否excludeURL 排除登录验证

URL多个 url 之间用逗号“ ,” 隔开。默认为空。

Page 11: 《 单点登录 》 构件介绍

客户端过滤器配置项客户端 Filter有多种选项可自行配置

11

参数名 含义 描述 必填backLoginUrl 备选登录 URL 当 sso 服务器出现问题时自动

跳转的登录 url否

workWithCom 是否操作 com组件

与 CS 客户端相互实现单点登录时设置为 true ,默认 false

否comJspLocation 操作 com 组件

的 jsp 文件位置

默认为 com/synCom.jsp ,可根据实际情况修

Page 12: 《 单点登录 》 构件介绍

单点登录构件典型应用

运维平台老内网

12

Page 13: 《 单点登录 》 构件介绍

公司其他单点登录方案 URL伪单点登录

公司早期系统基本都采用 URL 串来实现单点登录, URL中包含有登录信息,但这并不是真正的单点登录,任何采用此方式的系统都需要知道加密密钥,因此 URL 串极易被伪造。但此方式在 summer 的框架下实现比较简单。 CoCall单点登录

通过用户 IP 到 CoCall 服务器获取用户登录信息的方式。原理实际上是通过本地的 dll获取 cocall 用户的用户名密码,然后去业务系统中自动登录。安全性相对较高,和 CoCall 集成的较好。但是需要用户有 CoCall 的环境,同时业务系统的人员帐号需要和CoCall 的帐号一致。应用系统使用时需要对系统登录模块进行一定的修改,同时不支持外网用户的单点登录(因为外网用户无法传递真实 IP )。 13

Page 14: 《 单点登录 》 构件介绍

单点登录构件优势真正的单点登录实现较好的性能保障配合组织机构构件能够统一人员登录信息,免除人员同步的烦恼为其他系统的开发提供便利(越早应用,代价越小)功能扩展方便 C/S和 B/S系统均能集成使用

14

Page 15: 《 单点登录 》 构件介绍

已有系统单点登录构件集成难点人员帐号不统一

比如公司内部信息化应用,就有域帐号、 CoCall帐号、人员中文帐号等不同帐号。 如果无法统一人员帐号,只能进行人员帐号信息同步。

登录模块修改 Summer2.0 以后的项目只需要修改登录模块,更老的项目或者第三方开发的项目修改起来可能会有一定难度。

15

Page 16: 《 单点登录 》 构件介绍

组织机构同步整合各个业务系统之间的组织机构人员表数据制定全局的统一匹配规则编写定时或者手动的组织机构同步服务代码

16

Page 17: 《 单点登录 》 构件介绍

谢谢大家!

17