`
ziffwong
  • 浏览: 6192 次
社区版块
存档分类
最新评论

单点登录SSO:概述与示例

阅读更多

原文地址:http://www.cnblogs.com/baibaomen/p/sso.html 。转载须保留。

 

单点登录SSO概述

本系列将由浅入深的,带大家掌握最新单点登录SSO方案选型,以及架构开发实战。系列将结合示例、源码以及演示视频,让大家能够直观、深入学习。

文末附5个满足不同单点登录场景的gif动画演示。本系列后继文章会深入它们的实现方式以及适用场景,大家也可以先观看揣摩其实现。

单点登录即Single Sign On(SSO)。它是大型政府OA、企事业单位OA的标配解决方案。它概言之就是在多个Web、桌面或移动应用系统中,用户只需要登录一次,就可以访问所有的应用系统。

从业十多年,为政府、电信、跨国公司顾问和实施的单点登录解决方案无数,深谙其痛点与关键。

和很多人直观猜测相反,单点登录方案的定制性很强。很多企业的单点登录,实施是有问题的。尤其是被一些软件产品的销售人员牵着走的企业,它的单点登录方案实施,从产品方案选型起就存在根本性问题。这些方案常常要求大量现有业务系统的改造(基于统一身份认证服务,采用OpenId,OAuth,SAML等技术创建和传递认证凭据),或者只是体验较差的类似浏览器自动填充账号密码的功能(如Oracle的ESSO)。它们要么改动面大、周期长,要么服务端和客户端局限性多,用户体验也达不到最佳。

事实上,单点登录的实施环境与需求千差万别:有纯Web的(常见又分跨域不跨域的),有桌面应用的,有移动平台的,有要结合Windows登录凭据的,有整合了标准方案的,有不能改动现存系统的,等等等等。最适合企业的方案,一定需要结合企业应用种类、各系统供应商状况、终端要求、后期扩展性需求、实施成本工期来具体确定。

很多单点登录解决方案的实施,由于顾问的经验、视野或产品倾向性原因,往往导致了这些结果:

1. 明明可以不需要改造被集成系统的,偏偏处处受困于诸多被集成系统的改造。

这个是很多开源免费或者商用的单点登录产品,在实施时最普遍遇到的情况。它们往往基于统一身份认证服务,采用OpenId,OAuth,SAML等技术创建和传递认证凭据,要求各个被集成应用按照相应接口开发。对于不同厂商在不同技术平台、不同维护时间、不同业务场景下构造的多个系统,要求统一按照方案接口标准做改造,其难度可想而知。见过不止一家厂商,他们的业务系统在客户那边已经上线运行,客户后来提出单点登录的集成要求,于是为了快速完工,完全不遵循业界安全规范,采用最简单暴力的方式进行集成,结果导致严重的安全漏洞。

其实,百分之九十以上的业务场景,我们都可以通过不止一种方式,在不改造现有系统的情况下,实现它对单点登录的支持。下文会给出多个示例、github源码,以及演示视频。

2. 明明可以在移动端、桌面端实现跨平台单点登录的,偏偏依赖于特定终端,甚至特定浏览器。

有一家跨国公司,选型某知名软件做单点登录解决方案,它的优点是对被集成系统可以零改造,但只支持Windows终端,因为它有一个Windows程序要安装到每个用户机器上。我作为实施顾问参与时,发现其中绝大部分用户常用的系统都是几个Web系统,完全可以通过实施服务端零改造的SSO方案,避免向他们机器推送一个要按终端数购买授权的应用。这类应用不但授权费用高昂(每终端数千元),而且部署维护成本高、很多设备环境和个性化浏览器下会出兼容性问题。

3. 明明可以和统一身份认证(Identity Authentication)、统一身份管理(Identity Management)分开实施的,偏偏被“忽悠”买了数百万的打包解决方案。

SSO和这两者在应用场景和一些实施方案上有交集,使得很多实施顾问会利用这点,让很多企业不明就里的“明明只想剪个头发,结果买了美容保养年卡,而且头发还剪得不好”。

统一身份认证,往往和多个Web应用基于服务端做SSO的方案绑定销售。对于有多个Web应用要做服务端SSO的,尤其是包含多个跨一级域名应用的,常常被推荐部署独立的统一身份认证服务产品,然后让各个应用针对它的接口做开发集成。让各个Web或桌面、移动应用,集成、识别并认可其认证凭据,还要和该服务器安全交换用户身份信息,是一个不小的挑战。现有各个系统的服务商是否还会及时的配合开发本身已是一个大问题,即使他们配合,在一个环节出现问题就会是严重的安全漏洞。

统一身份管理主要是针对企业账户安全领域。它的主要作用,简而言之就是在一个地方管理所有系统账号的创建和终止,避免一个员工离职要到多个应用管理部门做账号删除,很容易出现漏删账号,导致企业信息安全问题。针对很多大型组织架构来讲,它确实也非常必要,我个人实施顾问的很多企业确实也非常需要,后面我会撰文详述这一块的经验心得。这方面现成产品有诸如Oracle的OIM,IBM的Tivoli IM,都是光买授权就动辄上百万的产品(具体费用和用户数、服务器等相关),它们的特点是针对很多大型应用诸如SAP、Lotus Notes等等都有现成的连接器来做账号资源的推拉(Provision/Reconciliation)。但对于没有现成连接器的产品,需要定制开发,这块对于实施人员要求很高,而且后期的维护、新应用的集成基本都完全依赖第三方,成本高昂。

4. 明明可以精干团队一个月实施完的,偏偏劳师动众多个供应商、多个部门折腾三四个月。

SSO实施和业务系统开发不同,它是技术点密集但工作量少的业务。如果你的开发人员还要为“如何跨域传token”、“如何读写AD”之类现学摸索,那实施结果往往存在较大安全漏洞,也会导致工期不可预测。这一块的很多现成产品都有特定的实施要求和局限性(本人曾填坑Oracle的OIM 和 ESSO),加之实施人员对产品熟悉程度不一,导致企业稍有自身特定的情况,就会要花费大量工时研究调整,甚至最终无法按需交付。

单点登录SSO方案示例

先来几组单点登录方案演示吧,本系列后继文章会深入它们的具体实现方式以及适用场景。 

演示一:零改造单点登录CSDN、百度

零改造实施CSDN、百度单点登录|手把手教单点登录|百宝门-SSO顾问|baibaomen@gmail.com

演示二: 单点注销

单点注销|手把手教单点登录|百宝门-SSO顾问|baibaomen@gmail.com

演示三:集成AD认证

集成AD认证|手把手教单点登录|百宝门-SSO顾问|baibaomen@gmail.com

演示四:客户端单点登录QQ、VPN

客户端单点登录|手把手教单点登录|百宝门-SSO顾问|baibaomen@gmail.com

演示五:移动端单点登录

移动端单点登录|手把手教单点登录|百宝门-SSO顾问|baibaomen@gmail.com

原文地址:http://www.cnblogs.com/baibaomen/p/sso.html 。转载须保留本链接。

本系列各篇链接:

单点登录-SSO:概述与示例 http://www.cnblogs.com/baibaomen/p/sso.html

单点登录-SSO:图示和讲解 http://www.cnblogs.com/baibaomen/p/sso-sequence-chart.html

单点登录-SSO:一键运行的完整代码 http://www.cnblogs.com/baibaomen/p/sso-full-code.html

 

本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。

我的博客欢迎复制共享,但在同时,请保留原文地址以及我的署名权百宝门-SSO顾问,并且,不得用于商业用途。

如您有任何疑问或者授权方面的协商,请给我邮件。 


博客园专栏:
百宝门-SSO顾问

我的公众号“百宝门”

 

 

分享到:
评论

相关推荐

    exchange邮件系统单点登录整合

    #### 一、单点登录(Single Sign-On, SSO)概述 单点登录是一种认证机制,允许用户通过一次身份验证就能访问多个应用程序和服务,而无需重复登录。这种机制提高了用户体验并增强了安全性。在企业环境中,Exchange...

    SSO文档 单点登录

    #### 一、单点登录(SSO)概述 单点登录(Single Sign-On,简称SSO)是一种身份验证机制,它允许用户一次登录后,可以在多个应用系统中无需再次输入用户名和密码就可以访问这些系统。这种机制极大地提高了用户体验,...

    ASP.NET单点登录技术的概述

    ### ASP.NET单点登录技术的概述 随着信息技术和网络技术的迅速发展,现代企业面临着越来越多的应用系统集成问题。为了提高用户体验、简化管理流程并增强安全性,单点登录(Single Sign-On,SSO)技术应运而生。本文...

    跨服务器登录验证(单点登录SSO)的过程和Java实现.docx

    ### 跨服务器登录验证(单点登录SSO)的过程与Java实现 #### 一、单点登录(SSO)概述 单点登录(Single Sign-On,简称SSO)是一种身份验证机制,它允许用户只需进行一次登录操作即可访问多个应用系统。这种机制极大地...

    sso单点登录入门

    SSO(Single Sign-On,单点登录)是现代企业级系统中一项关键的安全与便捷性技术,旨在提升用户在多个关联应用之间的登录体验。SSO的核心理念在于用户只需在一个应用中完成身份验证,即可无缝访问所有授权的关联应用...

    SSO\CAS 单点登录配置手册

    #### 一、单点登录(SSO)概述 单点登录(Single Sign-On, SSO)是一种让用户只需一次登录就能访问多个应用系统的认证方式。它不仅提升了用户体验,同时也提高了系统的安全性,因为用户不需要记住多个不同的密码。 ###...

    说明文档---基于对称加密的简单单点登录系统sso-NET-csharp版本

    ### 基于对称加密的简单单点登录系统(SSO)—— .NET C# 版本 #### 一、概述 本文档旨在详细解释一个基于对称加密的简单单点登录系统的设计与实现原理,该系统适用于.NET平台下的C#开发环境。通过本文档,读者将...

    单点认证(sso)

    #### 一、单点认证(SSO)概述 - **定义**:单点认证(Single Sign-On,简称SSO)是一种认证机制,允许用户通过一次登录即可访问多个相互关联的应用系统或服务,而无需重复登录。这种机制简化了用户的操作流程,提高了...

    淘淘商城-SSO接口.docx

    ### 淘淘商城单点登录(SSO)接口解析 #### 一、概述 随着互联网技术的发展,用户体验逐渐成为衡量一个网站或应用成功与否的重要标准之一。为了提高用户体验,简化用户的登录过程,单点登录(Single Sign-On,简称...

    nc63、nc65单点登录方案

    单点登录(Single Sign-On,简称SSO)是一种用户只需要一次登录就能访问所有相互信任的应用系统的认证方式。这种机制不仅提升了用户体验,同时也提高了系统的安全性与管理效率。本文档主要介绍了nc63及nc65版本中的...

    .NET单点登录

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

    SAML v2.0 开发指南 SSO必备

    SAML(安全断言标记语言)v2.0是一种开放标准,用于实现Web浏览器中的单点登录(SSO)。SAML提供了一种机制,允许用户通过使用现有的身份验证凭证从一个地方安全地访问多个应用程序。这种方式可以改善用户体验并降低...

    其他系统与domino系统单点登录的实现方式.docx

    ### 其他系统与Domino系统的单点登录(SSO)实现 #### 一、引言 随着企业信息化建设的不断深入,多个独立的应用系统之间的数据共享和业务协同变得日益重要。为了提升用户体验,减少重复登录操作,单点登录(Single ...

    简单实现web单点登录

    在IT行业中,Web单点登录(Single Sign-On,简称SSO)是一种常见的身份验证机制,它允许用户通过一次登录即可访问多个相互关联的应用系统,提高了用户体验并降低了管理复杂性。本教程将指导你如何使用J2EE技术,特别...

    kingdee单点登录方案

    金蝶公司提供的单点登录(Single Sign-On,简称SSO)解决方案,旨在提高企业内部多个应用程序间的安全性与用户体验。通过实施SSO,用户只需一次登录即可访问所有授权的应用程序,无需重复输入用户名和密码。本文档...

    CAS单点登录之测试应用

    标题中的"CAS单点登录"是指Central Authentication Service(中央认证服务),它是一种广泛使用的开源单点登录(Single Sign-On, SSO)系统。SSO允许用户通过一次登录就能访问多个应用系统,而无需反复输入用户名和...

    MVC单点登录

    MVC与SSO概述** - **MVC模式**:Model负责业务逻辑,View负责数据展示,Controller处理用户请求并协调Model和View,三者分离使得代码结构清晰,易于维护。 - **SSO原理**:基于票据(Token)的认证方式,用户登录...

Global site tag (gtag.js) - Google Analytics