单点登录原理简介

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。<br/> 通常情况下运维内控审计系统、 4A 系统或者都包含此项功能,目的是简化账号登录过程并保护账号和密码安全,对账号进行统一管理。

一、概述

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

通常情况下运维内控审计系统、 4A 系统或者都包含此项功能,目的是简化账号登录过程并保护账号和密码安全,对账号进行统一管理。

企业应用集成(EAI, Enterprise Application Integration)。企业应用集成可以在不同层面上进行:例如在数据存储层面上的“数据大集中” ,在传输层面上的“通用数据交换平台” ,在应用层面上的“业务流程整合” ,和用户界面上的“通用企业门户”等等。事实上,还有一个层面上的集成变得越来越重要,那就是“身份认证”的整合,也就是“单点登录” 。

在信息安全管理中,访问控制(Access Controls)环绕四个过程:Identification;Authentication;Authorization;Accountability。单点登录(Single Sign On)属于Authorization 授权系统,除单点登录外还包括:Lightweight Directory AccessProtocol 和 Authorization ticket。(Michael E. Whitman (2011) Management Of Information Security Kennesaw University)

二、技术实现机制

当用户第一次访问应用系统 1 的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个 ticket 带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket 送到认证系统进行效验,检查 ticket 的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统 2 和应用系统 3 了。

单点登录原理简介/

三、技术实现及应用优势

3.1 技术实现

以金万维单点登录为例:

单点登录原理简介/

如图所示:统一的身份认证系统主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对 ticket 进行效验,判断其有效性。整个系统可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。

3.2 应用优势

单点登录:用户只需登录一次,即可通过单点登录系统(eTrueSSO)访问后台的多个 应用系统,二次登录时无需重新输入用户名和密码C/S 

单点登录解决方案:无需修改任何现有的应用系统服务端和客户端即可实现 C/S 单点登录系统

即装即用:通过简单的配置,无须用户修改任何现有 B/S、C/S 应用系统即可使用

应用灵活性:内嵌金万维动态域名解析系统(gnHost),可独立实施,也可结合金万维异速联/天联产品使用基于角色访问控制:根据用户的角色和 URL 实现访问控制功能

全面的日志审计:精确地记录用户的日志,可按日期、地址、用户、资源等信息对日志进行查询、统计和分析

集群:通过集群功能,实现多台服务器之间的动态负载均衡

传输加密:支持多种对称和非对称加密算法,保证用户信息在传输过程中不被窃取和篡改

可扩展性:对后续的业务系统扩充和扩展有良好的兼容性

3.3 存在的问题与需求

奇正藏药集团公司坐落于兰州,在西藏、北京、上海等地拥有多个分子公司,并在全国各大城市设有办事处,随着业务的快速发展与壮大,集团公司已经意识到信息化是实现企业终极目标的重要手段, 自 2000 年开始, 公司先后实施了 ERP、BPM、HR、EIP、企业邮局、腾讯通平台、OA、财务等多套管理系统,实现公司各项业务流程及管理流程的信息化、自动化。然而,随着业务数量的不断增加,各系统之间互不兼容造成的信息共享性差、需要记忆多套密码、客户端维护成本高等问题日益凸显,一些花巨资购买并实施数月的系统运用效果远不如预期理

想。

为了确保业务的高效运行与管理的高效执行,企业急需优化信息化方案:

第一, 如何实现公司各种业务流程及信息资源的全面整合?

第二, 如何简化各种信息系统的使用方式,降低使用成本?

第三, 如何降低信息系统维护与管理成本?

3.4 解决方案

实现资源整合:

为了解决第一个问题,即实现各信息系统之间的全面整合,集团公司引进了企业信息门户(EIP),即将各种应用系统(诸如 ERP、BPM、HR、OA、企业邮局等)、数据资源和互联网资源统一集到企业信息门户之下,根据每个用户使用特点和角色的不同,形成个性化的应用界面,并通过对事件和消息的处理、传输把用户有机地联系在一起。

简化系统应用:

在实施 EIP 的过程中,集团公司使用金万维单点登录 eTureSSO 解决用户需要记录多个系统账号的问题,用户只需要在第一次访问信息系统时,输入用户名与密码,以后再访问同一个系统资源时,无需再次输入,由单点登录系统自动登录。

降低信息维护成本:

金万维异速联(E-SoonLink)实现 C/S 分布式软件的集中式部署,将管理系统服务器端与客户端统一部署在客户服务器中心,任何授权客户机都能够以 WEB 形式访问,并更新数据,轻松实现了系统在广域网中的局域网应用。奇正藏药集团在实施异速联系统之后,无需在每个用户客户机安装每套信息系统的客户端软件,因此对客户机硬件配置要求降低,另外,无需对每个客户机进行安装配置和维护,大大减少了安装维护的工作量,降低了用户数量日益增长所产生的信息化成本。

四、单点登录 SSO 的实现原理(来源 CSDN)

单点登录 SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任, 再就是其他系统如何验证这个信任的有效性,因此要点也就以下几个:

A.存储信任

B.验证信任

只要解决了以上的问题,达到了开头讲得效果就可以说是 SSO。最简单实现 SSO 的方法就是用 Cookie,实现流程如下所示:

单点登录原理简介

不然发现以上的方案是把信任存储在客户端的 Cookie 里,这种方法虽然实现方便但立马会让人质疑两个问题:

A. Cookie 不安全

B. 不能跨域免登

对于第一个问题一般都是通过加密 Cookie 来处理,第二个问题是硬伤,其实这种方案的思路的就是要把这个信任关系存储在客户端,要实现这个也不一定只能用 Cookie,用 flash 也能解决,flash 的 Shared Object API 就提供了存储能力。一般说来,大型系统会采取在服务端存储信任关系的做法,实现流程如下所示:

单点登录原理简介

以上方案就是要把信任关系存储在单独的 SSO 系统(暂且这么称呼它)里,说起来只是简单地从客户端移到了服务端,但其中几个问题需要重点解决:

A. 如何高效存储大量临时性的信任数据

B. 如何防止信息传递过程被篡改

C. 如何让 SSO 系统信任登录系统和免登系统

对于第一个问题,一般可以采用类似与 memcached 的分布式缓存的方案,既能提供可扩展数据量的机制,也能提供高效访问。对于第二个问题,一般采取数字签名的方法,要么通过数字证书签名,要么通过像 md5 的方式,这就需要 SSO 系统返回免登 URL 的时候对需验证的参数进行 md5 加密,并带上 token 一起返回,最后需免登的系统进行验证信任关系的时候,需把这个 token 传给 SSO 系统,SSO 系统通过对 token 的验证就可以辨别信息是否被改过。对于最后一个问题,可以通过白名单来处理,说简单点只有在白名单上的系统才能请求生产信任关系,同理只有在白名单上的系统才能被免登录。

以上只是提供了些简单的实现技术,但需要强调的是这只是技术实现而已,仅仅是为了解决上面谈到的一些问题,SSO 本身来说并不是什么高科技,有了这个认识比较有利于我们深入探索 SSO。

看书和学习是思想的经常营养,是思想的无穷发展。 —— 冈察洛夫
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号