再谈OAth2.0和单点登录的关系(仍在更新)

        百度上搜索“单点登录和OAth2.0”、“OAuth2.0实现单点登录”,可以搜出很多结果,这些结果有图有代码,还有详细案例。但是这些结果没有原理层面来解释“OAth2.0和单点登录”。当然这些结果都解释了“OAth2.0的4种授权模式”,但和“登录”有关系吗?

        首先需要区分一下“授权”和“认证”:

                “认证”Authentication也就登录的过程,即识别你是谁。

                “授权”Authorization,即据据用户身份授予他访问特定资源的权限。

        而OAuth2.0 只是一种“授权”,本身不具“认证”功能。那么问题来了,OAuth2.0如何与登录“扯”上关系了?所谓的“OAuth2.0实现单点登录”难道是胡扯??

         经过查资料,发现真正实现“认证”(或者“登录”)的是OIDC(全称OpenID Connect)协议,而OIDC基于OAuth2.0扩展出来的一个协议。

        OIDC与OAuth2.0相比,引入了id_token等和userinfo相关的概念:

1、OAuth2协议,只是定义了access_token/refresh_token,但这两个token只是为了保护Resource Server的,并没有Resource Owner的身份信息。

2、OIDC引入了id_token的概念,用这个特殊的token来表示Resouce Owner的身份信息。

3、OIDC协议的登陆授权过程流程和OAth2.0类似,整个过程的参与者也类似。

        OIDC引出的概念还有很多,这里暂不做扩展。

        总之,因为OIDC是OAuth2.0的扩展,很多实现OAuth2.0的产品也直接实现了OIDC。只不过OIDC经常被遗忘。

        OAuth2.0并没有直接实现SSO,准确的是应该是OAuth2.0实现了OIDC,OIDC再实现SSO。这就好比,“质子、电子、中子”组成了“原子”,“原子”再组成了“分子”。如果说“OAth2.0实现了单点登录”,就好比说“质子、电子、中子组成分子”一样有问题。因为中间缺少了一个抽象层级。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值