如今,基础的单点登录机制已经成为企业身份及访问管理解决方案中非常重要的组成部分。对于企业而言,单点登录机制不仅可以提升员工工作效率和应用系统安全系数,还可以助力企业实现IT成本和时间的节约。

6.jpg

一、什么是单点登录

单点登录(Single Sign On),简称SSO,定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

2.jpg

二、单点登录的优势

2.1用户角度

用户能够做到一次登录多次使用,无需记录多套用户名和密码,省心。

2.2系统管理员角度

管理员只需维护好一个统一的账号中心就可以了,方便。

2.3新系统开发角度

新系统开发时只需直接对接统一的账号中心即可,简化开发流程,省时。

1.jpg

三、单点登录的实现方式

单点登录在系统架构中广泛存在,它将多个子系统的认证体系打通,实现了一个入口多处使用。在架构单点登录时,需要考虑在不同的应用环境中需采用不同的单点登录实现方案来满足需求。接下来笔者简单介绍3种实现方式。

3.1以Cookie作为凭证媒介

11.jpg

简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前用户。弱点是如果Cookie的加密算法泄露,攻击者通过伪造Cookie则可以伪造特定用户身份,无法保证安全性,且不能跨域实现免登。 

3.2通过JSONP实现

22.jpg

用户在父应用中登录后,跟Session匹配的Cookie会存到客户端中,当用户需要登录子应用的时候,授权应用访问父应用提供的JSONP接口,并在请求中带上父应用域名下的Cookie,父应用接收到请求,验证用户的登录状态,返回加密的信息,子应用通过解析返回来的加密信息来验证用户,如果通过验证则登录用户。

使用JSONP实现可以解决跨域问题,但安全性其实跟把信任存储到Cookie是差不多的。如果一旦加密算法泄露了,攻击者完全可以按照加密算法来伪造响应请求,子应用接收到这个响应之后一样可以通过验证,并且登录特定用户。 

3.3通过页面重定向的方式

33.jpg

通过父应用和子应用来回重定向中进行通信,实现信息的安全传递。父应用提供一个GET方式的登录接口,用户通过子应用重定向连接的方式访问这个接口,如果用户还没有登录,则返回一个的登录页面,用户输入账号密码进行登录。如果用户已经登录了,则生成加密的Token,并且重定向到子应用提供的验证Token的接口,通过解密和校验之后,子应用登录当前用户。

这种方法解决了上面两种方法暴露出来的安全性问题和跨域的问题,但是并没有前面两种方式方便。 

3.4使用独立登录系统

笔者认为,应用系统数目较多的情况下应采用独立的登录系统。通常大型应用会把授权的逻辑与用户信息的相关逻辑独立成一个应用,称为用户中心。
用户中心不处理业务逻辑,只是处理用户信息的管理以及授权给第三方应用。第三方应用需要登录的时候,则把用户的登录请求转发给用户中心进行处理,用户处理完毕返回凭证,第三方应用验证凭证,通过后就登录用户。

7.jpg

四、远齐身份管理解决方案

4.1完备的单点登录方案

1.提供标准API 接口,灵活集成各类应用。可以与钉钉、企业微信、飞书、welink快速进行单点登录应用集成。

2.可实现多平台不同登录入口,账户身份自动识别关联。避免账户重复申请,提高有效客户数量。

3.可根据不同条件设置访问机制,简化用户登录操作,增强访问控制,提升访问安全。

4.2统一的安全策略管理功能

1.密码策略:支持自定义访问单点登录应用门户时所需密码的长度、复杂程度、轮换次数和过期时限。

2.登录策略:支持自定义多种登录策略,有效抵御恶意访问,可开启二次认证,提高相应安全等级系数。

3.账户行为审计:详细记录和管理所有用户登录行为和IT操作行为。

4.3双因素认证机制

提供对人员、角色、部门设置二次验证规则,根据应用的重要程度,对不同应用按需设置二次验证,灵活适应企业安全管理要求。

4.jpg

五、结语

笔者认为,单点登录机制仅仅是身份及访问管理解决方案的一部分。全方位的身份及访问管理解决方案,还需要包括账号同步、双因素认证、动态授权、审计等功能,才能助力企业对知识产权和数据安全实施全面的保护措施。

远齐科技为客户提供全方位的身份管理解决方案,助力企业快速构建所有应用系统之间的单点登录连接。为企业提供账号同步、双因素认证、基于策略的集中式授权和审计、动态授权、企业可管理性等功能。助力企业实现对所有应用程序访问权限、账户名和密码的统一管理,实现IT运维效率和应用系统安全系数的双重提升。


下一篇:浅谈软件项目里文档的重要性