Authing | 为什么所有软件都应该使用单点登录来管理用户?

一、什么是单点登录?


单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

二、使用 SSO 带来的「业务优势」

1)提高用户的效率

用户不再被多次登录困扰,也不需要记住多个 ID 和密码。另外,用户忘记密码并求助于支持人员的情况也会减少。

2)提高开发人员的效率

SSO 为开发人员提供了一个通用的身份验证框架。实际上,如果 SSO 机制是独立的,那么开发人员就完全不需要为身份验证操心。他们可以假设,只要对应用程序的请求附带一个用户名,身份验证就已经完成了。

3)简化管理

如果应用程序加入了单点登录协议,管理用户帐号的负担就会减轻。简化的程度取决于应用程序,因为 SSO 只处理身份验证。所以,应用程序可能仍然需要设置用户的属性(比如访问特权)。

这些都属于业务上的优势,除了业务上的优势外,还有软件架构层面的优势。

三、使用 SSO 带来的「软件架构层面的优势」

1)向下兼容

单点登录是一种比普通的账号密码登录更加规范化的解决方案,如果有一天你的业务扩大,想要聚合所有平台的用户,那么提前用上了单点登录的你会使整个过程变得非常容易。有太多前期的用户系统做的很不规范,系统壮大后需要投入大量人力物力来进行迁移的案例出现。造成软件前期不使用单点登录的主要原因是单点登录的复杂性,如果单点登录的复杂性和实施成本能被降低,那么我相信很多人都愿意直接使用

再类比一下,使用单点登录对你的系统向下兼容就好像 C++ 可以兼容 C 语言一样,你在用 C++ 时,使用面向对象编程的同时,不会耽误你面向过程编程。相反,如果你使用了 C 语言,在理论上你当然也可以面向对象编程,只不过过程过于复杂,异常痛苦,甚至不符合 C 语言的设计思想。为什么要将不合适的东西强行扭成合适的呢?这就是单点登录相较于普通登录方式最本质的区别。

教科书为了让你快速上手,所以选择 C 语言开始;PHP 为了让你快速上手,选择让你学习最简单的单向「用户名 - 密码」登录开始。但是我们都知道,软件最好从一开始就使用面向对象编程,那么任何的互联网应用,从一开始就使用「单点登录」也是同样的道理。

2)简化迁移迁出流程

假设你的软件从一开始就没有考虑过使用单点登录,那么当你的业务拓展成功并且有多个平台后,多平台用户的 Merge 就会变成很大的一个难点,比如如何确定注册到 A 平台的邮箱和 B 平台的邮箱是同一个、用户的密码如何重置、如何确定 Merge 完成后的用户信息没有任何损失等等。

如果你从一开始就使用了单点登录,那么这些问题都将不复存在。将用户从平台中迁移出来将像导出 Excel 到 CSV 一样简单。

四、如何低成本的实现单点登录 ?

前面我们讲了为什么所有软件都应该使用单点登录来管理用户,那么如何最低成本的实现单点登录呢?这里就要介绍下 Authing 了。

Authing 是一款身份认证云,提供了开发者优先和极易拓展的开发平台,简化了身份管理的流程,使用 Authing 可以用极短的时间和极低的成本实现单点登录(用户量数十万的应用从迁移进 Authing 到上线到生产环境只需要两天),如果你对此感兴趣,可以查看这篇文章:用 Authing 10 分钟实现单点登录。

最后,希望这篇文章能对你的下一次软件开发有帮助~

相关阅读

  • Authing 是什么以及为什么需要 Authing
  • 我们为什么坚持做 ToB 的慢生意
  • Authing 知识库

欢迎关注 Authing 技术专栏

什么是 Authing?

Authing 提供专业的身份认证和授权服务。
我们为开发者和企业提供用以保证应用程序安全所需的认证模块,这让开发人员无需成为安全专家。
你可以将任意平台的应用接入到 Authing(无论是新开发的应用还是老应用都可以),同时你还可以自定义应用程序的登录方式(如:邮箱/密码、短信/验证码、扫码登录等)。
你可以根据你使用的技术,来选择我们的 SDK 或调用相关 API 来接入你的应用。当用户发起授权请求时,Authing 会帮助你认证他们的身份和返回必要的用户信息到你的应用中。

Authing 在应用交互中的位置

  • 官网:http://authing.cn
  • 小登录:https://wxapp.authing.cn/#/
  • 仓库: 欢迎 Star,欢迎 PR

    • https://gitee.com/Authi_ng
    • https://github.com/authing
  • Demo:

    • https://sample.authing.cn
    • https://github.com/Authing/qr...
  • 文档:https://docs.authing.cn/authing/

欢迎关注 Authing 技术专栏

你可能感兴趣的:(javascript)