sso 与反向代理技术介绍
DESCRIPTION
SSO 与反向代理技术介绍. 清华大学计算中心 刘乃嘉 2008-05. SSO 简介. SSO ( Single Sign-On ) 直译为一次登录 在用户访问网站时作一次身份认证,随后就可以对所有被授权的网络资源进行无缝的访问 单点登录、全网漫游. SSO 样例 清华信息门户 —— 登录前. SSO 样例 清华信息门户 —— 登录后. SSO 样例 清华信息门户 — 访问财务系统. SSO 样例 清华信息门户-访问教务系统. SSO 样例 清华信息门户-访问个人桌面. SSO 的来源. 应用系统越来越多 信息技术和网络技术迅猛发展 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/1.jpg)
SSO与反向代理技术介绍清华大学计算中心
刘乃嘉2008-05
![Page 2: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/2.jpg)
SSO简介 SSO( Single Sign-On)
直译为一次登录 在用户访问网站时作一次身份认证,随后就可以对所有被授权的网络资源进行无缝的访问 单点登录、全网漫游
![Page 3: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/3.jpg)
SSO样例清华信息门户——登录前
![Page 4: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/4.jpg)
SSO样例清华信息门户——登录后
![Page 5: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/5.jpg)
SSO样例清华信息门户—访问财务系统
![Page 6: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/6.jpg)
SSO样例清华信息门户-访问教务系统
![Page 7: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/7.jpg)
SSO样例清华信息门户-访问个人桌面
![Page 8: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/8.jpg)
SSO的来源 应用系统越来越多
信息技术和网络技术迅猛发展 财务系统、办公自动化系统、决策支持系统、客户关系管理系统和网站发布系统等
身份认证和用户管理上出现了问题 用户必须记住每一个系统的用户名和密码 随着系统的增多,出错的可能性就会增加 安全性就会相应降低
受到非法截获和破坏的可能性也会增大 统一用户认证、单点登录概念出现
不断地被应用到企业应用系统中。
![Page 9: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/9.jpg)
SSO的好处 减少登录耗费的时间 减少登录出错的可能性 避免了处理和保存多套系统用户的认证信息 减少了系统管理员增加、删除用户和修改用户权限的时间 增加了安全性
系统管理员有了更好的方法管理用户,包括可以通过直接禁止和删除用户来取消该用户对所有系统资源的访问权限
![Page 10: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/10.jpg)
SSO实现的基础——统一用户管理 原因
如果用户信息不统一,系统就无法很好的做到身份的正确识别 传统应用系统运行模式
每个应用系统都拥有独立的用户信息管理功能 用户信息的格式、命名与存储方式也多种多样 当用户需要使用多个应用系统时就会带来用户信息同步问题 用户信息同步会增加系统的复杂性,增加管理的成本。
![Page 11: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/11.jpg)
SSO实现的基础——统一用户管理 例子
用户 X 需要同时使用A 系统与B系统,就必须在 A 系统与B系统中都创建用户 X
这样在A 、 B 任一系统中用户 X 的信息更改后就必须同步至另一系统 如果用户 X 需要同时使用 10个应用系统,用户信息在任何一个系统中做出更改后就必须同步至其他 9 个系统。用户同步时如果系统出现意外,还要保证数据的完整性,因而同步用户的程序可能会非常复杂
![Page 12: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/12.jpg)
用户管理系统( UUMS) 解决用户同步问题的根本办法 UUMS统一存储所有应用系统的用户信息,应用系统对用户的相关操作全部通过 UUMS完成,而授权等操作则由各应用系统完成,即统一存储、分布授权。
![Page 13: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/13.jpg)
用户管理系统( UUMS) UUMS基本功能
用户信息规范命名、统一存储,用户 ID全局惟一。用户 ID犹如身份证,区分和标识了不同的个体。 UUMS向各应用系统提供用户属性列表,如姓名、电话、地址、邮件等属性,各应用系统可以选择本系统所需要的部分或全部属性。 应用系统对用户基本信息的增加、修改、删除和查询等请求由 UUMS处理。
![Page 14: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/14.jpg)
用户管理系统( UUMS) 应用系统保留用户管理功能,如用户分组、用户授权等功能。 UUMS应具有完善的日志功能,详细记录各应用系统对 UUMS的操作
![Page 15: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/15.jpg)
统一用户认证系统 统一用户认证是以 UUMS为基础,对所有应用系统提供统一的认证方式和认证策略,以识别用户身份的合法性 应支持以下几种认证方式
匿名认证方式 : 用户不需要任何认证,可以匿名的方式登录系统 用户名 /密码认证 : 这是最基本的认证方式 PKI/CA数字证书认证 : 通过数字证书的方式认证用户的身份
![Page 16: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/16.jpg)
统一用户认证系统 IP地址认证 : 用户只能从指定的 IP地址或者 IP地址段访问系统
时间段认证 : 用户只能在某个指定的时间段访问系统 访问次数认证 : 累计用户的访问次数,使用户的访问次数在一定的数值范围之内
![Page 17: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/17.jpg)
认证策略 认证策略
指认证方式通过与、或、非等逻辑关系组合后的认证方式 管理员可以根据认证策略对认证方式进行增、删或组合,以满足各种认证的要求。 比如,某集团用户多人共用一个账户,用户通过用户名密码访问系统,访问必须限制在某个
IP地址段上。该认证策略可表示为 : 用户名 /密码“与” IP地址认证。
![Page 18: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/18.jpg)
数字证书认证 通常应用在安全级别要求较高的环境中 PKI( Public Key Infrastructure)即公钥基础设施是利用公钥理论和数字证书来确保系统信息安全的一种体系。 非对称密钥密码体制 密钥
成对生成 一个公钥和一个私钥 公钥公布于众,私钥为所用者私有
![Page 19: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/19.jpg)
数字证书认证 加解密过程
发送者利用接收者的公钥发送信息 解密:接收者利用自己的私钥解密
数字签名 确保数据完整性和原始性 从数据被签名以来数据尚未发生更改 确认对数据签名的人或实体的身份 安全电子商务的基本要求 使用方法
签名者使用私钥签名 接受者使用公钥确认签名
![Page 20: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/20.jpg)
![Page 21: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/21.jpg)
数字证书 数字证书
互联网通讯中标志通讯各方身份信息的一系列数据 由一个由权威机构 -----CA机构,又称为证书授权
(Certificate Authorit y)中心发行的 人们可以在网上用它来识别对方的身份 数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。 最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。 一般情况下证书中还包括密钥的有效时间,发证机关 (证书授权中心 )的名称,该证书的序列号等信息,证书的格式遵循 ITUT X.509国际标准。
![Page 22: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/22.jpg)
授权管理( PMI) PMI
Privilege Management Infrastructure 授权管理基础设施 向用户和应用程序提供授权管理服务 提供用户身份到应用授权的映射功能 提供与实际应用处理模式相对应的、与具体应用系统开发和管理无关的授权和访问控制机制
![Page 23: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/23.jpg)
PMI与 PKI PMI以资源管理为核心,对资源的访问控制权统一交由授权机构统一处理 PMI和 PKI主要区别 :
PKI证明用户是谁, PMI证明这个用户有什么权限,能干什么 而且 PMI可以利用 PKI为其提供身份认证
![Page 24: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/24.jpg)
SSO的基本原理 单点登录的实质
安全上下文( Security Context)或凭证( Credential)在多个应用系统之间的传递或共享
当用户登录系统时,客户端软件根据用户的凭证(例如用户名和密码)为用户建立一个安全上下文,安全上下文包含用于验证用户的安全信息,系统用这个安全上下文和安全策略来判断用户是否具有访问系统资源的权限。
![Page 27: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/27.jpg)
统一用户认证与单点登录模型 AA管理服务器 :
即认证( Authentication)和授权( Authorization)服务器,它为系统管理员提供用户信息、认证和授权的管理
SSO: 包括 SSO代理和 SSO服务器。 SSO代理部署在各应用系统的服务器端,负责截获客户端的 SSO请求,并转发给 SSO服务器,如果转发的是 OCSP请求,则 SSO服务器将其转发给 OCSP服务器。在 C/S方式中, SSO代理通常部署在客户端。
![Page 28: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/28.jpg)
统一用户认证与单点登录模型 SSO
SSO服务器需要存储一张用户会话( Session)表,以记录用户登录和登出的时间 SSO服务器通过检索会话表就能够知道用户的登录情况,该表通常存储在数据库中 AA系统提供了对会话的记录、监控和撤消等管理功能。
为保证稳定与高效, SSO、 PMI和OCSP可部署两套或多套应用,同时提供服务。
![Page 29: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/29.jpg)
清华大学统一认证和漫游系统 数字校园的重要组成部分,是网络基础服务之一 校园网络应用系统提供一个统一的口令认证接口,实现用户在不同应用系统中口令的统一化 实现网络应用的“单点登录”( SSO, Single Sign On) 稳定、可靠、安全、高效
![Page 30: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/30.jpg)
系统结构图
认证服务器
应用系统 应用系统应用系统 应用系统 应用系统应用系统
用户信息库
UserID/UserName+ PassWord
认证服务器
票据服务器
Subti tl e
2003-6-23
门户
票据 票据
用户
……
票据 票据
、 图一 系统结构
![Page 31: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/31.jpg)
用户认证过程认证客户端( ) 门户 认证服务器用户
( )1. / 登录请求 用户名 密码HTTPS ( )2. 认证请求 安全认证
3. 认证结果4. 登录结果
、 图二 用户认证过程
![Page 32: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/32.jpg)
用户漫游过程认证客户端( ) 门户 认证服务器用户
1. 请求漫游到某网络应用系统
2. 提供会话凭据申请漫游票据
5. 申请漫游票据结果6. 请求漫游的结果
、 图四 用户漫游过程
票据服务器
3. 申请新票据
4. 申请新票据的结果
网络应用系统7. 提交漫游票据
8. 验证漫游票据
9. 验证漫游票据的结果10. 漫游的结果
3. 会话凭据无效申请漫游票据失败
![Page 33: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/33.jpg)
认证和漫游接口 Java接口 C接口 PHP接口 ASP接口 Notes接口
![Page 34: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/34.jpg)
SSO的其他实现方式 安全上下文
Windows域 使用同域内 cookie方式
安全性不好 其他简易做法
使用对称密钥
![Page 35: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/35.jpg)
反向代理系统 目的
解决基于 IP地址认证资源的访问
![Page 36: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/36.jpg)
背景 图书馆论文保护
教育用- > 商用是侵权的行为,很难区分用户的真正用途 不完全禁止下载 只防范大批量的恶意下载 分析用户的行为 要求可以追查到人而不是某个 IP 自动分析用户行为,并做出统计 用户不必对客户机做额外的配置 论文服务器图书馆没有权限管理,因而不能把访问控制系统做在服务器端,必须外挂。
清华门户系统代理 门户系统很多内容限制在校外访问 门户系统可以识别校内外
![Page 37: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/37.jpg)
背景 解决方案
使用正常的Web代理 使用 VPN技术 使用 SSL VPN技术
解决方案存在的问题 用户设置不方便 可能需要安装控件 控制粒度不细致 不能很好的区分用户的行为
![Page 38: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/38.jpg)
反向代理( 1 ) 原理
从外观看来,也就是从普通用户看来,反向代理就像普通的WEB服务器一样。而反向代理所代理的每一个WEB服务器都好像是反向代理服务器中的一个目录。 反向代理也可以说是一个目录映射代理服务器,而不是端口映射代理服务器
![Page 39: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/39.jpg)
反向代理( 2 ) 举例
http://webserver.com/index.html http://lstd.cic.tsinghua.edu.cn/~WA
CS/webserver.com/index.html https://webserver.com/index.html http://lstd.cic.tsinghua.edu.cn/~WA
CSS/webserver.com/index.html
![Page 40: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/40.jpg)
反向代理( 3 )
WWW服务器webserver. com
客户机166. 111. 137. 71
HTTP反向代理服务器proxy. org
ht tp: / / webserver . com/ i ndex. htm代理映射
ht t p: / / proxy. org/ webserver . com/ i ndex. ht m访问请求
![Page 41: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/41.jpg)
反向代理( 4 ) 优点
客户端不必配置 用户可以使用正向代理访问 用户对其它网站的访问速度不受影响
缺点 要全文扫描并改写链接,对反向代理服务器要求较高 尚不能解决部分
script的问题
![Page 42: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/42.jpg)
Servlet接收层
认证层
Cache层
HTTP发送层 HTTP接收层
回复改写层
Servlet发送层
内容过滤层
WEB服务器
客户机浏览器
请求改写层
反向代理反向代理结构
![Page 43: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/43.jpg)
反向代理的关键技术( 1 ) 地址改写
按照 html和 cookie的规范,用正则表达式解决,有比较成熟的技术 绝对地址(以 http://或“ /”打头),则把它改写成通过反向代理的格式。
绝对地址的改写经常会出现一些问题,例如 js中的地址改写 (“/”开头的地址 ),采用了 filter技术解决
原理:我们可以大致认为:某一次访问的网站应该和上一次的基本一致,如果我们不能知道这次访问的地址,就认为和上次的一样 相对地址不用改动
![Page 44: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/44.jpg)
反向代理关键技术( 2 ) Cookie改写
JSESSIONID=aHOYGWGME6f8会被改写成 _WA_0000JSESSIONID=aHOYGWGME6f8其中 _WA_是开头部分,固定0000是网站标识,具体对应的哪个网站是由服务器端存储在用户的会话过程中的
Location改写 Referer改写
![Page 45: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/45.jpg)
使用指南 可被代理地址:
服务器地址限制 可代理地址:
用户地址限制 黑名单、不受限用户、不受限 IP、规则
图书馆使用,限制用户行为,防止过量下载 规则填写说明
使用正则表达式,常用的是 .*,代表所有字符。可以使用括号、 NOT、 OR、 AND等 纯 Java实现,实施简单
![Page 46: SSO 与反向代理技术介绍](https://reader033.vdocuments.site/reader033/viewer/2022052120/56814c53550346895db96733/html5/thumbnails/46.jpg)
谢谢!