一文介绍使用 JIT 认证后实时同步用户更加优雅

简介: 首先本次说的 JIT 指的是 Just In Time ,可以理解为及时录入,一般用在什么样的场景呢?

还记的上次我们说过关于第三方组织结构同步的功能实现,主要目的是将第三方源数据同步到内部平台中来,方便做管控和处理

此处的管控有一部分是为了做用户身份认证

此处内部平台和第三方 IDaaS 进行对接,一般会使用 OAuth2.0 协议完成具体的实现,关于 OAuth2.0 协议一般有如下几种方式:

  • 授权码
  • 隐藏式
  • 密码式
  • 客户端凭证

自然,关于身份认证相关的细节内容,不在本次文章中展现,在后续的文章中再来详细阐述,本次文章中 ,重点还是要来聊聊 JIT 是怎么去实现的

接下来分别聊聊关于如下两种用户录入到内部平台的流程

  • 先同步用户,再认证
  • 直接使用 JIT 方式认证后录入用户

先同步用户,再认证

不知做过身份认证或者处理过第三方组织结构同步的同学是否会有同感

最初做基本第三方用户身份认证的时候,是否会有这么一个执念,一定是需要先将第三方用户的数据同步到内部平台中来,再进行认证,毕竟用户都不在平台中,我内部平台如何去对用户做基本的校验和管控???

确实如此,人的想法会产生感觉,感觉会产生行为,行为会产生结果,自然而然的认为这么处理是理所当然的,因此就有了如下这样的实现方式

首先认证是很多系统的第一道关卡,有的系统是自身来实现认证,例如会提供一些账号密码认证,短信认证,验证码认证等等

但是对于这种第三方平台同步过来的用户,一般会使用单点登录的方式来进行处理

  • 简单来说咱们的内部平台就是第三方 IDaaS 的一个应用
  • 用户需要登录咱们内部系统,需要先去经过第三方IDaaS 的认证,第三方 IDaaS 会将认证结果凭证给到我们内部平台
  • 内部平台和 IDaaS 通信后,完成基本的鉴权后,内部平台即相信了这个用户的身份,则认证通过

此处简单说明一下单点登录

单点登录翻译过来是 Single Sign On,简称就是SSO

作用是:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。

关于认证方面的内容,后续详细聊聊

先同步用户再认证流程如下

image.png

  1. 先将第三方平台的用户数据同步到内部平台中
  2. 用户触发认证后,第三方平台回调内部平台的 redirect_uri ,传入基本的登陆吗和其他防篡改信息
  3. 内部平台通过登录码以及其他必要信息与第三方平台交互,拿到具体的登录用户详情
  4. 内部平台校验该用户是否可以通过本平台的校验,若校验不通过,则认证失败
  5. 用户认证通过,可以访问认证后的一些系统

这种方式乍一看好像没有什么问题,实际对于租户(一个租户可以理解为一家公司,用户则是公司的员工)实际运作起来,还是会带来一些麻烦,用起来还是不够爽,认证前一定要先同步数据,很多租户是不愿意这样做的

✔举例时刻

譬如说,一个伟大的公司有 1万个员工,需要使用我们内部平台的产品,则这公司员工必然是需要经过我们内部平台的身份认证才可以使用我们产品提供的服务

可是这家公司习惯使用钉钉或者企业微信来进行管理自己的员工,用户不期望自己用手将员工信息录入到我们内部平台👀👀

这个时候便提出了第三方组织结构同步,即让 IDaaS 去对接例如钉钉或者企业微信,最终数据同步到我们内部平台

因此,我们就可以使用单点登录来进行用户身份认证了

简单来说,用户找我们内部平台进行认证,实际上是跳转到具体的钉钉或者企业微信去做实际认证,只不过认证结果最终会给到我们内部平台,我们内部平台去做基本校验即可

看到此处,是否会有小伙伴有疑问,直接将第三方平台的用户密码也同步过来不就好吗? 这样就可以自己内部平台去校验账号密码了

兄弟,要知道,第三方平台的用户密码是属于用户隐私,是不会暴露出去的,而且在 A 平台认证,使用 B 平台的密码,这不合理哦

🧐🧐🧐这个时候,这个伟大的公司来了一批新人,这批新人也需要用上我们的内部产品,这个时候还需要管理员去操作一次用户同步才行

如果新员工是断断续续的来,那么管理员都要去操作同样的同步用户操作,公司管理员的管理成本一下子就提高了不少,对于公司管理员来说是不合理的,这个产品还不太行

貌似解决了我的一部分问题,但是好像又没有全部解决,要是有更好的产品,我自然第一时间会进行替换😥😥😥

🧐🧐直接使用 JIT 方式认证后录入用户

只要思想不滑坡,办法总比困难多

一般自己的产品如果不是被自己优化迭代,那么就是被竞争者颠覆,自我更新迭代尤其重要

针对以上问题,我们提出了 JIT 的方式,让用户无需全部同步组织结构,而是经过认证后,即可录入到平台

这样即减少了管理员不必要的麻烦,还让用户认证变得简单,最重要的是让用户认证和用户同步得到真实的解耦,不再相爱相杀,相互影响😃😃

上面说过 JIT 即 Just In TIme ,通过翻译则能感受到他的作用,实时录入,正是时候,这个功能做上去,对于客户来说,确实正是时候

JIT 的基本实现也很简单明了,流程如下

image.png

  • 用户触发认证,经过第三方平台认证后,内部平台校验认证信息,拿到具体用户详情
  • 内部平台校验该用户是否存在于平台中,若存在,则正常进行认证后的逻辑
  • 若用户不存在于平台中,则将用户的组添加到平台中,将该用户添加到平台中,再走认证后的逻辑

可以查看,仅仅是在认证流程中做了一些微调,即可让客户管理员轻松许多,使用了这个产品,管理成本也大幅降低,效率大幅提升

做产品,做开发,如果能够看得更远,站在用户的角度去看,可能你会看到更多的需求和问题

希望我们都能拥有用户思维

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~

相关文章
|
4天前
|
SQL DataWorks 数据处理
DataWorks常见问题之实时同步过程中遇到常见问题重新启动同步如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
41 2
|
4天前
|
消息中间件 分布式计算 DataWorks
DataWorks常见问题之查看数据地图模块总的存储大小失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
4天前
|
分布式计算 安全 专有云
maxcompute配置问题之不能正常执行如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
26 1
|
4天前
|
DataWorks NoSQL 关系型数据库
DataWorks数据源问题之同步任务脚本如何解决
DataWorks数据源是指DataWorks中配置的用于数据集成的外部数据源;本合集将讲解如何在DataWorks中配置和管理数据源,以及处理数据源连接和集成过程中的问题。
65 7
|
4天前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之在DataWorks中,通过脚本模式来配置同步任务的读取端的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
26 0
|
4天前
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
26 1
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
|
4天前
|
DataWorks Java 数据库连接
DataWorks操作报错合集之dataworks 离线同步任务 出现 “实时生成的过期实例” 如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
31 0
|
4天前
|
缓存 DataWorks 大数据
DataWorks常见问题之无痕模式登陆就没了如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
24 0
|
4天前
|
SQL 分布式计算 DataWorks
DataWorks常见问题之API同步接入maxcomputer表如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
45 2
|
4天前
|
DataWorks 关系型数据库 数据处理
DataWorks常见问题之多个数据离线同步任务卡在运行状态10个多小时如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
38 0