.Net 单点登录(SSO)的原理与实现------单点登录是什么鬼

.Net 单点登录(SSO)的原理与实现——单点登录是什么鬼

一、什么是单点登录

  在一些公司中,可能需要按照公司业务将系统拆分,例如腾讯的产品有腾讯视频、QQ邮箱、QQ空间等;百度有百度贴吧,百度知道;阿里有淘宝、天猫….我们常常是登录了淘宝就可以直接进天猫,退出登录后天猫和淘宝也都退出登录了。所以,单点登录简单来说就是:
一处登录、处处登录,一处注销、处处注销

二、单点登录的使用场景

  上面我有提到,单点登录是一处登录,处处登录,一处注销,处处注销,因此单点登录适用于多系统之间共享用户信息,共享用户的身份认证信息场景。如果多系统之间的用户信息不是一致的,那么单点登录则不适用!

三、先不谈单点登录

  我们先不谈单点登录,我们来谈谈一般的登录。对于一般的登录,无非就是想进入一个系统得登录一下,在登录界面输入用户名或邮箱手机号之类的,再输入密码,如果登录失败则提示失败,如果成功则进入系统。因此流程如下:
这里写图片描述
那么,我们进行一下思考:登录是什么?
在我看来,登录就是一个验证(废话),你给我一个凭据,我验证你能不能“看一些东西,做一些事”!
对于独立系统,每个系统都有各自的验证,各自验证各自的凭据,验证完“看一些东西,做一些事”!

四、用户验证与登录认证

   既然各自的系统都有各自的验证,如果这些系统都共享一个验证逻辑,不就可以单点登录了吗?事实证明,我们想的太简单了!
   是的,验证逻辑是必须要相同的,假设A系统使用用户名123密码123可以登录,那么B系统用这个用户名密码也一定要可以登录。但这仅仅是验证逻辑,并不是系统的认证逻辑,我们要理清验证与认证的区别。所谓验证,无非就是验证凭据是否有效,例如用户是否存在,密码是否正确。而登录认证,是认证你是否已经登录。二者的区别一目了然,或许你已经有了用户名密码,你可以登录说明你可以通过校验(也就是验证),但是你没有进行登录认证的话你依然是不能访问受限内容的。因此要实现单点登录我们要解决三大问题:

  • 同步验证
  • 同步认证
  • 同步注销

第一个问题好解决,我们只需要使用相同的验证逻辑就行,第二和第三个问题正是单点登录要解决的核心之所在!

五、单点登录是一种架构,与语言无关

   到目前为止,我们还没有提到编程语言,实际上,只要解决了上面我说的三大问题,就可以实现最基本的单点登录,因此单点登录是一种解决这三大问题的架构,任何编程语言都可以实现这种架构,因此它与语言无关!但是为什么这篇博客的标题是“.Net 单点登录(SSO)的原理和实现呢”?原因有二:

  • 因为博主是一个.Net开发者,故以.Net为例子,深入浅出讲解单点登录原理以及用.Net技术的实现
  • 在现在的网络资源里,单点登录框架和解决方案有很多,但大部分都不是基于.Net技术来实现的,因此需要一个基于.Net单点登录解决方案

总结:剖析单点登录要解决的需求之所在,找到解决单点登录问题的症结是解决问题的大前提!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值