SSO(单点登录)与旅游年卡

  SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。(来自百度百科)

  旅游年卡:一次办卡,多个景点游玩。避免了每个景点排队买票浪费时间影响心情。

  我喜欢逛,07年广州一行让我爱上了旅行。十年间转战祖国大江南北。东到浙江苏州上海,南到广东珠海澳门,西到宜昌长江三峡,北到首都长城山海关。经常说的一句话,历史上的云游诗人作家什么的,到现在是写不出那些脍炙人口的诗词作曲的。为啥?全都圈起来收费啦。这些年去过得地方火车票和门票都是厚厚的一扎。

   

  好了,话回正题。SSO与旅游年卡有什么关系呢?上面已经说过了他们两个的各自的作用。他们有什么共同点呢?一次,都只需要一次。单点登录一次登录,就可以访问多个互相信任的应用系统,而不需要用户访问每个应用系统的时候都登录一次。旅游年卡一次开卡,就可以游玩多个授权的景点,而不需要游客到每个景点大门都排队买票。省钱省事省时,你说爽不爽。

  然而,在网上看了很多老司机写的SSO单点登录的原理与实现,都很难一下子明白(我是最业余的程序员)。无意看到去游玩时的照片,想起每次都是用旅游年卡去游玩,立马想到哎嘛这不就是单点登录么?到植物园门口"滴"一下就进去了;到动物园门口“滴”一下就进去了;到海洋馆“滴”一下就进去了……其实,在SSO登录后再访问别的应用系统,也有一个“滴”的过程,只是这个过程太快。我们根本看不到而已。

  

  下面,我就带着大家一起在SSO的世界里旅游吧。

  首先,要登录系统必须要有一个账号,要旅游必须要有一个年卡。

  其次,要访问不同的应用系统必须得在其中一个系统中发起登录。同样,要使用旅游年卡,必须在其中一个景点开卡(录指纹、激活)。

  然后,SSO服务器会对账号密码进行校验,如果校验成功,会将登录用户信息存放到一个tokey中,并返回到请求的应用系统中。

    比如,有三个应用系统:博客园(www.cnblogs.com)、植物园(www.zhiwuyuan.com)、动物园(www.dongwuyuan.com)。(搞定了跨域,那其他的都不是问题)不要问我为什么一上来就搞跨域,我就问你不跨域你干嘛要用SSO?

    另外还有一个SSO登录验证系统(www.sso.com)。

    好,现在我要去博客园看猴子(www.cnblogs.com/monkey),啊。需要登录。。。biu,页面跳转到SSO登录页(www.sso.com/login?url=www.cnblogs.com/monkey)。

    输入账号、密码(年卡刷卡验指纹)。登录成功,好,给你带上令牌(token)再回去(www.cnblogs.com/monkey?token=猴子看到不咬你)。来到博客园的猴山,发现不少程序猿。一个个眼红睚眦的瞪着你。突然,猴王看到你胸前挂着的令牌(token=猴子看到不咬你)。微笑着向你打起了招呼:哎呀,快看。是同类耶……于是你就在博客园跟猴子们愉快的玩耍了半天。

    吃过午饭,你又想去植物园逛逛。于是打开了(www.zhiwuyuan.com)。把你手中的令牌(年卡)递给了园丁大叔,园丁大叔拿着你的令牌“biu”的一下跑到验证系统验证你是否登录(www.sso.com/login?url=www.zhiwuyuan.com&token=猴子看到不咬你),系统:咦,这不是猴子看到不咬你么。好、验证通过。然后又“biu”的一下跑回来,而这时候你的眼睛还没有眨一下。然后大叔向你打开了植物园的大门。植物们看到你胸前的令牌,都不害怕了,争相开放着鲜艳的花朵,散发出迷猴、啊不、迷人的芬芳。

  到了晚上,你还想去动物园看看菜鸟,于是你就带着令牌出发了……

  就这样愉快的玩了一天,第二天,你要出差了,也不知道要去多久。于是你就告诉博客园:博博,我要走了,别再记着我了。博客园听到此话,biu的一下跑到验证系统(www.sso.com/logout?token=猴子看到不咬你),验证系统从记录中删除猴子看到不咬你对应的信息。并且告诉你:安心的去吧,下次再来猴子看到会咬你的哦。(旅游年卡注销)而后你再拿着猴子看到不咬你的令牌到植物园人家就不给你开门了。因为(www.sso.com/login?url=www.zhiwuyuan.com&token=猴子看到不咬你)猴子看到不咬你已经不存在了。

  我们知道旅游年卡一般都是有有效期的(通常为一年),同样。SSO登录验证也是有有效期的,这个可以根据系统设置。如果在这个有效期内用户没有主动退出,则一直到过这个有效期,再访问应用系统则需要重新登录(旅游年卡则需要重新激活)。而到下一次再访问登录时,SSO验证系统会给你一个新的(token=猩猩看到不咬你)令牌。(旅游年卡会给你一个新的有效期起止时间),然而账号密码(年卡、指纹)还是不变的。

  

  好了,这篇文章只讲了SSO相关的思路,并没有讲具体的实现与逻辑处理。权当抛砖引玉了。欢迎拍砖。

  (完)

