单点登录SSO:可一键运行的完整代码

单点登录方案不同于一个普通站点,它的部署比较繁琐:涉及到好几个站点,要改host、安装证书、配置HTTPS。

看到的不少这方面示例都是基于HTTP的,不认同这种简化:

1. 它体现不出混合HTTP/HTTPS时,单点注销要注意处理的问题;

2. 做单点登录一定要有绝不能走HTTP传递用户登录信息的基本安全意识。自己“加密”用户登录信息之类的方案,大都是不堪一击的;

3. 我在 《看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)》这篇给了一个比较有冲击力的HTTP会话劫持示例。

 

为了让大家可以快速安装体验,专门开发了一个一键部署运行的小程序。大家在http://file.baibaomen.com/sso/BaibaomenSsoLesson.zip下载解压完整示例压缩包到任意盘根目录,运行其中的 “一键配置运行.exe”,即会自动完成所有相关部署配置工作,并打开浏览器访问相应站点。测试账号是baibaomen,密码123456。

注意:因为该程序运行涉及修改host、安装证书等操作,可能出现安全警告甚至误删。可以自行单独编译其中OneKeyRunner工程源码,会自动重新生成本exe,此时不会再告警,执行即可。

各位如果有github账号,可以watch本项目,跟进最新源码:https://github.com/baibaomen/BaibaomenSsoLesson

我本地的测试环境是Windows10,IIS 10,.NET4.6。最低配置环境要求IIS7,.NET4.6。

出炉!可一键运行的SSO完整代码|手把手教单点登录系列三

单点注销已在代码中实现。先不在本文着重讲解了,有兴趣的同学请阅读代码,疑问在评论中交流。如果大家都比较关心该业务,本系列后继文章会考虑做个专题。

 

单点登录是一个涉及技术面非常广泛的领域。本系列第二篇和本文代码所提供的方案,属于一类最基本也最标准的跨域Web单点登录方案。

在具体的SSO实施中,该类方案有两个明显的短板:

  1. 只涵盖了Web应用的单点登录场景。企业的很多客户端程序、移动端程序也有单点登录需求,比如SAP、Lotus或者企业自身业务应用。像本系列第一篇演示的 VPN、QQ客户端程序单点登录 就是非Web的单点登录场景。
  2. 要求被集成的子站点做改造。子站必须理解支持本SSO方案的接口和协议。这个对于非常多实际的SSO实施场景来说难以做到,因为大量要集成的站点都是已经上线运行了很久的,甚至都已经找不到对应维护人员的系统,改造风险太大。本系列第一篇演示的 零改造实现百度、CSDN单点登录 就是此例,SSO实施方是无法改造待集成站点的。

网上的单点登录教程和介绍,大部分是止于该类基本的标准方案。很多标准化的产品方案,像IdentityServer,也都属于该范畴。

对该类方案的充分理解,是实施SSO的基本功。在此基础上,后继文章会结合我的顾问实施经验,和大家探讨如何演化变通,实现真实场景下的各种复杂单点登录需求。

本文主要作为问题回复贴。执行中有问题的,请在本文回复交流。

希望成功运行的童鞋也积极回复反馈,看到你们有所收获是我最大的动力:)

本文原文地址:http://www.cnblogs.com/baibaomen/p/sso-full-code.html 。转载请注明。

本系列各篇链接:

单点登录-SSO:概述与示例 http://www.cnblogs.com/baibaomen/p/sso.html

单点登录-SSO:图示和讲解 http://www.cnblogs.com/baibaomen/p/sso-sequence-chart.html

单点登录-SSO:一键运行的完整代码 http://www.cnblogs.com/baibaomen/p/sso-full-code.html

 

本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。

我的博客欢迎复制共享,但在同时,请保留原文地址以及我的署名权百宝门-SSO顾问,并且,不得用于商业用途。

如您有任何疑问或者授权方面的协商,请给我邮件。 


博客园专栏:
百宝门-SSO顾问

我的公众号“百宝门”



 

posted @ 2017-05-15 09:37 百宝门-SSO顾问 阅读(...) 评论(...) 编辑 收藏