针对分析单点登录(流程图与数据安全)提出的问题及解决方案

上一篇本人根据园友的文章:[原创]单点登陆(SSO)组件的设计与实现,根据自己的理解进行一次总结性的分析:分析单点登录(流程图与数据安全).

当时根据SSO的流程做下了个人分析,也得到不少园友的评论及帮助,可是觉的可惜的是,没有一位园友提出我画的流程图中存在的问题.这也可能是大家没有看明白我的图(本人不才).

当时自认为在流程上以及业务逻辑上都没有太大的问题,至到有次和朋友谈到了SSO,当时我非常自豪的说出了SSO的流程及思路,他也非常认可,可是他的一个问题把我难倒了.

他的问题是这样的: 

如果用户A在联盟站点SiteA中通过了认证中心的认可.这样用户A的用户uid就会出现在认证中心中的线列表中.此时如果用户A重新打开一个联盟子站点SiteB,此时在联盟站点SiteB中如何确认这个用户的身份呢?按

理说这个用户A在联盟点SiteB中应该是登录状态.

为此再次贴出自己理解的SSO流程图,并在图上附上了困扰我的三个问题.

按照SSO登录流程来看(个人理解):

首先:

判断本站点的Session["uid"]是否存在,如果本站点的会话状态存在则说明是登录状态.

问题:用session来管理子站点的会话状态,可以有效的减少子站与联盟站点的关联.但是当子站点的session过期后,此时的情况有可能是这样的,在子站点A中存在的Session没有过期,但子站点B中的Sesion 正好过期,而用户又没有通过正常的退出操作,此时如何控制认证中心的在线列表呢?是存在还是不存在呢?

时间: 2024-09-01 12:07:51

针对分析单点登录(流程图与数据安全)提出的问题及解决方案的相关文章

分析单点登录(流程图与数据安全)

去年公司也曾经做过一个单点登录模块,两个站点,同事是基于cookie和session来实现的,在那个模块中并没有单独的用户认证中心,每个子站都有自己的登录系统,在判断用户是否登录时,首先是通过判断cookie是否存在来判断用户登录与否.如果cookie值存在则写入session,保存登录票据. 一般基于cookie的程序,在某种程度上来说最大的问题就是安全,因为它是以文件形式存储在客户端的.所以一般非常重要的信息,例如用户登录信息,用户银行卡信息都不会采用cookie来存储.尽管cookie可以

php实现web系统单点登录

  随着用户不断扩大的需求,更多的系统被建造起来.为了获得更好的用户体验,需要实现用户单点登录.所谓单点登录,就是用户在一个系统上登录后,其他系统就不需要重复登录.单点的登录的好处很明显,提高了用户体验度.如何实现单点登录,在这里我提供两种解决方案: 1.一级域名相同,通过共享cookie来实现 有a.the.com和b.the.com A B两个站点, 只要在A,B任何一个站点登录后,两个网站就都可以使用,不需要在另一个站点登录了.而通过基于cookie的实现方式,前提是两个系统共享一级域名,

SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析

这次的收获是把PPT也深入研究了一番... 上图:一会上原理分析:(本篇不涵盖cas代理认证模式,代理目前还没用到.) 文中所有资料下载地址:在文章中最下方. 1)PPT流程图: 一.用户第一次访问web1应用. ps:上图少画了一条线,那一条线,应该再返回来一条,然后再到server端,画少了一步...谢谢提醒.而且,重定向肯定是从浏览器过去的.我写的不严谨,画的比较通俗了...因该像下面这张图一样就ok了!!PPT自己下载下来修改吧,我就不改了. 二.用户第一次访问web2应用. 困扰了好久

asp.net 简单单点登录技术分析

代码如下: 复制代码 代码如下: ///单点登录(Single Sign On) public void SSOMethods(string username, string password) { //判断登录情况 此处方法省略-- int result = CheckLogin(username, password); if(result>0) { //唯一标识,可自行设定 string key = string.Format("{0}_{1}",username, pass

asp.net 简单单点登录技术分析_实用技巧

代码如下: 复制代码 代码如下: ///单点登录(Single Sign On) public void SSOMethods(string username, string password) { //判断登录情况 此处方法省略-- int result = CheckLogin(username, password); if(result>0) { //唯一标识,可自行设定 string key = string.Format("{0}_{1}",username, pass

CAS实现SSO单点登录原理

一.不落俗套的开始 1.背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架. 2.盗一张学习CAS绝大多都看过的图以及执行部分分析 注:已分不清原创,此处就不给出地址了. 从结构上看,CAS包含两个部分:CAS Server 和CAS Client需要独立部署,主要负责对用户的认证工作:CAS C

单点登录在ASP.NET上的简单实现

asp.net 系统的基本架构 我们假设一个系统System包含Service客户服务中心.Shop网上购物中心和Office网上办公中心三个独立的网站.Service管理客户的资料,登录和注销过程.不论客户访问System的任何一个页面,系统都会转到登录界面,在用户登录后,系统会自动转会到客户上次请求的页面.并且用户此后可以在System中无缝切换.不需要再次进行登录.即在System中实现单点登录SSO(Single Sign-On). 我们知道,用户的即时状态通常是使用Applicatio

互联网上的单点登录研究

随着互联网络应用的普及,越来越多的人开始使用互联网上提供的服务.然而目前提供服务的网站大多采用用户名.口令的方式来识别用户身份,这使得用户 需要经常性的输入自己的用户名.口令.显然这种认证方式存在着弊端:随着用户网络身份的增多,用户相应的需要记忆多组用户名.口令,这给用户造成记忆上的 负担;另外频繁的输入用户名.口令,会相应的增大用户的口令密码被破解的机率.为了改变这一现状,单点登录技术应运而生.单点登录技术的核心思想是通过一 定的方式使得各提供服务的网站之间建立某种联系,用户只需要在其中一个认

使用 CAS 在 Tomcat 中实现单点登录

CAS 介绍 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目.CAS 具有以下特点: 开源的企业级单点登录解决方案. CAS Server 为需要独立部署的 Web 应用. CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等. CAS 原理和协议