Authing | 为何全部软件都应该使用单点登陆来管理用户?

1、什么是单点登陆?

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

2、使用 SSO 带来的「业务优点」

1)提升用户的效率

用户再也不被屡次登陆困扰,也不须要记住多个 ID 和密码。另外,用户忘记密码并求助于支持人员的状况也会减小。html

2)提升开发人员的效率

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

3)简化管理

若是应用程序加入了单点登陆协议,管理用户账号的负担就会减轻。简化的程度取决于应用程序,由于 SSO 只处理身份验证。因此,应用程序可能仍然须要设置用户的属性(好比访问特权)。github

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

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

1)向下兼容

单点登陆是一种比普通的帐号密码登陆更加规范化的解决方案,若是有一天你的业务扩大,想要聚合全部平台的用户,那么提早用上了单点登陆的你会使整个过程变得很是容易。有太多前期的用户系统作的很不规范,系统壮大后须要投入大量人力物力来进行迁移的案例出现。形成软件前期不使用单点登陆的主要缘由是单点登陆的复杂性,若是单点登陆的复杂性和实施成本能被下降,那么我相信不少人都愿意直接使用编程

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

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

2)简化迁移迁出流程

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

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

3)强化管理和安全流程

进行身份认证的目的是为了受权用户可访问哪些资源,单点登陆都有十分规范化的权限受权系统,RBAC 是业内比较承认的受权管理方案。单点登陆系统通常都自带开发者友好和组织友好的 RBAC 方案,可让开发者快速实现中心化受权体系。学习

除此以外,用户的历史活动为断定可信度提供了丰富的分析素材。系统能够经过挖掘用户的历史操做构建其行为基线,而后经过比较当前操做和其行为基线来计算用户的信任评分。

经过比较当前用户的地理位置坐标能够发现是否有异常,好比一个用户的设备在一个较小的时间窗口内忽然出如今某个用户不可能达到的坐标;再好比用户有多个设备,但其报告了不同的地理位置。可是必须注意,地理位置是存在误差的,因此地理位置的权重不该该太高,而是做为一种参考。

成熟的单点登陆系统都会提供这些功能,除此以外还有可定制的加密算法、用户密码泄漏检测等多维化功能,保障整个系统的管理安全和流程安全。

4、如何低成本的实现单点登陆 ?

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

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

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

相关阅读

欢迎关注 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/qrcode-sample
  • 文档:https://docs.authing.cn/authing/

欢迎关注 Authing 技术专栏

Authing 社区

相关文章
相关标签/搜索