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. Zepto源码分析-zepto模块

    源码 // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely distributed under the MIT lic ...

  2. D. Powerful array

    D. Powerful array 题意 给定一个数列:a[i] (1<= i <= n) K[j]表示 在区间 [l,r]中j出现的次数.有t个查询,每个查询l,r,对区间内所有a[i] ...

  3. Java数据库连接错误集

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after co ...

  4. oracle日期时间函数 总结

    表中存在伪列:sysdate,systimestamp 伪列存在但是不显示 select sysdate from dual; select systimestamp from dual; 日期计算公 ...

  5. 记一次调试串口设备Bug的经历

    最近花了差不多1天的时间在折腾一个Bug,该Bug的表象如下: 这个Bug还特别独特,在开发电脑中无提示,在终端用户那里每次使用软件的时候都报这个.仔细思考了一下最近在源码中新添加的功能,没发现有啥特 ...

  6. 聊聊vue组件开发的“边界把握”和“状态驱动”

    vue有着完整的组件化开发机制,但是官网只给了开发的方式,对于开发规范以及组件化开发的最佳实践,还需要我们来摸索.本文就平时开发中的经验来谈谈“把握边界”和“状态驱动”这两个话题. 边界把握 边界把握 ...

  7. Babel 入门指南

    Babel 入门指南 ​⚠️ 注意: Babel 可以与很多构建工具(如 Browserify.Grunt.Gulp 等)进行集成.由于本教程选择 Webpack ,所以只讲解与 Webpack 的集 ...

  8. SQL中的cast()函数

    CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型.CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型. 语法: CAST (expression AS dat ...

  9. 【转载】Windows系统下删除ubuntu

    原始日期:2013-11-02 15:51 以windows7为例:   用MbrFix.exe修复MBR 卸载Windows/Linux双系统中的Ubuntu1.如果你有Windows系统安装盘/启 ...

  10. TortoiseGit使用SSH

    Windows TortoiseGit使用SSH连接 1 找到TortoiseGit自带的Puttygen工具 2.1 如果未生成过SSHKey,选择Generate(生成的过程中记得移动鼠标) 2. ...