`
limogogogo
  • 浏览: 60718 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

SSO技术应用再讨论

阅读更多

近日学习研究了SSO,有很多疑问想与大家交流。之前发了帖效果不佳,疑惑依然存在。今日将自创的SSO应用方案整理出来,算是抛砖引玉,希望通过交流分析出最佳的应用模式,互进共勉。

目标:整合现有邮件系统、论坛系统、博客系统,实现单点登陆。

面临问题:跨域;应用系统由不同的开发语言编写(如jsp、asp、php、cgi)。

整合要求:考虑历史数据的兼容性、完整性;尽量使应用系统的客户化改造最小、涉及的影响面最小;考虑未来可能使用的系统,预留接口。

方案:整合过程中需新开发统一认证系统,负责用户信息管理。用户信息注册由统一认证系统完成,邮件系统、论坛系统、博客系统中的用户ID与统一认证系统中的用户ID保持一致。即统一认证系统每产生一个用户ID邮件系统、论坛系统、博客系统也要产生相应的用户ID。

采用CAS实现统一验证,用户信息同步应用CAS的Proxy模式。这里重点阐述用户信息同步策略。同步过程主要有两方面,如下:
1、注册新用户
统一认证系统进行用户ID唯一性检查,检查过程依赖于邮件系统、论坛系统、博客系统获取信息,只有全部通过唯一性检查方可注册。
2、登陆应用系统
a、统一认证系统进行身份验证后重定向到应用系统。
b、应用系统获取用户ID,检测本地是否存在该用户ID,如不存在则创建,然后执行登陆操作。

分享到:
评论
8 楼 limogogogo 2007-06-20  
有商业SSO产品称其统一认证系统不限制应用系统开发技术,无需修改(或尽量少改)应用系统,只需为应用系统安装插件即可。很想知道是如何实现的。
7 楼 limogogogo 2007-06-20  
limogogogo 写道
myy 写道
Ivan Li 写道
为什么ID邮件系统、论坛系统、博客系统也要产生相应的用户ID
这样同步起来是不是很麻烦,Oracle OIM是一套完整的用户身份验证解决方案,把用户信息存放在OID中,其SSO 是采用在Apache上加上一个mod_osso来实现的,它可以把用户的信息存放在request header中,每次请求都通过Apache转发。


Apache转发过去的还是OID中的用户信息,“邮件系统、论坛系统、博客系统”如果本身预先没有这些用户,又有什么用呢?
同意5楼的说法。邮件系统、论坛系统、博客系统有各自的验证模块,按Ivan Li 的意思需屏蔽应用系统的验证逻辑,SSO后直接重定向到具体应用系统的主页面。然而这样会带来新的问题,假如应用系统有各自的授权模块,因为SSO用户在应用系统中并不存在,那么授权功能必须重写,即针对统一用户进行分模块授权。如果应用系统采用不同的语言开发,改造的难度会较大且存在风险。考虑到这点,希望尽量能使用原系统功能,所以才提出用户信息同步的想法。其实这个话题应该算老话题了(05年的帖子就有很多人讨论了),有提出用LDAP实现的,本人对LDAP技术并不熟悉,不敢妄下结论,但感觉LDAP更适合于类似OA系统的整合,即系统用户固定,而不像论坛、博客等开放性系统。现在还很迷茫,欢迎大家一同交流。
同意5楼的说法。邮件系统、论坛系统、博客系统有各自的验证模块,按Ivan Li 的意思需屏蔽应用系统的验证逻辑,SSO后直接重定向到具体应用系统的主页面。然而这样会带来新的问题,假如应用系统有各自的授权模块,因为SSO用户在应用系统中并不存在,那么授权功能必须重写,即针对统一用户进行分模块授权。如果应用系统采用不同的语言开发,改造的难度会较大且存在风险。考虑到这点,希望尽量能使用原系统功能,所以才提出用户信息同步的想法。其实这个话题应该算老话题了(05年的帖子就有很多人讨论了),有提出用LDAP实现的,本人对LDAP技术并不熟悉,不敢妄下结论,但感觉LDAP更适合于类似OA系统的整合,即系统用户固定,而不像论坛、博客等开放性系统。现在还很迷茫,欢迎大家一同交流。
6 楼 limogogogo 2007-06-20  
myy 写道
Ivan Li 写道
为什么ID邮件系统、论坛系统、博客系统也要产生相应的用户ID
这样同步起来是不是很麻烦,Oracle OIM是一套完整的用户身份验证解决方案,把用户信息存放在OID中,其SSO 是采用在Apache上加上一个mod_osso来实现的,它可以把用户的信息存放在request header中,每次请求都通过Apache转发。


Apache转发过去的还是OID中的用户信息,“邮件系统、论坛系统、博客系统”如果本身预先没有这些用户,又有什么用呢?
同意5楼的说法。邮件系统、论坛系统、博客系统有各自的验证模块,按Ivan Li 的意思需屏蔽应用系统的验证逻辑,SSO后直接重定向到具体应用系统的主页面。然而这样会带来新的问题,假如应用系统有各自的授权模块,因为SSO用户在应用系统中并不存在,那么授权功能必须重写,即针对统一用户进行分模块授权。如果应用系统采用不同的语言开发,改造的难度会较大且存在风险。考虑到这点,希望尽量能使用原系统功能,所以才提出用户信息同步的想法。其实这个话题应该算老话题了(05年的帖子就有很多人讨论了),有提出用LDAP实现的,本人对LDAP技术并不熟悉,不敢妄下结论,但感觉LDAP更适合于类似OA系统的整合,即系统用户固定,而不像论坛、博客等开放性系统。现在还很迷茫,欢迎大家一同交流。
5 楼 myy 2007-06-20  
Ivan Li 写道
为什么ID邮件系统、论坛系统、博客系统也要产生相应的用户ID
这样同步起来是不是很麻烦,Oracle OIM是一套完整的用户身份验证解决方案,把用户信息存放在OID中,其SSO 是采用在Apache上加上一个mod_osso来实现的,它可以把用户的信息存放在request header中,每次请求都通过Apache转发。


Apache转发过去的还是OID中的用户信息,“邮件系统、论坛系统、博客系统”如果本身预先没有这些用户,又有什么用呢?
4 楼 IvanLi 2007-06-20  
为什么ID邮件系统、论坛系统、博客系统也要产生相应的用户ID
这样同步起来是不是很麻烦,Oracle OIM是一套完整的用户身份验证解决方案,把用户信息存放在OID中,其SSO 是采用在Apache上加上一个mod_osso来实现的,它可以把用户的信息存放在request header中,每次请求都通过Apache转发。
3 楼 clin_7 2007-06-20  
偶最近也遇到这样的问题,不知道兄弟解决了没有?
2 楼 limogogogo 2007-06-18  
请谁有这方面的经验介绍一下,谢谢。
1 楼 limogogogo 2007-06-18  
自己占个沙发先!
不知我的方案是否可行?是否算真正意义上的单点登陆?是否还有更好的方案?欢迎大家讨论。

相关推荐

    .net 简单sso登录

    在这个.NET SSO登录的Demo中,我们将深入探讨实现SSO的关键技术和步骤。 首先,理解SSO的核心概念是必要的。SSO是通过一个中心认证服务(CAS,Central Authentication Service)来完成的,这个服务验证用户的身份后...

    SSO单点登录解决方案

    在"百度_身份认证吧_谈谈应用整合中的单点登录(SSO)系统"讨论中,可能会涉及到实际应用中遇到的问题和解决策略,例如跨域认证、安全策略的设置、多环境下的部署方案等。文件夹".files"通常存储了这些网页的附件,...

    CAS-SSO-TRIAL.zip_CAS_CAS SSO_java sso_sso

    标签"cas"、"cas_sso"、"java_sso"、"sso"进一步强调了主题内容,分别对应CAS服务、CAS的SSO特性、Java环境下的SSO实现以及SSO技术本身。 在压缩包内的文件" CAS-SSO-TRIAL.doc"很可能是一个详细的文档,提供了关于...

    java单点登录的实现与应用整合中SSO的技术实现.docx

    Java 单点登录实现与应用整合中的 SSO 技术实现 Java 单点登录是指在多个系统中,只需要登录一次,就可以访问所有相关系统的功能,提高了用户体验和系统安全性。本文将介绍 Java 单点登录的实现方法,并讨论如何在...

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

    以下将详细讨论如何在不同场景下实现SSO。 1. 虚拟目录的主应用和子应用间实现SSO: 当有两个.NET Web应用程序,如Foo和Bar,其中Bar是Foo的虚拟目录(http://foo.com/bar),且都使用Forms认证。关键在于确保所有...

    sso单点登录

    下面将详细讨论基于SpringBoot实现的SSO框架,以及涉及到的技术如Redis缓存、Cookie、过滤器和拦截器。 **1. SpringBoot与SSO集成** SpringBoot是Spring框架的一个轻量级衍生,简化了配置和部署流程。在构建SSO系统...

    swift-社交分享包含绑定第三方账号SSO应用跳转等

    接下来,我们讨论如何实现应用跳转。在iOS中,这涉及到URL Scheme和Universal Links。URL Scheme允许你的应用注册一个自定义的协议,当用户点击特定链接时,可以启动你的应用。而Universal Links是Apple推出的一种更...

    java单点登录sso源码

    在这个场景中,我们讨论的是基于Java实现的SSO解决方案,主要涉及到Cas(Central Authentication Service)服务器。 Cas是一个开源的SSO协议实现,它由耶鲁大学开发并广泛应用于各种开源和商业项目。Cas服务器作为...

    sso_prog_guide_5_5.pdf

    文档可能会讨论如何在vCenter SSO环境中支持和使用证书,包括证书的安装、配置以及在通信过程中如何验证和使用证书。 12. 使用令牌登录示例(.NET): 通过.NET语言实现的使用令牌进行登录的示例代码可能包含在...

    单点登录(SSO)和无密码技术的攻击研究

    单点登录(SSO)是一种身份验证机制,允许用户使用一个身份验证来访问多个应用程序和系统。SSO的主要优点是提高用户体验和减少密码管理的复杂性。然而,攻击者可以通过各种方式攻击SSO系统,例如,会话劫持、密码...

    web-sso单点登录源码

    本文除了从多个方面和角度给出了对单点登录(SSO)的全面分析,还并且讨论了如何将现有的应用和SSO服务结合起来,能够帮助应用架构师和系统分析人员从本质上认识单点登录,从而更好地设计出符合需要的安全架构

    asp.net sso代码

    SSO技术提高了用户体验,增强了安全性,因为减少了密码泄露的风险。下面将详细讨论ASP.NET SSO的核心概念、实现原理以及相关文件的作用。 **核心概念** 1. **身份验证**:在ASP.NET中,身份验证是指确认用户身份的...

    Yale CAS SSO DotNet Client

    Yale CAS SSO DotNet Client就是为.NET环境设计的,使得.NET开发者能够轻松地在他们的应用程序中集成CAS SSO功能。 DotNetCASClientTest可能是该项目的一个测试工程或者包含测试代码的文件夹。在实际开发中,测试...

    cas sso单点登录

    SSO(Single Sign-On)是现代企业网络环境中提高用户便利性和安全性的重要技术。 在SSO系统中,CAS作为认证服务器,负责验证用户的凭证(如用户名和密码)。当用户尝试访问受CAS保护的应用时,会被重定向到CAS...

    为PHPBB加一个oauth认证方式统一登陆SSO

    随着互联网技术的发展,统一登录系统(Single Sign-On, SSO)已成为网站间资源共享的重要手段之一。它允许用户在一次登录后即可访问多个关联的应用程序,而无需再次输入密码。这种方式不仅提升了用户体验,还加强了...

    FORM 验证AD 并实现SSO

    这里,我们主要讨论如何通过Active Directory(AD)进行基于表单的身份验证,并利用MachineKey来实现Single Sign-On(SSO)功能。 **一、Active Directory (AD)** Active Directory是微软Windows Server操作系统中...

    jforum与web项目的整合(通过Cookie实现SSO)

    标题 "jforum与web项目的整合(通过Cookie实现SSO)" 涉及的是将开源的JForum论坛系统与其他Web应用程序进行集成,并利用Cookie技术实现单点登录(Single Sign-On,简称SSO)。SSO允许用户在一个应用系统中登录后,...

Global site tag (gtag.js) - Google Analytics