SSO(单点登录)与旅游年卡的更多相关文章

  1. 使用 JSONP 实现简单的 SSO 单点登录

    SSO 即 Single Sign On(单点登录).  一.二级域名之间的单点登录 不需要用到JSONP 或者 p3p 协议,直接使用 COOKIE 就行了,因为顶级域名相同就能实现 COOKIE ...

  2. CAS实现SSO单点登录原理

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  3. [sso] 单点登录认证流程

    一.流程说明 第一步:访问cas过滤链接ssoLogin,拼凑定向到 CAS_SERVER 获取ticket的URL 第二步:CAS_SERVER校验用户信息,生成Ticket 第三步:重新定向到访问 ...

  4. php sso单点登录原理阐述

    原理:就是用户登录了单点登录系统(sso)之后,就可以免登录形式进入相关系统: 实现: 点击登录跳转到SSO登录页面并带上当前应用的callback地址 登录成功后生成COOKIE并将COOKIE传给 ...

  5. SSO单点登录之跨域问题

    第一次写博客,与大家共勉. 这里用到的原理其实非常简单,将cookie存在一个公共的站点的页面上就可以了,这里我们管那个站点叫主站S. 先说说所谓的跨域 环境1:a.xxx.com需要跟b.xxx.c ...

  6. cas sso单点登录系列4_cas-server登录页面自定义修改过程(jsp页面修改)

    转:http://blog.csdn.net/ae6623/article/details/8861065 SSO单点登录系列4:cas-server登录页面自定义修改过程,全新DIY. 目标:    ...

  7. 学习CAS实现SSO单点登录

    学习CAS实现SSO单点登录 网上找了几篇比较详细的教程,在这记录一下: 原理: CAS实现SSO单点登录原理 教程: 1.CAS实现单点登录(SSO)经典完整教程 2.SSO之CAS单点登录实例演示 ...

  8. CAS实现SSO单点登录原理(转)

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  9. sso单点登录,单点登录原理图,单点登录图解,单点登录

    sso单点登录,单点登录原理图,单点登录图解,单点登录 ============================== ©Copyright 蕃薯耀 2017年11月20日 http://www.cnb ...

随机推荐

  1. 测评:华为最新移动应用/APP测试工具MobileTest

    一.目前移动应用/App的测试痛点及可选方案 移动互联网市场进入下半场,同质化竞争激烈,平均获客成本增加.屏幕不适配.闪退.无响应.UI异常等兼容性问题严重影响用户体验,影响用户转化率和用户粘性.如何 ...

  2. [转]tomcat部署

    转载博客原文地址:  http://www.cnblogs.com/xing901022/p/4463896.html 阅读目录 介绍 静态部署——在tomcat启动时部署 动态部署——在tomcat ...

  3. RSA加密算法

    class Program { static void Main(string[] args) { RSAPublicKey P = new RSAPublicKey(); P.Exponent = ...

  4. idea live template

    最近正在研究如何给idea添加注释模板. 此篇文章是记录在写(开发)注释模板的过程中遇到的坑. 1. methodParameters() 当函数的参数列表为空的时候返回的是: [] 当函数的参数列表 ...

  5. Python的核心数据结构

    数据结构 例子 数字 1234,3.1415,3+4j 字符串 'spam'."grace's" 列表 [1,[2,'three'],4] 字典 {'food':'spam','t ...

  6. Spring学习(16)--- 基于Java类的配置Bean 之 基于泛型的自动装配(spring4新增)

    例子: 定义泛型Store package javabased; public interface Store<T> { } 两个实现类StringStore,IntegerStore p ...

  7. ActiveMQ 和消息简介

    Apache ActiveMQ 是远程系统间进行通信的消息代理,实现了 JMS(Java Message Service,Java 消息服务).尽管 ActiveMQ 是使用 Java 写的,但是其提 ...

  8. centos5.5下mangodb启动报错glibc

    mangodb启动报错glibc找不到(centos5.5) 报错形式 [root@test-172-16-0-139-ip mongodb-server]# /data/mongodb-server ...

  9. Linux sort -g 的困惑

    sort命令是帮我们依据不同的数据类型进行排序,排序的效率很高,因此也是很常用的命令. sort参考及说明:https://www.gnu.org/software/coreutils/manual/ ...

  10. python 标准库 -- requests

    一. 安装 $ pip install requests requests 并不是python 标准库, 但为了汇总方便, 将其放置于此. 二. 用法 requests.get() : GET 请求 ...