跨平台第三方平台登录和单点登录

跨平台第三方平台登录和单点登录

官方介绍:
单点登录:简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
个人理解:
 对于单点登录和第三方平台登录功能我还是习惯以自己的理解去记忆:
   单点登录: 从A平台通过链接方式到B系统,中间免去登录过程。
   第三方登录: 从A平台通过B平台的登录进入A系统。中间免去A平台的直接登录,使用B平台的用户认证。
   其实在功能实现流程上来说,“第三方登录”就是包含了“单点登录”流程。

案例实现:

平台AAA 和 平台BBB直接实现第三方平台和单点登录,需求如下:

 (1) 从AAA 平台登录界面使用“第三方平台登录”进入BBB平台登录界面,登录成功后进入AAA平台。

在这里插入图片描述

 (2) 从BBB平台内容,通过aaa链接点击直接进入AAA平台.

在这里插入图片描述

实际上需求(1)已经满足了(2)的功能,只是中间需要一个验证用户登录流程。本文主要以(1)为例实现。
在这里插入图片描述

功能分析:

  1. 点击“BBB平台登录标识”进入登录界面,输入用户名密码登录。此过程需要使用BBB平台用户认证
  2. 登录认证成功之后需要跳转到AAA平台页面,此时需要AAA平台提供一个回调地址,用于BBB平台认 证通过后跳转进入AAA平台。
  3. 进入AAA平台之后,AAA平台需要通过自己系统的用户认证来进入系统

以上为3个核心业务流程,但是在实现过程中需要综合其他因素:安全性、用户认证等。
比如
1.AAA和BBB平台都是有自己的用户认证体系的,不建议共享用户权限,这会差生跨权访问;
2.两平台间信息交互,如果不做好安全,平台数据容易出问题。。。

功能、流程设计:

功能实现需要两个平台配合实现,第一:AAA平台系统向BBB平台申请系统资源(本例使用用户信息)。
第二:BBB系统拿到资源后需要将处理资源信息。

BBB平台工作:
1. 需要AAA平台提供一个回调地址。
2.给AAA平台提供申请资源等API,此过程中不能直接提供信息,需要使用token令牌。保证系统数据安全。
流程如下:
在这里插入图片描述
AAA平台工作

  • AAA平台再拿到令牌token之后,获取BBB平台用户信息,这个时候一般需要将该用户与本系统用户建立关联信息。用处:1.下次直接登录免去建立关系的操作。2.提取本系统用户信息,使用本系统用户认证。

接下来的工作主要就是AAA平台本身的一个认证体系,核心业务流程就是BBB平台一个认证过程。

本文就描述到这,细节有点多,有意向讨论的可以留言!以上仅表示我个人理解和处理方式,中间使用到了JWT(Token生成加密和解析),Spring Security(用户认证)。

猜你喜欢

转载自blog.csdn.net/qq_31142237/article/details/109292569