`
shallon
  • 浏览: 73235 次
  • 性别: Icon_minigender_2
  • 来自: 0
文章分类
社区版块
存档分类
最新评论
阅读更多
业务场景:
跨域的融合应用,企业内网的自动化办公应用与放置在公网上的应用集成

流程:

1、用户通过浏览器登陆集成的门户<o:p></o:p>

2、集成的门户返回页面,用户选择外域提供的功能链接<o:p></o:p>

3、链接发送到跨域接口模块<o:p></o:p>

4、跨域接口模块解密藏在cookie中的集成门户颁发的登陆票,获取userid,跨域接口模块生成一个重定向到外域应用门户网页,并将用户ID及本域服务器身份认证信息放置到自动提交的隐藏表单中。隐藏表单的提交地址是外域的页面地址<o:p></o:p>

5、跨域接口模块把网页返回给浏览器,浏览器自动提交隐藏表单,请求发送外域WEB服务器。外域服务器登陆用户。<o:p></o:p>

<o:p> </o:p>

特点:<o:p></o:p>

1、后续请求不过跨域接口模块,直接与外域WEB服务器连接<o:p></o:p>

2、对同一个用户,本域WEB服务器与外域WEB服务器维护的是独立的两个COOKIE,有独立的超时时间。本域应用用户logout后,外域应用会话有可能还存活。<o:p></o:p>

3、基于安全考虑,本域的传递到外域服务器的信息可以进行加密。<o:p></o:p>

<o:p></o:p>



分享到:
评论
10 楼 downpour 2008-05-28  
登录信息的管理中心一旦建立,就会造成所有的系统都对这个管理中心产生依赖。如果这个管理中心无法正常工作呢?是不是所有的系统都倒了?

我还是倾向Session信息使用各自系统自己的,在Session上做一些处理,针对用户登录信息,到统一的地方去读比较好。不要让这个统一的地方有处理功能,因为那个依赖性太强。仅让其作为一个存储空间并具备超时机制就可以了。
9 楼 香克斯 2008-05-28  
有很多所谓的登陆的话,就是从统一登录系统中想办法把用户信息传递到另外的系统。这似乎是多家企业开发的系统要作统一登录的惯用方案,实现也比较简单,反正就是一个转发,session都是自己系统的。不过如果是新系统的话,还是fins说的建立一个登录信息的管理中心比较好,将来要做什么改变或者扩展也好弄。
8 楼 fkpwolf 2007-10-08  
不是有个开源的sso实现的么
7 楼 囡囡猫 2007-10-05  
我们单位的SSO场景:其他厂商的系统一点都不能更改。我们打算采用shallon的方案。
有一点疑问:
1。"...藏在cookie中的集成门户颁发的登陆票..."

登陆票的结构和生成规则是什么样子的?

2。"...并将用户ID及本域服务器身份认证信息放置到自动提交的隐藏表单中"

隐藏表单的作用很明显,只是里面的密码隐藏域存放的是密码明文吗?

6 楼 pikachu 2007-09-10  
<br/>
<strong>shallon 写道:</strong><br/>
<div class='quote_div'>业务场景:<br/>
跨域的融合应用,企业内网的自动化办公应用与放置在公网上的应用集成<br/>
<br/>
流程:<br/>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''>1</span><span style=''>、用户通过浏览器登陆集成的门户</span><span lang='EN-US' style=''>&lt;o:p&gt;&lt;/o:p&gt;</span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''>2</span><span style=''>、集成的门户返回页面,用户选择外域提供的功能链接</span><span lang='EN-US' style=''>&lt;o:p&gt;&lt;/o:p&gt;</span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''>3</span><span style=''>、链接发送到跨域接口模块</span><span lang='EN-US' style=''>&lt;o:p&gt;&lt;/o:p&gt;</span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''>4</span><span style=''>、跨域接口模块解密藏在<span lang='EN-US'>cookie</span>中的集成门户颁发的登陆票,获取<span lang='EN-US'>userid</span>,跨域接口模块生成一个重定向到外域应用门户网页,并将用户<span lang='EN-US'>ID</span>及本域服务器身份认证信息放置到自动提交的隐藏表单中。隐藏表单的提交地址是外域的页面地址</span><span lang='EN-US' style=''>&lt;o:p&gt;&lt;/o:p&gt;</span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''>5</span><span style=''>、跨域接口模块把网页返回给浏览器,浏览器自动提交隐藏表单,请求发送外域<span lang='EN-US'>WEB</span>服务器。外域服务器登陆用户。<span lang='EN-US'>&lt;o:p&gt;&lt;/o:p&gt;</span></span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''>&lt;o:p&gt; &lt;/o:p&gt;</span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span style=''>特点:<span lang='EN-US'>&lt;o:p&gt;&lt;/o:p&gt;</span></span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''>1</span><span style=''>、后续请求不过跨域接口模块,直接与外域<span lang='EN-US'>WEB</span>服务器连接<span lang='EN-US'>&lt;o:p&gt;&lt;/o:p&gt;</span></span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''>2</span><span style=''>、对同一个用户,本域<span lang='EN-US'>WEB</span>服务器与外域<span lang='EN-US'>WEB</span>服务器维护的是独立的两个<span lang='EN-US'>COOKIE</span>,有独立的超时时间。本域应用用户<span lang='EN-US'>logout</span>后,外域应用会话有可能还存活。<span lang='EN-US'>&lt;o:p&gt;&lt;/o:p&gt;</span></span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''>3</span><span style=''>、基于安全考虑,本域的传递到外域服务器的信息可以进行加密。<span lang='EN-US'>&lt;o:p&gt;&lt;/o:p&gt;</span></span></p>
<p class='MsoNormal' align='left' style='text-align: left;'><span lang='EN-US' style=''><span style=''/>&lt;o:p&gt;&lt;/o:p&gt;</span></p>
<br/>
<br/>
<img src='http://shallon.iteye.com/upload/picture/pic/5096/43f888a9-802a-4662-8861-363997dd260d.jpg' alt=''/></div>
<br/>
<br/>
这玩样的设计思路同cas如出一辙.而且还可以给你加强一下,用户登入任一系统时如果没有当前用户信息则redirect到统一登陆门户.<br/>
问题是你要修改其他应用的登陆模块,厂商们肯么?<br/>
<br/>
而且sso的难度不在login验证,而在于用户信息在多系统之间的同步以及各系统之间的独立授权(统一授权基本不可行.我从来就没有看到有两家厂商产品天然的就能统一授权).
5 楼 zhbking 2007-09-10  
学习ing
4 楼 shallon 2007-09-09  
我描述的不是SSO普适的案例,描述的是一种COOKIE信息传递的外域的方法。其背景是企业内网门户集成公网上的应用界面。对大型的企业,内部的IT系统管理安全要求会比较高,并且希望系统间接口尽量少,出问题的时候避免厂家的互相推卸责任。
1、企业的内网服务器不能为公网访问,企业中的浏览器通过另外的企业管理的httpProxy,连接到公网,所以处在外域的被企业门户集成的应用不能在LOGOUT的时候告诉企业门户,以便将Session登出。在设计上单点登出也没有作为要求。
2、外域应用在登陆后就与企业的内部应用没有关系,既是安全上的要求,也对原有系统修改最少。
3 楼 fyting 2007-09-08  
引用

2、对同一个用户,本域WEB服务器与外域WEB服务器维护的是独立的两个COOKIE,有独立的超时时间。本域应用用户logout后,外域应用会话有可能还存活。

你这样的意思是登录后,外域服务器和本地域服务器之间就不再有任何联系和通信?或者说是两个不同的身份认证中心了?
2 楼 fins 2007-09-08  
"本域应用用户logout后,外域应用会话有可能还存活。"
这个是很严重的问题.应该当成缺陷,而不应该当作 特点.
解决办法还是需要一台中央认证服务器(可以用任何一个所有服务器都能访问到的机器).
另外这期间可以利用rpc(或者是rest)来减少客户端与服务器的交互(同时可以提高安全性).


补充一下,我觉得利用ajax+ hession(一个轻量级RPC组件)+ REST(简单的就可以 可以参考江南白衣的那篇用httpClient组件实现简单REST的文章)+EHCACHE 肯定可以做出一个很不错的 轻量级的 SSO方案来

楼主如果对这个感兴趣欢迎和我一起探讨.
我以前做过一个简单的 但是很不成熟,一直想做个稍微好点的 ,但是没时间没精力啊 呵呵
1 楼 hanzaihua 2007-09-08  
怎么没下文了啊

相关推荐

    sso解决方案汇总

    单点登录(Single Sign-On,简称SSO)是一种流行的认证技术,它允许用户在一个系统上登录后,无需再次输入凭证即可访问多个相关的应用系统。这种技术不仅提升了用户体验,还极大地提高了系统的安全性和管理效率。...

    单点登录SSO解决方案之SpringSecurity+JWT实现.docx

    综上所述,使用Spring Security结合JWT实现单点登录(SSO)是一种既实用又安全的方法。通过定制Spring Security过滤器,可以有效地处理用户的认证和授权过程。JWT作为一种轻量级的身份验证机制,不仅能够提高系统的...

    一个sso的解决方案

    SSO(Single Sign-On)是...总的来说,结合Redis的SSO解决方案提供了一种高效、可扩展的方式来管理用户的身份验证,提升了多应用环境下的用户体验。通过合理设计和实施,可以为企业的IT架构带来显著的安全和效率优势。

    ( SSO解决方案

    SSO解决方案--提醒:文档只是作为一个基础的参考,愿意了解的朋友可以随时咨询。 第一节:单点登录简介 第一步:了解单点登录 SSO主要特点是: SSO应用之间使用Web协议(如HTTPS),并且...SSO实现包含以下三个原则:

    java web sso 实现

    Java Web SSO(Single Sign-On)实现是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需多次输入凭证。本教程将基于提供的博文链接进行讲解,但请注意,由于没有直接提供具体内容,这里会...

    SSO的简单实现SSO的简单实现

    SSO(Single Sign-On)是一种身份验证机制,允许用户在一个系统上登录后,无需再次输入凭证即可访问其他相互信任的系统。SSO 提高了用户体验,简化了安全管理,并减少了密码管理的复杂性。以下是对SSO简单实现的详细...

    .NET SSO解决方案

    .NET SSO解决方案主要涉及到的是如何在多个应用系统之间实现单点登录(Single Sign-On),这是一种让用户在访问由多个独立系统组成的企业级应用时只需要登录一次的技术。在ASP.NET MVC框架下,SSO可以帮助提高用户...

    SSO解决方案.rar

    具体用途可能需要查看文件内容才能确定,如证书、数据库连接字符串或特定的SSO实现模块。 实现SSO的关键技术点包括: - **中央认证服务**:IDP是SSO的核心,它负责验证用户的身份,生成和管理安全令牌。 - **安全...

    ssm redis实现sso单点登录

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。在本文中,我们将深入探讨如何使用SSM(Spring MVC、Spring、MyBatis)框架结合Redis...

    关于SSO单点登录的简单实现

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。这个过程提高了用户体验,同时也简化了安全管理。在本文中,我们将探讨SSO的基本原理...

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

    ### 架构师熟悉CAS技术方案实现SSO ...通过以上介绍可以看出,CAS作为一种成熟的SSO解决方案,不仅提供了丰富的特性和灵活性,还能够有效地解决跨系统认证的问题,是构建大型企业级应用时不可或缺的技术组件之一。

    CAS实现sso单点登录原理

    SSO实现模式的原则: 1. 所有的认证登录都在SSO认证中心进行。 2. SSO认证中心通过一些方法来告诉Web应用当前访问用户究竟是不是已通过认证的用户。 3. SSO认证中心和所有的Web应用建立一种信任关系,也就是说Web...

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

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

    ASP.NET跨域SSO解决方案

    #### 三、ASP.NET跨域SSO实现原理 ##### 3.1 基本思路 为了解决上述提到的问题,我们可以采用以下步骤来实现跨域SSO: 1. **中心认证服务器**:首先搭建一个中心认证服务器用于处理用户登录请求,并颁发统一的...

Global site tag (gtag.js) - Google Analytics