`
gzcj
  • 浏览: 291300 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SSO原理

阅读更多

在结构设计上复用性是一个很重要的特征,昨天半夜我发的系统地非侵入性也是很重要的,有同志邀我看看他的SSO系统,不过看后都我觉得不甚满意,如果要服用的话需要把分散的代码一点点抠出来,然后经过反复的修改调试后才能在新的系统中使用,那位老兄的SSO系统功能可能确实强大,而且还用了新技术,不过在复用性上我看还是没有摆脱集成上的痛苦,作过系统集成的同学们肯定对此深有感触。

昨天才批判了很多同学写东西语焉不详,结果回头就自己给了自己一耳巴子,上几篇关于SSO的描述都不够详细,于是这里在手把手系列里我们来一起看看如何设计一个高度可服用的SSO模块,这里我们假设所有的站点都使用.NET,因为成熟的SSO需要和采用各种不同技术的站点之间实现SSO,于是有JAVA,PHP,COM+,.NET多种形式的PSO模块。这里我们精力有限,所以先假设都用.NET,如果你会JAVA也可以自己用java来实现PSO。

一般来说单点认证都需要两端来完成,在认证中心端的我们称之为SSO,在网站端的模块我们称之为PSO。两个模块之间采用二次重定向技术来实现同步两端票据的方式来实现单点登陆

首先我们就来看看这两个模块式如何配合来完成单点认证的

第一个场景是用户首先访问认证中心登陆再去进入成员网站的情况:

首先是登陆后产生一个SSO的票据,这个票据是最重要的,因为它是决定用户是否登陆的关键。这个票据可以是Cookie,也可以是Session,我比较倾向于Cookie,因为现在有3DES加密,加密后篡改Cookie几乎成为不可能,所以无论是对于服务器负担来说还是安全性都是Cookie比较好,可能人认为万一不支持Cookie呢,不过我想Demo应该没问题吧,大不了我设计成两个都支持:},

PS,为什么不用非对称加密?其实那个效率不高,3DES的安全性已经足够了,至少现在还没有人宣称能破解

在登陆后就可以通知用户你已经登陆了,现在你可以去访问成员站点了,这个时候用户点击了成员站点的URL,进去了,这个时候首先就需要接受PSO组件的盘查,你有没有PSO的票据呢?很显然是没有的,所以这个时候请求就被Redirect回了认证中心,认证中心检查用户已经有了SSO的票据了,认为用户已经登录了,就把用户的SSO票据附加在URL后边然后Redirect回成员站点,成员站点的PSO这个时候获取到了SSO票据,于是知道了用户已经在认证端登录了,于是就创建一个PSO票据,然后返回给用户他所请求的内容。所以我们来看看其实PSO的逻辑更加复杂一点。

SSO的逻辑:

PSO的逻辑:

这里我们可以看到其实两个模块的功能都不算复杂,这里存在几个现实的问题,第一个是加密问题,票据需要加密,传输的URL也需要加密。

还有一个就是上一次我上篇文章里说的,在SSO把票据通过URL发送给PSO的时候,如果我们能够截获这个URL,不管他加没有加密,在下一次我们直接用这个URL去访问站点的时候因为已经包含SSO票据了,所以PSO会认为已经登陆了而直接产生PSO票据然后就让用户进去了,这显然是一个漏洞。所以呢,我们需要在这里给这个URL加一点盐值(所谓盐值其实就是加点料),我们通过在URL里加入时间戳来让这个URL具备时间限制,这个样子URL具备失效期,过了这个时间即使截获到了这个URL也完全没有作用了。

分享到:
评论

相关推荐

    Domino服务器SSO原理

    ### Domino服务器SSO原理详解 #### 一、引言 单点登录(Single Sign-On,简称SSO)是一种用户身份认证技术,允许用户通过一次登录即可访问多个应用系统,而无需再次输入凭证。这种机制提高了用户体验,同时也提升...

    跨域 SSO 原理与技术

    **一、SSO原理** SSO的核心原理是共享用户身份信息。当用户在主域登录成功后,系统会生成一个安全的认证令牌(Token),这个令牌包含了用户的身份信息。当用户尝试访问其他子域时,这些子域可以通过验证该令牌来...

    Portal培訓教材之第7章_常见SSO原理及其实现_FromIBM(7)

    ### Portal培训教材之第7章_常见SSO原理及其实现 #### SSO概念与原理 单点登录(Single Sign-On, SSO)是一种让用户仅需登录一次即可访问多个相互信任的应用系统的解决方案。这种机制极大地提高了用户体验并简化了...

    CAS SSO 原理

    综上所述,CAS SSO原理是通过中心化的认证服务器和分散的客户端协同工作,实现了用户只需一次登录即可访问多个应用系统的功能。这种设计既方便了用户,又简化了系统管理员的身份管理,同时保持了一定的安全性。然而...

    单点登录SSO原理.docx

    SSO的基本原理主要涉及两个核心概念:存储信任和验证信任。当用户成功登录到一个系统(认证系统)后,系统会产生一个信任凭证,并将其发送给用户。然后,用户在访问其他系统时,这些系统能够验证这个信任凭证,从而...

    单点登陆系统SSO原理

    比如在媒体行业,常见的应用系统就有采编系统、排版系统、印刷系统、广告管理系统、财务系统、办公自动化系统、决策支持系统、客户关系管理系统和网站发布系统等。...特别是随着系统的增多,出错的可能性就会增加,受到...

    SSO单点登录实现与实现原理

    本文将深入探讨SSO的实现原理,并结合提供的源代码进行详细讲解。 一、SSO基本原理 1. **中央认证服务(CAS)**:SSO的核心是中央认证服务,它负责验证用户的身份。当用户首次尝试访问受保护资源时,会被重定向到...

    Java EE和Domino系统间跨域SSO的实现

    通过对SSO原理、Cookie机制及跨域SSO挑战的深入理解,配合恰当的技术方案和安全措施,企业能够有效构建高效、安全的多系统集成环境。这一过程虽然复杂,但通过精心规划和细致执行,完全可能实现跨域SSO的顺畅运行,...

    java web sso 实现

    1. **SSO原理**: SSO的核心思想是用户只需一次登录,就能在多个应用之间无缝切换。这通常通过共享身份验证信息和会话状态来实现。在Java Web环境中,常见的实现方式包括使用票据(Ticket)或令牌(Token)。 2. *...

    Laravel开发-sso

    ### SSO 原理 SSO 的核心原理基于共享的身份验证状态。当用户在主系统(也称为认证中心)成功登录后,该系统会创建一个安全的令牌,并将其发送给用户。这个令牌会被存储在用户的浏览器 cookie 中。然后,当用户尝试...

    sso client端1 注销

    1. **SSO原理**: SSO的核心是共享认证信息,通常采用票据(Ticket)或令牌(Token)的方式。用户首次登录SSO服务器时,会获得一个全局有效的认证票据,之后访问其他系统时只需携带此票据即可完成认证,无需再次...

    SSO单点登录.zip

    1. SSO原理:SSO的核心是中央认证服务(CAS),用户在首次登录中央认证服务后,会被授予一个票据或者令牌。之后访问其他系统时,只需验证该票据或令牌,而无需再次输入密码。这样,用户只需要记住一套登录凭证,降低...

    Laravel开发-sso-client-compat

    SSO 的核心原理基于共享的身份验证票据,如 **票据验证服务(Ticket Granting Ticket, TGT)** 和 **服务票据(Service Ticket)**。当用户首次登录时,SSO 服务器会创建一个 TGT,并将其存储在用户的浏览器 cookie ...

    sso server端

    1. SSO原理: SSO的核心是中央认证服务(Central Authentication Service, CAS),用户只需要向CAS提供一次身份验证,然后通过票据(Ticket)或令牌(Token)在其他系统间传递认证信息。这种机制减少了用户记忆多套...

    SSO完整版跨域单点登录

    SSO(Single Sign-On)是单点登录的缩写,是一种网络用户身份验证的机制,允许用户在一次登录后,可以访问多个相互信任的应用系统...无论是学习SSO原理,还是进行企业级应用的开发,这个压缩包都提供了宝贵的参考资料。

    单点登录系统(SSO)+权限管理

    1. **SSO原理**:SSO的核心是中央认证服务(Central Authentication Service,CAS),用户首次登录时,通过CAS进行身份验证,之后访问其他系统时,只需验证由CAS签发的票据(Ticket),而无需再次输入用户名和密码。...

    SSO 安装配置指南beta5

    解决这些问题通常需要对Websphere Portal、DB2、SSO原理以及网络配置有深入的理解。因此,在实际操作时,应遵循IBM提供的官方文档,并根据实际情况调整配置。 总之,SSO的安装配置是一项复杂的工作,需要细心的规划...

    架构师熟悉cas技术方案实现sso

    ##### 2.2 SSO原理 ###### 2.2.1 SSO体系中的角色 在SSO体系中通常包含以下几种角色: 1. **用户**(多个):最终使用SSO服务的个体。 2. **Web应用**(多个):被保护的应用系统,需要SSO认证才能访问。 3. **...

    单点登录系统(SSO)技术实现剖析.PDF

    1. **SSO原理**: SSO的核心思想是用户只需在一个“认证中心”进行身份验证,之后便可以在所有信任该认证中心的应用系统中自由切换,无需再次输入凭证。这通常涉及到两个主要阶段:登录和会话管理。 2. **登录过程...

Global site tag (gtag.js) - Google Analytics