本文原文地址:http://www.cnblogs.com/baibaomen/p/sso-full-code.html 。转载须注明。
单点登录方案不同于一个普通站点,它的部署比较繁琐:涉及到好几个站点,要改host、安装证书、配置HTTPS。
看到的不少这方面示例都是基于HTTP的,不认同这种简化:
1. 它体现不出混合HTTP/HTTPS时,单点注销要注意处理的问题;
2. 做单点登录一定要有绝不能走HTTP传递用户登录信息的基本安全意识。自己“加密”用户登录信息之类的方案,大都是不堪一击的;
3. 我在 《看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)》这篇给了一个比较有冲击力的HTTP会话劫持示例。
为了让大家可以快速安装体验,专门开发了一个一键部署运行的小程序。大家在http://www.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。
单点注销已在代码中实现。先不在本文着重讲解了,有兴趣的同学请阅读代码,疑问在评论中交流。如果大家都比较关心该业务,本系列后继文章会考虑做个专题。
单点登录是一个涉及技术面非常广泛的领域。本系列第二篇和本文代码所提供的方案,属于一类最基本也最标准的跨域Web单点登录方案。
在具体的SSO实施中,该类方案有两个明显的短板:
- 只涵盖了Web应用的单点登录场景。企业的很多客户端程序、移动端程序也有单点登录需求,比如SAP、Lotus或者企业自身业务应用。像本系列第一篇演示的 VPN、QQ客户端程序单点登录 就是非Web的单点登录场景。
- 要求被集成的子站点做改造。子站必须理解支持本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顾问
相关推荐
单点登录(Single Sign-On,简称SSO)是一种网络认证机制,允许用户在一次登录后,可以在多个相互关联的应用系统间自由切换,而无需再次进行身份验证。这大大提升了用户体验,减少了用户记忆多个账号和密码的负担,...
从提供的"SSO单点登录完整代码"来看,可能包含以下内容: - IDP的实现,可能使用Java、Python或其他语言,包含用户验证逻辑和令牌生成。 - SP的实现,展示如何检查和验证来自IDP的令牌,以及如何根据令牌的验证结果...
### 单点登录SSO解决方案之SpringSecurity+JWT实现 #### 一、单点登录(SSO)概述 单点登录(Single Sign-On,简称SSO)是一种认证机制,允许用户仅通过一次登录就能访问同一域下的多个应用程序和服务。这种机制...
sso单点登录ppt.ppt
单点登录SSO的实现原理 单点登录(SSO)是一种常见的技术实现原理,在多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。实现单点登录说到底就是要...
在“sso单点登录源代码”中,我们可以看到以下几个关键组成部分: 1. **SSOLab.sln**:这是一个Visual Studio解决方案文件,包含了整个SSO项目的所有组件。通过这个文件,开发者可以打开并管理整个项目,包括各个子...
本文将详细介绍基于CAS(Central Authentication Service)实现的sso单点登录代码,一个广泛应用于网络应用程序中的开源SSO解决方案。 ### 什么是CAS和SSO? CAS是一个开源的SSO解决方案,它允许用户仅通过一次...
在本场景中,我们关注的是Jeecg如何配置单点登录(Single Sign-On,简称SSO)以及相关的登录验证代码。单点登录是一种网络应用架构中的安全机制,允许用户在一次登录后,就能访问多个相互关联的应用系统,而无需再次...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后,能够访问多个相互关联的应用系统,而无需再次输入凭证。在Java环境下实现SSO,通常涉及以下几个核心知识点: 1. **原理**:SSO的核心思想...
单点登录 SSO单点登录 SSO单点登录 SSO单点登录 SSO
因为公司要实现SSO单点登录的效果,最近在网上找了一些资料,但是都没有好用的, 所以自己用PHP 使用TP5.0 实现了SSO单点登录,可以跨多个域名。 下载后在本地配置好 A,B,C 3个网站,就可以模拟效果了。
.NET 单点登录(SSO,Single Sign-On)是一种身份验证机制,允许用户在一个系统上登录后,无需再次认证即可访问多个相互关联的系统。在ASP.NET环境下实现SSO,可以极大地提高用户体验并简化管理。以下是对这个主题的...
SSO单点登录解决方案 SSO(Single Sign-On)单点登录解决方案旨在提供一个统一的身份验证入口,满足集团多个成员网站的身份验证需求。该方案的主要目标是实现单点登录,提高用户体验,降低成员网站的登录负载,并...
### 基于SAP NetWeaver EP的单点登录(SSO)详解 #### 引言 在现代企业的信息化建设中,门户系统作为整合不同应用和服务的重要平台,其与后台Web应用的集成变得日益关键。这不仅涉及到SAP系统如ITS、BSP或WebDynpro...
ASP.NET跨域单点登录源码 asp.net 跨域单点登录实现原理: 当用户第一次访问web应用系统1的时候,因为还没有登录,会被引导到认证中心进行登录; 根据用户提供的登录信息,认证系统进行身份效验,如果 通过效验,...
单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次认证即可访问多个相互关联的系统。在SSO系统中,客户端和服务端是两个关键组成部分。 客户端通常是指用户交互的...
基于JWT实现SSO单点登录流程图解 基于JWT实现SSO单点登录流程图解是指使用JSON Web Token(JWT)来实现单点登录(SSO)的机制。在这种机制中,用户只需要登录一次,就可以访问多个应用服务器上的资源,而不需要再次...