在特定情况下的简单SSO实现方案

news/2024/7/2 23:37:39

最近需要实现类似单点登录的功能。情况是这样的,最初在做网站A,做着做着,要做网站B了,要求与网站A完全分开作为两个应用,但用户数据要求与网站A保持一致,也要求用户在网站A登录后,转到网站B时不需要再登录。怎么样,标准的SSO吧。

查了一些资料,了解了不少原理。园子里的几个兄弟也写得很多了,比如:jillzhang 的 单点登陆(SSO)组件的设计与实现一 和亚历山大同志 的 手把手教你可复用SSO组件的设计(原理篇) ,看了之后,受益匪浅,对实现原理有了基本了解。但各种实现方案都相对复杂,也没找到成熟的组件化实现方案。我所碰到的问题看起来并不是那么的复杂,实在是不想深入钻研(懒人,呵呵),苦思半响不解,实然灵光一现,顿悟,于是有了以下方案,大家来探讨巧一下,拍拍砖头。

环境说明:
在同一台物理服务器上,运行iis和sql server。在iis上有网站A和网站B,在Sql Server上有数据库A(sitea_db),数据库B(siteb_db)和用户数据库(user_db)。这下知道标题中的特定的意思了吧,是够特定了吧。

方案说明:
网站A和网站B的用户数据都统一放在user_db中,验证逻辑可以独立,也可以集中,这无所谓了。其他的没有任何改变,只有当用户从网站A跳转到网站B时,SSO隆重登场,整个流程如下:
1. 网站A生成一个随机的唯一的票据,比如GUID就很不错,将当前用户和票据存到user_db中,然后redirect到网站B,并把票据作为参数。
2. 网站B接收到票据,到user_db中找到相关票据对应的用户并设为当前登录用户,并立即在user_db中删除该票据记录。

OK,大功告成,够简单吧!!

在安全性上我不是专家,我想到可能的问题是该票据要是被截获,就会导致安全问题了,看了别的文章,标准的SSO方案好象也有类似的问题。我的解决方案也类似,将该票据的有效时间设置得小一些,在我所描述的情况下,我想可以设置为2秒甚至更小一些。

以上方案只是初步设想,与大家分享,欢迎批评指正。

转载于:https://www.cnblogs.com/andywu/archive/2008/03/16/1108421.html


http://lihuaxi.xjx100.cn/news/254295.html

相关文章

百度NLP赛事实践解读!

在开放领域的搜索场景下得到的网页数据会非常复杂,其中往往存在着网页文档质量参差不齐、长短不一,问题答案分布零散、长度较长等问题,给答案抽取和答案置信度计算带来了较大挑战。本文基于百度搜索技术创新挑战赛中的搜索问答赛题&#xff0…

在 Python 中如何实现类的继承,方法重载及重写?

作者 | 苏凉.py来源 | CSDN博客今天我们将进入类的继承以及对类的方法重写及重载的学习!话不多说直接进入正题!!类的继承如果要编写的类是另一个现成类的特殊版本,那我们就可以使用继承。一个类继承另一个类时,将自动获…

是时候了解下 mmap 了

欢迎关注方志朋的博客,回复”666“获面试宝典作者:逗逼程序员链接:https://www.jianshu.com/p/0ce91e10d0261、mmap基础概念mmap 是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘…

2018 蓝桥杯省赛 B 组模拟赛(一)-年龄

今天蒜头君带着花椰妹和朋友们一起聚会,当朋友们问起年龄的时候,蒜头君打了一个哑谜(毕竟年龄是女孩子的隐私)说:“我的年龄是花椰妹年龄个位数和十位数之和的二倍”。 花椰妹看大家一脸懵逼,就知道大家也不…

Numpy入门教程:04. 数学函数

背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python。其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执行各种数学任务,如:数值积分、微分、…

PHP生成PDF文档的FPDF类

以前在PHP4的早期版本中用PDFlib生成PDF文档比较容易,现在升级到PHP5了,发现更麻烦了,装的PHP 5.2.4默认没有PHPlib,从php.net上找了一个,装上竟一直报错,开始以为是版本兼容问题,后来在租来的服…

Gartner发布:2023年十大重要技术趋势

Datawhale干货 发布:Gartner,方向:技术趋势前言Gartner是全球领先的信息技术研究和咨询公司。日前,Gartner发布企业机构在2023年需要探索的十大战略技术趋势。Gartner杰出研究副总裁Frances Karamouzis表示:“为了在经…

ISA---不能访问网址或是多次刷新才能访问的解决方法一则

当你安装ISA2006在WINDOWS 2003 SERVER上,并打上SP2补订时。遇SNAT客户端不能访问WEB,但能PING通,能TELNET通,也能访问QQ或是MSN的问题时可以利用以下方法解决。同时,如果你遇到在此环境下,客户端访问外部网…