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