前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在OAuth2授权流程中实现联合身份认证

在OAuth2授权流程中实现联合身份认证

作者头像
码农小胖哥
发布2022-10-05 18:41:12
7980
发布2022-10-05 18:41:12
举报

很多同学都知道第三方登录,也都对接过微信、QQ、钉钉等三方登录,但是联合身份认证Federated Identity)这个概念应该只有少数人了解过,包括胖哥也是一年前才知道这个概念。既然追求刺激,那就贯彻到底!胖哥花了点时间,在OAuth2授权流程中实现了联合身份认证,今天就分享一些骚操作。

联合身份模式

将身份验证委托给可信任的身份提供者(IDP),包含自有平台和第三方,和认证的协议和方式也关系不大,OAuth2SAML2.0LDAP,甚至我们普通的登录,这可以简化开发,最大限度地减少用户管理的需求,并改善应用程序的用户体验。

而且这个东西也是实际业务需要,用户通常因业务需要会在多个平台的应用程序之间进行流动,如果用户要维护多个平台的认证凭据,势必打断用户的流程,加大用户凭据管理难度。

另一方面,平台也希望用户的注册登录变得简单一些,这样拉新也容易一些。如果你注册一个新平台,拿出微信扫一下码进行三方注册登录,还是填写一堆资料和验证码?大部分人会选择前者。

体验联合身份认证

首先要有一个自己的用户认证中心,然后把自有认证和第三方接入进来,保持流程的一致性。最近胖哥在Id Server开源项目中实现了联合身份认证,具体的东西还是挺麻烦的,我觉得还是通过一些直观的方法展示一下好。先说一下步骤:

  • 我请求了一个OAuth2客户端的redirect_uri /foo/bar
  • OAuth2客户端会引导跳转到授权服务器的登录页面。
  • 关键就是这个登录页面,集成了微信生态提供的微信登录功能。如果按以前的传统,账密或者验证码,我们的用户登录,接受授权就完事了;现在不一样了,多了微信的两种方式。
  • 选择任意一种微信登录,开启了微信登录的流程,会向微信的授权服务器发起请求,微信流程同意后,把结果告知我们自己的授权服务器。
  • 我们授权服务器去拿微信用户的信息,完成认证逻辑,这个时候接着走我们自己平台的授权流程,后面的就不多说了跟以前不一样。

❝这里的关键点就是对用户认证过程的抽象,会附加一些流程,起点和终点还是一致的。

话不多说,看下面的视频大概你就能感觉到联合身份认证了。

http://mpvideo.qpic.cn/0bc3r4aaoaaa5uank6nkw5rfbd6da6hqabya.f10002.mp4?dis_k=3f7982c3fe61035d7ce17f304b925f50&dis_t=1664966432&vid=wxv_2445612692154662913&format_id=10002&support_redirect=0&mmversion=false

最后要说明一下,OAuth2授权服务器只能在授权码模式下实施联合身份认证

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农小胖哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 联合身份模式
  • 体验联合身份认证
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档