前端第三方登录授权策略专题

最近项目中关于授权登录的内容比较多,涉及的同学比较多,但是大家的知识点有些参差不齐,这边的专题科普一下相关点,并抛出一个我关注的iframe中的第三方页面登录态问题

先从什么是SSO单点登录开始

Single Sign-On,简单说就是一次访问,多处可用。

了解SSO之前,我们也可以了解一下CAS( Central Authentication Service ),来帮助我们跟深入的了解这个能力的背景:https://developer.ibm.com/zh/articles/os-cn-cas/

从官方文档总结来看,基础模式的SSO流程主要有以下步骤:

  1. 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源。
  2. 定向认证: SSO 客户端会重定向用户请求到 SSO 服务器。
  3. 用户认证:用户身份认证。
  4. 发放票据: SSO 服务器会产生一个随机的 Service Ticket 。
  5. 验证票据: SSO 服务器验证票据 Service Ticket 的合法性,验证通过后,允许客户端访问服务。
  6. 传输用户信息: SSO 服务器验证票据通过后,传输用户认证结果信息给客户端。

那是不是还有多点登录

多点登录用一句话概括是,一个账号可以在多个端登录,但是每个端只能有一个该账号的登录实例。

IM是典型的多点登录应用。

多点登录一般不用于第三方登录,这里不做讨论。

Oauth2.0授权

第三方单点登录主要目的是授权,Oauth2.0,是现在最为推荐使用的授权机制。

入门:http://www.ruanyifeng.com/blog/2019/04/oauth_design.html

进阶:https://tools.ietf.org/html/rfc6749

既然有2.0,那就也有1.0,想要了解历史可以看下面的文章

入门:https://sexywp.com/oauth-1-intro.htm

进阶:http://oauth.net/core/1.0/