admin管理员组文章数量:1567915
.Net 单点登录(SSO)的原理与实现——单点登录是什么鬼
一、什么是单点登录
在一些公司中,可能需要按照公司业务将系统拆分,例如腾讯的产品有腾讯视频、QQ邮箱、QQ空间等;百度有百度贴吧,百度知道;阿里有淘宝、天猫….我们常常是登录了淘宝就可以直接进天猫,退出登录后天猫和淘宝也都退出登录了。所以,单点登录简单来说就是:
一处登录、处处登录,一处注销、处处注销!
二、单点登录的使用场景
上面我有提到,单点登录是一处登录,处处登录,一处注销,处处注销,因此单点登录适用于多系统之间共享用户信息,共享用户的身份认证信息场景。如果多系统之间的用户信息不是一致的,那么单点登录则不适用!
三、先不谈单点登录
我们先不谈单点登录,我们来谈谈一般的登录。对于一般的登录,无非就是想进入一个系统得登录一下,在登录界面输入用户名或邮箱手机号之类的,再输入密码,如果登录失败则提示失败,如果成功则进入系统。因此流程如下:
那么,我们进行一下思考:登录是什么?
在我看来,登录就是一个验证(废话),你给我一个凭据,我验证你能不能“看一些东西,做一些事”!
对于独立系统,每个系统都有各自的验证,各自验证各自的凭据,验证完“看一些东西,做一些事”!
四、用户验证与登录认证
既然各自的系统都有各自的验证,如果这些系统都共享一个验证逻辑,不就可以单点登录了吗?事实证明,我们想的太简单了!
是的,验证逻辑是必须要相同的,假设A系统使用用户名123密码123可以登录,那么B系统用这个用户名密码也一定要可以登录。但这仅仅是验证逻辑,并不是系统的认证逻辑,我们要理清验证与认证的区别。所谓验证,无非就是验证凭据是否有效,例如用户是否存在,密码是否正确。而登录认证,是认证你是否已经登录。二者的区别一目了然,或许你已经有了用户名密码,你可以登录说明你可以通过校验(也就是验证),但是你没有进行登录认证的话你依然是不能访问受限内容的。因此要实现单点登录我们要解决三大问题:
- 同步验证
- 同步认证
- 同步注销
第一个问题好解决,我们只需要使用相同的验证逻辑就行,第二和第三个问题正是单点登录要解决的核心之所在!
五、单点登录是一种架构,与语言无关
到目前为止,我们还没有提到编程语言,实际上,只要解决了上面我说的三大问题,就可以实现最基本的单点登录,因此单点登录是一种解决这三大问题的架构,任何编程语言都可以实现这种架构,因此它与语言无关!但是为什么这篇博客的标题是“.Net 单点登录(SSO)的原理和实现呢”?原因有二:
- 因为博主是一个.Net开发者,故以.Net为例子,深入浅出讲解单点登录原理以及用.Net技术的实现
- 在现在的网络资源里,单点登录框架和解决方案有很多,但大部分都不是基于.Net技术来实现的,因此需要一个基于.Net单点登录解决方案
总结:剖析单点登录要解决的需求之所在,找到解决单点登录问题的症结是解决问题的大前提!
版权声明:本文标题:.Net 单点登录(SSO)的原理与实现------单点登录是什么鬼 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1726254020a1062759.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论