`
feohoo
  • 浏览: 110427 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

单点系统概述

阅读更多
在税务行业信息化发展的关键阶段,应用整合已经非常重要,而应用整合的表现层首先要实现的就是单点登陆(SSO,Single sign-on的缩写),以下是笔者结合南京地税进行应用整合中SSO的技术实现 。 南京地税目前有多种企业应用,包括征管系统、行政系统、辅助决策系统、公文系统、人事系统、电子地图、邮件系统等等,这些应用主要是采用三层体系结构(IE6.0+weblogic portal7.0 +weblogic server7.0 +oracle9i)来构架。所有的用户登陆需要通过weblogic portal进行。 我们在系统中使用SSO来实现用户通过一次认证(authenticate)来存取多个受保护的资源,也就是说,用户随后对受保护资源的存取,将不会导致每一次都要用户提供认证的信息,只需要一次认证即可。 一、SSO实现原理 1、概念:SSO的一种偏向技术的说法:用户只需登陆一次,就可使用多个SSO enable的应用系统。 (1)、单一的登陆点。理想的情况是用户通过任何应用系统都能进行SSO,这对于基于Web的系统是可行的。这种单一的登陆点在整个系统的设计中是唯一认证用户的地方,由登陆点将SSO token(针对不同的C/S,B/S应用可能还需要传递用户名,口令)传递给应用系统,应用系统利用SSO token来进行用户已认证的验证。我们将这个单一的登陆点称为SSO Entry。 (2)、SSO enable意味着对应用系统的修改不可避免。并不是任何系统都能够使用SSO,只有那些符合SSO规范,使用SSO API的应用系统才具有SSO的功能。简单地说就是要修改已有的应用系统,屏蔽已有的应用系统的用户认证模块,使用系统提供的SSO API来验证用户,以及对用户的操作进行授权。 (3)、需要统一的认证,权限信息库。通常,认证与授权管理模块以一种应用专有的方式实现,系统的授权模型、认证,授权信息存贮结构与访问控制逻辑与应用的业务逻辑之间耦合紧密。这种设计与实现方式的缺点是显而易见的:由于认证、授权模块与应用逻辑之间的紧耦合使得认证、授权模块很难进行扩展与维护;认证、授权模块的设计与编码需要很大的工作量,而且很难在不同的应用系统之间共享与重用。这也是越来越多企业应用需要SSO的原因之一。 SSO要求有统一的认证,权限存放库。但现实中,有的系统无法使用外部的认证,授权信息库,所以就需要在应用系统和Portal Server之间进行认证,同时进行授权信息的数据同步。 2、实现描述:在用户成功登录 weblogic Portal之后,系统提供的Login Delegate机制来为用户登录到其有权可以使用的应用系统。系统提供Logout Delegate机制实现用户的注销功能(即SSO logout)。 用户存取由Portal SSO保护的若干资源,SSO会话服务(Session/SSO Service)提供了授权的证明,这样就不再需要用户重新进行身份验证了。在这种方式下,即使用户要访问不同的域(weblogic domain)的应用,我们提供的Portal SSO Service为其保持会话服务。 同时,SSO还包括的与登录恰恰相反的,统一的注销点,即用户一旦从Portal注销,则亦当从所有参与Portal SSO的应用注销。此处有一个例外,就是当用户从Portal登录并转向一个应用后,经过一段时间后可能会出现用户的该应用的会话还有效时用户的Portal会话过期时,此时用户将只能使用该应用,直到该用户再次登录Portal。 3、通过SSO Agent:当用户试图通过浏览器存取受保护的应用资源时,系统提供安装在不同应用上的SSO Agent来截取用户对资源的请求,并检查请求是否存在会话标识符,即token。如果token不存在,请求就被传递给Portal SSO,在Portal SSO上会话服务负责创建会话token,然后认证服务将提供登陆页面以验证用户。 4、创建会话Token:在用户身份验证之前,会话服务就创建了会话token。token为随机产生的Portal Server 会话标识符,该标识符代表了一个确定用户的特定会话。创建会话token后,认证服务把token插入cookie中在用户的浏览器中设定cookie。在token被设定的同时,该用户将会看到一个登陆页面。 5、用户认证:用户收到登陆页面和会话token后,填入合适的认证信息。当用户提交登陆页面后,这些认证信息就被发给认证提供者(authentication provider)(LDAP服务器,RADIUS服务器等)进行验证。一旦认证提供者成功验证了认证信息,用户就被认为是通过了认证。Identity Server会从用户的token中取出会话信息并将会话状态设为有效。此后,用户就可以访问这些受保护的资源。 6、cookie和会话token:Cookie是由Web服务器创建的信息包,并传递给浏览器。Cookie 保存类似用户习惯等Web服务器产生的信息。它本身并不表明用户通过了认证。Cookie是特定于某个域的。在Identity Server的实现中,cookie由会话服务产生,并由认证服务设定。而且,Identity Server的cookie是会话cookie,存储在内存中。会话token由会话服务创建并插入Cookie。会话token利用安全随机数发生器产生,并包含Portal Server特有的会话信息。在存取受保护的资源之前,用户由认证服务验证,并创建SSO token。 二、SSO技术实现 1、SSO entry SSO entry 作为系统唯一的登陆点将完成如下的功能: (1)提供用户身份认证的登陆页面; (2)根据用户的权限,显示可供用户使用的应用系统; (3)调用用户选择的应用系统(B/S或C/S均可); (4)为应用系统传递SSO Token(针对不同的C/S,B/S应用可能还需要传递用户名,口令); (5)关闭SSO; (6)SSO token失效后,关闭SSO entry。 注意SSO entry 并不提供通知应用系统SSO token已失效的功能,这一问题并不大,因为SSO token失效后,SSO entry 已被关闭。用户只有重新认证,才能获取新的SSO token。 2、SSO 部署 上面是整个系统的部署的示意图。白色的立方体表示应用系统。浅蓝色的立方体表示Portal SSO平台。从上图可以看出:各个应用系统各个应用系统与SSO entry发生联系。SSO entry 需要向应用系统传递SSO Token,用户名,口令;启动应用系统。 3、SSO实现方式 SSO 的实现方式按照应用系统与Portal Server的交互程度分为三种。需要指出这些SSO的实现方式并没有优略之分,不同的实现方式适应不同的应用环境。解决现实中遇到的不同问题。真单点登陆: 通过SSO entry认证后,应用系统利用SSO API同Portal Server通信,验证用户是否经过认证。新开发的应用系统大多使用这种SSO的实现方式。这种方式需要对应用系统的认证模块进行修改。伪单点登陆:通过SSO entry认证后,应用系统还要自己进行用户的认证。这种方式适用于那些无法修改认证模块的应用系统。我们应用系统的整合采用该方式进行。整合第三方软件的单点登陆:Tarantella和Citrix都是将C/S应用系统转化为Web应用的第三方软件系统。在某些应用环境下,这类软件将发挥其作用。这种SSO实现方式在实施中并不使用,列出这种使用方式主要用来展现Identity Server的扩展性。 4、SSO的实现 (1)用户从Portal登录 说明:以上蓝色区域为Portal Server上的服务,白色为需要与Portal进行SSO的应用,绿色为每个应用的SSO Entry。代理登录的具体过程:用户首先登录Portal,Portal处理完登录后,启动代理登录,为用户登录应用系统,Portal把用户转向到应用系统,应用系统再把用户在征管系统的sessionID转发给Portal,登录代理(Login Delegate)把用户在征管系统中的sessionID和用户id发到征管系统的SSO Service进行登记,Portal把用户访问转向征管系统SSOEntry,征管系统SSOEntry通过用户的sessionID得到SSOService中记录的用户在Portal的用户userID,并把当前用户认可为此Portal userID对应的在征管系统中的用户,征管系统把用户访问转回Portal。接着登录代理再对SSO应用列表中的其它应用进行代理登录。代理登录完成,用户被重定向到Portal的相关页面。 用户访问应用系统:之后,当用户访问征管的某个应用时,征管系统发现该用户还未经认证,则将其sessionID与SSOService中登记的uid/sessionID比较,如果存在匹配,则认证通过,将用户id与session相关联。之后用户就可以直接访问征管系统了。 (2)SSO单点注销 说明: (1)用户注销总是从Portal开始; (2)注销代理(Logout Delegate)将注销消息发到各应用的SSO Logout Entry; (3)应用的SSO Logout Entry注销本地的用户会话记录; (4)注销Portal上的用户会话记录。 三、安全性分析 Portal SSO的安全性需要从几个方面理解: 1.客户登录Portal Server之后SSO到应用的安全性,即SSOToken的安全性; 2.客户无SSOToken时,首先访问应用的安全性; 3.客户有SSOToken时想通过仿冒别人的有效SSOToken来进行非法的访问。 Portal Server生成的SSO token 因为需要在应用程序间传递,所以SSOToken比较容易被窃取,但Portal Server保证了SSOToken的唯一性,那些盗用合法SSOToken的人无法通过SSOToken的验证。因为SSOToken的生成收集了用户端和服务器端的很多信息,当非法用户持有效的SSOToken试图访问某应用时,该应用将通过Portal Server的SSOService进行SSOToken验证时,SSOToken的这些信息以及Portal Server的安全算法确保了盗用者即使拿到合法用户的SSOToken也无法通过SSOToken的有效性验证。所以SSOToken的安全性也得到了保证。 用户没有SSOToken的时候,如果客户要访问某应用,如果用户没有该应用的会话信息也没有Portal的SSOToken,则该用户必须先通过Portal的认证并SSO到该应用;如果用户已经在应用登录成功(可能是该应用保留了原有的认证入口,用户通过该入口访问此应用,也有可能是用户从Portal 登录后,通过SSO访问该应用,经过一段时间后,用户的Portal SSOToken已经过期,但是用户在该应用中的会话仍然保持有效),则用户可以继续使用该应用系统而无需重新认证。但是如果用户想访问Portal或者与Portal进行SSO的其它应用的话,则用户须经过Portal的认证并拿到SSOToken。所以在这种情况下SSOToken也是安全的。 每个用户的SSOToken只在其当次会话过程中有效,离开其当次会话,SSOToken即被视作无效,因此这种情况下也是安全的。
分享到:
评论

相关推荐

    单点登录技术文档 多用户多系统多数据库

    1、 单点登录概述 单点登录的英文名称为Single Sign-On,简写为SSO,它是一个用户认证的过程,允许用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输入密码。IBM对SSO有一个形象的...

    单点登录SSO-概述与示例

    本系列将由浅入深的带大家深入最新的单点登录SSO方案选型与架构开发实战。附动画演示。 从业十多年,为政府、电信、跨国公司顾问和实施的单点登录解决方案无数,深谙其痛点与关键。 大部分单点登录方案,从产品方案...

    数据库系统概论(基础篇)教学大纲.docx

    课程概述 "数据库系统概论"是计算机科学与技术专业、软件工程专业、信息系统与信息管理等专业重要的专业基础课程。 本课程将系统讲述数据库系统的基础理论、基本技术和基本方法。本课程的知识内容和技术方法,对...

    20年10月操作系统概论02323真题.doc

    本文档将对操作系统概论真题进行详细的解析和知识点总结,涵盖了操作系统的基本概念、进程管理、内存管理、文件系统、输入/输出系统等方面的知识点。 一、操作系统基本概念 操作系统是计算机系统的核心软件,负责...

    java 单点登录技术概述

    据统计频繁的IT工作者会有很多账号,在企业多系统的状态下如何实现登录一次共享系统间的所有操作……

    GPS精密单点定位精度分析.pdf

    GPS 精密单点定位技术的基本概述 精密单点定位技术是通过全球若干地面跟踪站的GPS所观测的数据计算出的精密卫星轨道以及卫星钟差,从而对单台的GPS接收机所采集的相位以及伪距观测值进行定位的解算。该技术是实现...

    实时GPS精密卫星钟差估计及实时精密单点定位.pdf

    "实时GPS精密卫星钟差估计及实时精密单点定位" 在本文中,我们讨论了实时GPS精密卫星钟差估计及实时精密单点定位的方法和应用。首先,我们概述了GPS精密卫星钟差估计的重要性和挑战性,然后介绍了非差消电离层组合...

    GPS多频精密单点定位算法.pdf

    "GPS多频精密单点定位算法" 本文提出了一种同时利用双频及三频GPS观测数据的PPP定位算法,利用实测数据按照算法进行了解算,并且采用传统双频算法解算相同数据作为参照。结果显示GPS多频PPP算法在定位精度及收敛...

    基于微信小程序点餐系统的设计与实现(含word论文)

    1 系统概述 2 1.1 概述 3 1.2课题意义 4 1.3 主要内容 5 2 系统开发环境 6 2.1微信开发者工具 6 2.2小程序框架以及目录结构介绍 6 2.3 JAVA简介 7 2.4 MySQL数据库 7 2.5 SSM三大框架 7 3 需求分析 8 3.1 系统设计...

    阿里云java短信验证码源码-MaxKey-Cloud:MaxKey是访问管理系统-单点登录(SSO),基于SpringCloud

    MaxKey(马克思的钥匙)单点登录认证系统(Single Sign On System),寓意是最大钥匙,是业界领先的企业级IAM身份管理和身份认证产品,支持OAuth 2.0/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等标准协议,提供简单、标准...

    网络安全概论——入侵检测系统IDS.pdf

    ⽹络安全概论 ⽹络安全概论——⼊侵检测系统 ⼊侵检测系统IDS ⼀、⼊侵检测的概念 ⼀、⼊侵检测的概念 1 、 ⼊ 侵 检 测 的 概 念 1 、 ⼊ 侵 检 测 的 概 念 检测对计算机系统的⾮授权访问 对系统的运⾏状态进⾏...

    旅行社DMS线路管理系统 答辩PPT.ppt

    系统概述 旅行社DMS线路管理系统是一个基于DMS的管理系统,旨在帮助旅行社方便的发布线路信息、管理业务并与山东DMS系统连接。该系统充分利用DMS系统庞大、准确和权威的信息资源,帮助旅行社方便的运用系统提供的...

    基于北斗导航定位系统的设计与实现.docx

    第二章 北斗导航系统概述 9 2.1 北斗导航系统介绍 9 2.2 北斗导航系统组成 11 2.3 北斗导航系统信号特点 11 2.4 北斗导航系统应用 12 第三章 北斗导航定位原理 13 3.1 定位原理概述 13 3.2 北斗导航定位原理 13 3.3 ...

    数据库系统概述.doc

    第1章 数据库系统概述 【考试目的】 考核考生对数据模型、数据库、数据库系统体系结构、数据库管理系统、数据库系 统以及关系、关系模型、关系数据库等基本概念理解的情况。 【考试的知识点】 1.上述常用的数据库...

    通信系统概论.docx

    通信系统概论 § 1.1 数字通信系统的组成 信源信源编码加密器信道编码调制器信道解调器信道译码解密器信源译码信宿噪声源 信 源 信 源 编 码 加 密 器 信 道 编 码 调 制 器 信 道 解 调 器 信 道 译 码 解 密 器 信...

    财产险承保系统

    系统概述 财产险承保系统是一个综合性保险管理系统,涵盖了保险业务的各个方面,包括保险产品设计、销售、承保、理赔等。该系统旨在提高保险业务的效率、降低成本、提高客户满意度。系统的主要特点包括: * ...

    MaxKey:MaxKey是单点登录(SSO)系统,领先的企业级开源IAM(身份和访问管理)产品

    Maxkey(马克思的密钥)单一登录系统,表示最大密钥,领先的企业级开源IAM身份和访问管理产品,支持OAuth 2.0 / OPENID CONNECT,SAML 2.0,JWT,CAS,SCIM和其他标准协议,并提供简单,标准,安全和开放身份管理...

    全球定位系统_北斗双系统定位优势的验证与分析.pdf

    知识点二:北斗卫星导航系统概述 北斗卫星导航系统是中国研发的一种卫星导航系统,旨在提供中国和亚太地区的卫星导航服务。北斗卫星导航系统包括两种类型:北斗一号和北斗二号。北斗一号系统由三颗卫星组成,提供...

    现代通信技术概论试题

    本文将对现代通信技术概论试题进行总结,涵盖通信系统、信道、模拟和数字通信系统、信令网、同步网、管理网、A/D 转换、奈奎斯特定理、量化、码元速率、误码率、时分复用、FDMA、CDMA、TDMA、同步技术等方面的知识点...

    网上报销系统毕业设计论文.pdf

    基于 Struts+Hibernate 的...从这些知识点中,我们可以看到,该毕业设计论文涵盖了 OA 概述、MVC 模式、Struts 框架、Hibernate 框架和财务报销系统等多个方面的知识点,这些知识点都是 IT 行业中的重要概念和技术。

Global site tag (gtag.js) - Google Analytics