22-登录功能功能架构设计八(企业信息化系统单点登录)
xiangliheart
xiangliheart
发布于 2022-04-20 / 12 阅读 / 0 评论 / 0 点赞

22-登录功能功能架构设计八(企业信息化系统单点登录)

企业级单点登录设计

大多数企业、机构都有各种各样的系统,每个系统都有各自的用户体系和登录流程,因此用户需要记忆各个系统的登录账号和密码,以及登录地址。怎样将这些孤立的系统整合起来,让用户一次登录,处处登录,让系统之间的访问既安全又便捷就是单点登录的目的。

单点登录可以通过整合用户体系、账号绑定、授权绑定等多种方式完成。

4.9.1 认识单点登录

单点登录(Single Sign On,SSO)是一种企业级系统整合方案,目的是只需要登录一次就可以访问所有互相信任的系统。

企业发展初期一般只有一个系统,随着企业不断发展,系统不断增多,有OA系统、财务系统、决策系统、销售系统等,大型企业的系统甚至多达几百个。这些系统有的是企业在不同时期开发的,有的是从外部厂商采购的。图4-38所示为企业前后期登录状况对比。

图4-38 企业前后期登录状况对比

企业都希望用户只需要登录一次,就可以全系统通用。一个人只记住一个系统的账号、密码和地址即可,这就是所谓的单点登录模式。

如图4-39所示,用户只需要登录系统A,就代表可以访问系统B、

C、D、E。用户只需要记忆系统A的账号、密码和地址信息即可。

图4-39 单点登录

如图4-40所示,实现单点登录面临的问题如下。

(1)     各个系统的账户体系没有统一,各自存储在自己的数据库中

(可能数据库类型也不同),数据没有打通。

(2)     彼此之间难以建立关联关系,各个系统的登录流程各不相同,有的系统采用账号+密码登录,有的系统采用手机号+密码登录,等等。

(3)     用户登录成功后,无法与多个系统保持Session会话。

图4-40 单点登录面临的问题

4.9.2 简单绑定单点登录设计

单点登录简单绑定模式如图4-41所示。例如,用户在OA系统的账号为yinhongliang,在财务系统的账号为yinhl,在进销存系统的账号为 yhl,密码也各自不同。 如果想登录OA系统,就可以访问财务系统和进销存系统,则必须建立账号绑定关系,一个账号要能绑定多个系统账号(常见的绑定QQ号、微信号、微博账号,都是类似的原理)。

图4-41 单点登录简单绑定模式

为了完成账号绑定,简单的办法就是在OA系统中提供一个账号绑定的功能,让用户录入其在第三方系统中的账号和密码,把其他系统的账号和密码都保存下来并与自己的账号形成映射关系。例如,可以在OA系统中按表4-8进行绑定。

表4-8 OA系统第三方用户绑定

对于yinhongliang这个账号,就会形成表4-9所示的绑定关系。

表4-9 用户yinhongliang账号绑定数据存储示例

因此,当用户想访问财务系统和进销存系统时,只要查询出对应的账号和密码,就可以模拟第三方登录的流程,跳转进入第三方系统,从而完成单点登录功能。

优缺点分析:这种模式最大的优点是简单,第三方系统无须进行开发;缺点是安全性极差,相当于把账号和密码都暴露给了其他系统,并且此种模式并不适用于手机验证码、扫码登录等方式。

4.9.3 授权绑定单点登录设计

比较安全的方式是访问令牌绑定设计,账号和密码不暴露给其他系统,而只发放凭证。

单点登录授权绑定流程如图4-42所示,用户首先登录SSO系统,然后发起绑定操作。这时需要跳转到第三方系统的授权页面(此页面为被绑定系统的页面,而不能由OA系统开发,从而保证安全性)。授权页面可以为用户名密码认证、手机验证码认证、扫码认证等方式。当第三方系统登录认证成功后,会生成一串加密字符,作为系统访问凭证返回SSO系统。后续SSO系统跳转或访问其他系统时,只需要携带此凭证进行访问即可。第三方系统接收到凭证之后,验证凭证的有效性,如果凭证合法、有效则可访问。

图4-42 单点登录授权绑定流程

在SSO系统中新建一张账号绑定表,如表4-10所示。

表4-10 账号绑定

对于yinhongliang这个账号,就会形成表4-11所示的绑定关系。

表4-11 用户yinhongliang账号绑定数据存储示例

在第三方系统中新建用户凭证表,可以做很多的自主控制,安全性牢牢地把控在各系统自己的手中,如表4-12所示。

表4-12 用户凭证

续表

对于yinhl这个账号,在财务系统会有表4-13所示的数据存储。

表4-13 用户yinhl在财务系统中的用户凭证数据

当SSO系统访问第三方系统时,就是通过表4-13中的数据来确认凭证是否有效和是否到期的。也可以通过表4-13中的数据状态、有效期等数据来控制凭证是否可以使用,是否需要作废并重新申请。


评论