`
_瑾至微光_
  • 浏览: 2774 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

【转】单点登录

sso 
阅读更多
概述:
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。   通常情况下运维内控审计系统、4A系统或者都包含此项功能,目的是简化账号登陆过程并保护账号和密码安全,对账号进行统一管理。   企业应用集成(EAI, Enterprise Application Integration)。企业应用集成可以在不同层面上进行:例如在数据存储层面上的“数据大集中”,在传输层面上的“通用数据交换平台”,在应用层面 上的“业务流程整合”,和用户界面上的“通用企业门户”等等。事实上,还有一个层面上的集成变得越来越重要,那就是“身份认证”的整合,也就是“单点登 录”。   在信息安全管理中,访问控制(Access Controls)环绕四个过 程:Identification;Authentication;Authorization;Accountability。单点登录(Single Sign On)属于Authorization授权系统,除单点登录外还包括:Lightweight Directory Access Protocol 和 Authorization ticket。(Michael E. Whitman (2011) Management Of Information Security Kennesaw University)
技术实现机制:
当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该 返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把 ticket送到认证系统进行效验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
技术实现:
以金万维单点登录为例:
  如图所示:统一的身份认证系统主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录 认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。整个系统 可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。
应用优势:
单点登录:用户只需登录一次,即可通过单点登录系统(eTrueSSO)访问后台的多个 应用系统,二次登陆时无需重新输入用户名和密码   C/S单点登录解决方案:无需修改任何现有的应用系统服务端和客户端即可实现C/S单点登录系统   即装即用:通过简单的配置,无须用户修改任何现有B/S、C/S应用系统即可使用   应用灵活性:内嵌金万维动态域名解析系统(gnHost),可独立实施,也可结合金万维异速联/天联产品使用   基于角色访问控制:根据用户的角色和URL实现访问控制功能

全面的日志审计:精确地记录用户的日志,可按日期、地址、用户、资源等信息对日志进行查询、统计和分析   集群:通过集群功能,实现多台服务器之间的动态负载均衡   传输加密:支持多种对称和非对称加密算法,保证用户信息在传输过程中不被窃取和篡改   可扩展性:对后续的业务系统扩充和扩展有良好的兼容性
存在的问题与需求:
奇正藏药集团公司坐落于兰州,在西藏、北京、上海等地拥有多个分子公司,并在全国各大城市设有办事处,随着业务的快速发展与壮大,集团公司已经意识到信息 化是实现企业终极目标的重要手段,自2000年开始,公司先后实施了ERP、BPM、HR、EIP、企业邮局、腾讯通平台、OA、财务等多套管理系统,实 现公司各项业务流程及管理流程的信息化、自动化。然而,随着业务数量的不断增加,各系统之间互不兼容造成的信息共享性差、需要记忆多套密码、客户端维护成 本高等问题日益凸显,一些花巨资购买并实施数月的系统运用效果远不如预期理想。   为了确保业务的高效运行与管理的高效执行,企业急需优化信息化方案:   第一, 如何实现公司各种业务流程及信息资源的全面整合?   第二, 如何简化各种信息系统的使用方式,降低使用成本?   第三, 如何降低信息系统维护与管理成本?
解决方案:
实现资源整合:   为了解决第一个问题,即实现各信息系统之间的全面整合,集团公司引进了企业信息门户 (EIP),即将各种应用系统(诸如ERP、BPM、HR、OA、企业邮局等)、数据资源和互联网资源统一集到企业信息门户之下,根据每个用户使用特点和 角色的不同,形成个性化的应用界面,并通过对事件和消息的处理、传输把用户有机地联系在一起。   简化系统应用:   在实施EIP的过程中,集团公司使用金万维单点登录eTureSSO解决用户需要记录多个系统账号的问题,用户只需要在第一次访问信息系统时,输入用户名与密码,以后再访问同一个系统资源时,无需再次输入,由单点登录系统自动登录。   
降低信息维护成本:   金万维异速联(E-SoonLink)实现C/S分布式软件的集中式部署,将管理系统服务器端 与客户端统一部署在客户服务器中心,任何授权客户机都能够以WEB形式访问,并更新数据,轻松实现了系统在广域网中的局域网应用。奇正藏药集团在实施异速 联系统之后,无需在每个用户客户机安装每套信息系统的客户端软件,因此对客户机硬件配置要求降低,另外,无需对每个客户机进行安装配置和维护,大大减少了 安装维护的工作量,降低了用户数量日益增长所产生的信息化成本。





===============================================================
近来搞了一下单点登录。
我们弄的单点登录估计是最简单的。
【概要原理】:
假设有2个应用站点A和B,都需要登录才可以访问,另外有一个专门负责登录的站点SSO。
现在有个用户访问站点A,站点A会先检查该用户是否已经登录,如果已经登录,则返回相应页面;否则转向SSO进行登录,登录成功后,转回站点A,返回请求的相应页面。
接着,该用户又访问站点B。同样,站点B会先检查该用户是否已经登录。这时候发觉是已经登录,于是直接返回请求的相应页面。
这就是单点登录,一次登录,处处通行。
【细节原理】
如何知道用户是否登录?
在SSO登录的时候,会将登录信息记入SSO的COOKIE;返回应用站点A或B时,同时将登录信息记入A或B的COOKIE。因此,登录信息在SSO和应用站点各有一份。
当有用户请求页面的时候,应用站点先检查自身的COOKIE,有的话,就表示已经登录,没有才转向SSO进行登录。
转到SSO的时候,SSO也先检查自己的COOKIE,看是否已经登录,有的话则自动转回应用站点,告诉应用站点该用户已经登录;如果没有COOKIE,才出现登录界面,让用户进行登录。因此,无论哪个应用站点先登录,SSO都有COOKIE,从而实现单点登录。
SSO上的COOKIE应该是永久性COOKIE或者时间比较长的COOKIE,例如2周,1个月,等等;而应用站点的COOKIE是临时性COOKIE,浏览器关掉就会消失那种。
【登出】
步骤是先清除应用站点的登录COOKIE,然后转到SSO清除SSO的COOKIE。
由此可知,单点登录不等于单点登出,站点A登出以后,站点A和SSO的COOKIE都被清除,但站点B的COOKIE还在,它并不知道已经登出了,除非浏览器被关掉,否则它还可以正常运行。
看起来这是一个BUG。不过,对安全性要求不高的情况下,并不会出现很大的问题。
后记
其实,要实现单点登出也不难,就是所有应用单点登录的站点,其COOKIE的Domain都指向一级域名(注意,www.abc.com是二级,abc.com才是一级)。如下:
cookie.Secure = false;
cookie.Domain = ".abc.com";
这样,某个子站点登出以后,修改了这个cookie;而其他子站点也是读这个COOKIE,当然知道已经登出了。
分享到:
评论

相关推荐

    单点登录cas源码

    单点登录(Single Sign-On, SSO)是一种网络认证机制,允许用户在一次登录后,就能访问多个相互信任的应用系统,而无需再次进行身份验证。CAS(Central Authentication Service)是单点登录的一种实现,它是一个开源...

    .NET单点登录

    ### .NET单点登录(SSO)详解 #### 一、单点登录(SSO)概述 单点登录(Single Sign-On,简称SSO)是一种身份验证机制,它允许用户使用一个账号即可访问所有受保护的应用程序或网站,而无需在每个应用中重复登录。通过...

    SSO单点登录解决方案

    ### SSO单点登录解决方案详解 #### 一、单点登录概述 单点登录(Single Sign-On,简称SSO)是一种先进的解决方案,旨在通过让用户仅需登录一次即可访问所有相互信任的应用系统,从而提高用户体验并简化安全管理。...

    单点登录技术接口

    单点登录技术接口 单点登录技术接口是指用户浏览器、业务系统和认证中心在用户每次访问系统时,进行身份验证过程中的技术要求。单点登录的主要优点是提供了一个集中式的身份验证机制,确保用户在访问不同的业务系统...

    cas单点登录

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次输入凭证即可访问多个相互信任的应用系统。CAS(Central Authentication Service)是 Yale 大学开源的一个单点...

    宁盾单点登录(SSO)与致远A8对接方案.pdf

    宁盾单点登录(SSO)与致远A8的对接方案主要针对现代企业日益增长的信息化需求,尤其是在企业移动化转型过程中,如何确保安全、高效地管理多种应用系统。以下是对该方案的详细说明: 1. **统一身份管理(IAM)**: ...

    TAMESSO单点登录方案建议书

    《TAMESSO单点登录方案建议书》深入探讨了企业级单点登录(Single Sign-On,SSO)解决方案的设计与实施,旨在解决现代企业环境中因多应用、多平台访问而导致的身份验证复杂性与安全风险。本文将从需求分析、技术方案...

    [转]单点登录SSO:使用casserver

    单点登录(Single Sign-On,简称SSO)是一种网络认证机制,允许用户在一次登录后,可以在多个相互关联的应用系统间自由切换,而无需再次进行身份验证。这大大提升了用户体验,减少了用户记忆多个账号和密码的负担,...

    单点登录实现 Spring_security+CAS

    单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。Spring Security是Java领域一个强大的安全框架,它提供了全面的安全性解决方案,包括身份...

    基于Web单点登录的研究与实现

    ### 基于Web单点登录的研究与实现 #### 引言 随着教育信息化的步伐加快,校园网络的建设与发展已成为教育领域不可忽视的趋势。在这一背景下,各高校纷纷投入资源,构建数字化校园环境,旨在利用现代化的信息技术...

    企业级单点登录系统模型的设计与实现.pdf

    然而,现有的单点登录模型如基于经纪人的单点登录、基于代理的单点登录和基于网关的单点登录,各自存在一定的局限性。基于此,本文提出了一种结合代理人和经纪人优势的单点登录系统模型,旨在克服现有模型的不足,...

    单点登录源码

    单点登录, SSM框架公共模块 ├── zheng-admin -- 后台管理模板 ├── zheng-ui -- 前台thymeleaf模板[端口:1000] ├── zheng-config -- 配置中心[端口:1001] ├── zheng-upms -- 用户权限管理系统 | ├── ...

    单点登录CAS与权限管理框架Shiro集成

    ### 单点登录CAS与权限管理框架Shiro集成 #### 一、概述 单点登录(Single Sign-On,简称SSO)是一种常见的身份验证技术,它允许用户通过一次登录即可访问多个应用程序和服务。这种机制提高了用户体验,同时也简化...

    PHP版单点登陆实现方案

    单点登录是企业及网络业务中用户处理的一个重要组成部分,它允许用户在多个相互信任的应用系统之间只需进行一次登录操作即可访问所有应用系统,从而提升用户体验和系统的安全性。 一、单点登录技术实现机制 单点...

    宁盾单点登录(SSO)与SAP对接方案.docx

    宁盾单点登录(SSO)与SAP对接方案旨在解决现代企业中多应用系统登录繁琐、安全性低的问题。随着企业向移动化转型,传统的网络安全措施已经无法满足需求,因此引入了以身份为核心的身份和访问管理(IAM)系统。SSO...

    编写你自己的单点登录服务

    单点登录(Single Sign-On,简称SSO)作为一种先进的安全技术,正日益广泛地应用于各类软件系统之中,尤其是在大型企业内部。SSO的核心价值在于它能够实现用户在多个相互信任的应用系统中的统一身份认证,即用户只需...

    C#.NET的SSO单点登录BLL部分

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在C#.NET环境中实现SSO,主要是通过利用.NET Framework提供的身份验证和授权服务,以及第...

    微博Oauth2.0 协议用java 实现单点登录获取用户信息

    在Java中实现微博的单点登录(Single Sign-On, SSO)功能,涉及到的主要步骤包括注册应用、获取授权码、交换访问令牌、获取用户信息等。下面我们将详细探讨这些过程。 1. **注册应用**: 在开始实现之前,你需要在...

Global site tag (gtag.js) - Google Analytics