`
FengShen_Xia
  • 浏览: 279422 次
  • 性别: Icon_minigender_1
  • 来自: 东方水城
社区版块
存档分类
最新评论

SSO(Single Sign on)-单点登录

    博客分类:
  • Web
阅读更多

     目前的企业应用环境中,往往有很多的应用系统,如办公自动化(OA)系统,财务管理系统,档案管理系统,信息查询系统等等。这些应用系统服务于企业 的信息化建设,为企业带来了很好的效益。但是,用户在使用这些应用系统时,并不方便。用户每次使用系统,都必须输入用户名称和用户密码,进行身份验证;而 且,应用系统不同,用户账号就不同,用户必须同时牢记多套用户名称和用户密码。特别是对于应用系统数目较多,用户数目也很多的企业,这个问题尤为突出。问 题的原因并不是系统开发出现失误,而是缺少整体规划,缺乏统一的用户登录平台。单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

 

一、使用SSO 的好处:

      (1)方便用户

   在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。用户不再需要每次输入用户名称和用户密码,也不需要牢记多套用户名称和用户密码。单点登录平台能够改善用户使用应用系统的体验。

      (2)方便管理员

   系统管理员只需要维护一套统一的用户账号,方便、简单。相比之下,系统管理员以前需要管理很多套的用户账号。每一个应用系统就有一套用户账号,不仅给管理上带来不方便,而且,也容易出现管理漏洞。

      (3)简化应用系统开发

   开发新的应用系统时,可以直接使用单点登录平台的用户认证服务,简化开发流程。单点登录平台通过提供统一的认证平台,实现单点登录。因此,应用系统并不需要开发用户认证程序。

 

二、实现SSO的技术主要有:

      (1)基于cookies实现,需要注意如下几点:如果是基于两个域名之间传递sessionid的方法可能在windows中成立,在 unix&linux中可能会出现问题;可以基于数据库实现;在安全性方面可能会作更多的考虑。另外,关于跨域问题,虽然cookies本身不跨 域,但可以利用它实现跨域的SSO。

      (2)Broker-based(基于经纪人),例如Kerberos等;

   这种技术的特点就是,有一个集中的认证和用户帐号管理的服务器。经纪人给被用于进一步请求的电子的身份存取。中央数据库的使用减少了管理的代价,并为认证 提供一个公共和独立的"第三方"。例如Kerberos、Sesame、IBM KryptoKnight(凭证库思想)等。

      (3)Agent-based(基于代理人)

   在这种解决方案中,有一个自动地为不同的应用程序认证用户身份的代理程序。这个代理程序需要设计有不同的功能。比如, 它可以使用口令表或加密密钥来自动地将认证的负担从用户移开。代理人被放在服务器上面,在服务器的认证系统和客户端认证方法之间充当一个"翻译"。例如 SSH等。

      (4)Token-based,例如SecurID、WebID、

   现在被广泛使用的口令认证,比如FTP,邮件服务器的登录认证,这是一种简单易用的方式,实现一个口令在多种应用当中使用。

      (5)基于网关

      Agent and Broker-based,这里不作介绍。

      (6)基于安全断言标记语言(SAML)实现,SAML(Security Assertion Markup Language,安全断言标记语言)的出现大大简化了SSO,并被OASIS批准为SSO的执行标准。开源组织OpenSAML 实现了 SAML 规范,可参考http://www.opensaml.org

 

三、SUN  SSO技术

      SUN SSO技术是Sun Java System Access Manager产品中的一个组成部分。
      Sun 的新身份管理产品包括Sun Java System Identity Manager、Sun Java System Directory Server Enterprise Edition 和 Sun Java System Access Manager,以上三者为Sun Java Identity Management Suite (身份识别管理套件)的组成部分,它们与Sun Java Application Platform Suite、Sun Java Availability Suite、Sun Java Communications Suite、Sun Java Web Infrastructure Suite组成Java ES。具有革新意义的这一系列产品提供端到端身份管理,同时可与 60 多种第三方资源和技术实现互操作,集成产品可以从SUN公司网站下载,一般以Agent软件方式提供,是业内集成程序最高、最为开放的身份管理解决方案之 一。
   在Sun 的新身份管理产品中,Sun Java System Access Manager是基中的一个重要组成部分,Java Access Manager基于J2EE架构,采用标准的API,可扩展性强,具有高可靠性和高可用性,应用是部署在Servlets容器中的,支持分布式,容易部署 且有较低的TCO。通过使用集中验证点、其于角色的访问控制以及 SSO,Sun Java System Access Manager 为所有基于 Web 的应用程序提供了一个可伸缩的安全模型。它简化了信息交换和交易,同时能保护隐私及重要身份信息的安全。


SUN SSO 实现原理

      SSO的核心在于统一用户认证,登录、认证请求通过IDENTITY SERVER服务器完成,然后分发到相应应用。


      SUN SSO是java Access Manager的一个组成部分,SSO基于Cookie实现解释如下:
      (1)Policy Agent on Web or Application Server intercepts resource requests and enforces access control;

      (2)Client is issued SSO token containing information for session Validation with Session service.

      (3)SSO token has no content- just a long random string used as a handle.

      (4)Web-based applications use browser session cookies or URL rewriting to issue SSO token.

      (5)Non Web applications use the SSO API(Java/c) to obtain the SSO token to validate the users identity.

SUN SSO 的应用

   这里说的应用是指Sun Java System Access Manager的应用。成功应用例子很多,包括德国电信等公司的应用,国内也有大量高校在使用,也有相当多的其它行业的应用。


SUN SSO的开源
      Sun 将发布其网络验证与网络单点登录技术,给一项新的开放源代码计划“Open Web Single Sign-On”(Open SSO)。OpenSSO网站位于:https://opensso.dev.java.net 。 该网站对OpenSSO的概述为:This project is based on the code base of Sun Java(tm) System Access Manager Product, a core identity infrastructure product offered by Sun Microsystems.

      OpenSSO 计划的第一部份源代码,将于今年年底完成,基本的版本将于明年3月份发布,而完整的版本可能要等到明年五月份。Sun 采用与Solaris 操作系统相同的共同开发暨流通授权(Common Development and Distribution License)方式。

 


四、CAS 背景介绍

      CAS(Central Authentication Service),是耶鲁大学开发的单点登录系统(SSO,single sign-on),应用广泛,具有独立于平台的,易于理解,支持代理功能。CAS系统在各个大学如耶鲁大学、加州大学、剑桥大学、香港科技大学等得到应 用。

      Spring Framework的Acegi安全系统支持CAS,并提供了易于使用的方案。Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。Acegi安全系统在国内外得到了广泛的应用, 有着良好的社区环境。

CAS 的设计目标

      (1)为多个Web应用提供单点登录基础设施,同时可以为非Web应用但拥有Web前端的功能服务提供单点登录的功能;

      (2)简化应用认证用户身份的流程;

      (3)将用户身份认证集中于单一的Web应用,让用户简化他们的密码管理,从而提高安全性;而且,当应用需要修改身份验证的业务逻辑时,不需要到处修改代码。

CAS 的实现原理


      CAS(Central Authentication Server)被设计成一个独立的Web应用。实现原理非常简单,CAS Server

CAS 在应用中的运行硬件环境
      University of

      CAS创建一个位数很长的随机数(ticket)。CAS把这个ticket和成功登录的用户以及用户要访问的service联系起来。例如,如果用户 peon重定向自service S,CAS创建ticket T,这个ticket T允许peon访问service S。这个ticket是个一次性的凭证;它仅仅用于peon和仅仅用于service S,并且只能使用一次,使用之后马上会过期,即ticket通过验证,CAS立即删除该ticket,使它以后不能再使用。这样可以保证其安全性。

   关于ST,在取一个ST时,即使用deleteTicket(ticketId)同时将一次性的ST删除;而对于TGT或PT,则通过resetTimer(ticketId)以更新TGT或PT的时间。在CAS服务端返回的ST中只能得出用户名。
      另外,CAS3.0版本也已经发布了,现在最新的版本是3.03,希望CAS3.0在向下兼容的同时,更能向我们提供一些新东西。

分享到:
评论

相关推荐

    CAS单点登录SSO( Single Sign-On)

    CAS(Central Authentication Service)单点登录(Single Sign-On,简称SSO)是一种网络认证协议,旨在简化用户在多个应用系统间的登录流程。当用户通过CAS认证后,可以在无需再次输入凭证的情况下访问已接入CAS的...

    WebSphere环境下的SSO(Single sign-on:单点登录、全网漫游)实现之: -- SSO(Single Sign-On)实现步骤

    本文中作者给大家详细的演示了如何实现WebSphere服务器和webpshere服务器之间的SSO(“单点登录、全网漫游”),并且给大家详细地解释了实现过程中的关键点和相关选项的含义,并且给出了开发带有安全性能要求的web...

    SSO(SingleSign-On)基于YMP框架实现的单点登录服务模块

    SSO (Single Sign-On) 基于YMP框架实现的单点登录服务模块

    SSO-Single-Sign-on实战.docx

    SSO(Single Sign-on)是一种单点登录技术,能够让用户在多个相关的应用程序之间进行身份验证,提高用户体验和安全性。SSO可以分为Web SSO和桌面SSO两种,Web SSO是指客户端的单点登录,而桌面SSO是指操作系统级别的...

    SSO解决方案大全-Single-Sign-On-for-everyone.docx

    单点登录(Single Sign-On,简称SSO)是近年来非常热门的话题。许多客户都有多个运行在.NET框架中的Web应用程序或者多个子域名,而他们希望在不同的域名中只登录一次就可以畅游所有站点。本文将详细介绍如何在各种...

    SSO Single_Sign-on__in_Action(cas)

    单点登录(Single Sign-On, SSO)是一种让用户只需一次登录即可访问多个应用系统的认证机制。这种机制简化了用户体验,提高了工作效率,并在一定程度上增强了安全性。随着企业信息化程度的加深,SSO 成为了现代企业...

    单点登陆(Single Sign On) 简称为 SSO

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

    single-sign-on-v2

    自定义的单点登录系统,可返回各个子系统的登录页及支持CAS Server集群。(https://github.com/liyingqiao121727/single-sign-on-v2)

    SpringBoot整合SSO(single sign on)单点登录

    SpringBoot整合SSO(single sign on)单点登录 单点登录(Single Sign-On,SSO)是一种身份验证机制,允许用户使用一个身份验证凭证访问多个相关的应用程序。SSO解决了多个系统登录的问题,提高了用户体验和工作效率...

    单点登录Single Sign On

    单点登录(Single Sign-On,简称SSO)是一种身份验证机制,它允许用户在通过一次认证后,可以访问多个相互信任的应用系统,而无需再次输入凭证。这种技术大大提升了用户体验,减少了用户记忆和输入多种登录凭据的...

    Single Sign-on

    单点登录(Single Sign-on,简称SSO)是企业级应用集成解决方案中的一个重要组成部分,它旨在提供用户在多个系统和应用程序之间无缝切换的能力,而无需多次输入认证信息。微软为其实现提供了集成服务,如与Microsoft...

    WEBSSO-单点登录

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一次登录后,无需再次输入凭证即可访问多个相互关联的应用系统。它简化了用户在多个应用之间的身份验证过程,提高了用户体验,同时也降低了...

    CAS 单点登录(Single Sign On)

    CAS(Central Authentication Service)单点登录(Single Sign-On,简称SSO)是一种网络认证协议,它允许用户在一次登录后,就能访问多个相互信任的应用系统,而无需再次进行身份验证。这种技术对于大型企业或组织的...

    SSO解决方案大全 Single Sign-On for everyone

    SSO(Single Sign-On)是一种身份验证机制,允许用户在一个应用系统中登录后,无需再次认证即可访问其他关联的系统。这种技术对于拥有多个应用程序或网站的企业尤其有用,可以提高用户体验,减少用户记忆多套登录...

    sso-use-cookie单点登录

    单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。在这个项目中,我们利用SpringBoot框架来实现基于Cookie的SSO。下面将详细解释这个项目的...

    Solution in Detail - SAP NetWeaver Single Sign-On

    SAP NetWeaver SSO 支持无缝的单点登录体验,这意味着用户只需登录一次即可在整个工作日中顺畅地进行各种操作,无需重复输入密码或进行身份验证。这种流畅的用户体验可以显著提高工作效率并减少因反复输入密码造成的...

    tomcat配置ssl-单点登录(sso).rar

    标题中的“tomcat配置ssl-单点登录(sso)”指的是在Apache Tomcat服务器上配置SSL安全套接层,以及实现单点登录(Single Sign-On, SSO)功能。这是一个涉及网络安全和用户认证的重要主题,主要目标是提高Web应用的...

    SSO单点登陆解决方案

    SSO(Single Sign-On)单点登录解决方案旨在提供一个统一的身份验证入口,满足集团多个成员网站的身份验证需求。该方案的主要目标是实现单点登录,提高用户体验,降低成员网站的登录负载,并体现集团大平台、大渠道...

    SSO单点登录解决方案

    SSO(Single Sign-On)单点登录是一种网络访问控制机制,允许用户在一次登录后,无需再次认证即可访问多个相互信任的应用系统。这种技术极大地提高了用户体验,减少了密码管理的复杂性,同时也为管理员提供了更高效...

Global site tag (gtag.js) - Google Analytics