前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈单点登录系统的实现

浅谈单点登录系统的实现

作者头像
希望的田野
发布2019-09-24 14:11:25
6360
发布2019-09-24 14:11:25
举报
文章被收录于专栏:信息化漫谈信息化漫谈

最近经常在听用户说,以前都谈组网,现在都谈数据整合、谈应用。谈到这里,要把多个沉淀下来的数据孤岛打通,实现数据整合很难,但可以分步走。第一步,一般是实现多个业务系统的单点登录。以前领导登每个业务系统都需要输入帐号密码,很烦人,有了单点登录系统,一次登录验证,在一段时间内不再登录其他的业务系统。

一、如果客户问到我们,问题1 单点登陆系统需要其它业务系统的配合开发吗?单题2 单点登陆系统能够实现对其它业务系统的子模块功能权限统一管理吗?我们该如何回复? 因此,了解目前单点登陆系统(Single Sign On)SSO的原理很重要。

二、目前业务主流的SSO系统的实现原理,其实像欢乐谷游乐场的套票。当我们进入游乐场时需要买一张套票,套票种类有豪华版、标准版,决定了你能玩哪些游乐设施。当你拿着套票去每个游乐点时,服务人员会验证你的套票是否有玩该游乐点设施的权限。带着这个比喻我们来看一下真实的原理。

三、当用户任意登陆一个业务系统服务器A时,业务A发现用户并没有登陆令牌,因此要求用户跳转至认证服务器进行单点统一认证(步骤1)。用户认证通过后(步骤2),拿到成功登陆令牌。这里,用户可以访问业务服务器A、B(步骤3、5),业务服务器拿到用户的登陆成功令牌后向认证服务器校验该令牌的有效性及登陆是否在有效时间内(步骤4、6),如果业务服务器代认证通过,则用户可以真实访问服务器A、B的业务资源。

四、我们来简单看一下用代码如何实现。

1、首先、认证服务器必须具有创建令牌的功能。令牌的组成部分包括登陆时间、登陆有效时间、用户名、校验码等。同时为避免该信息被窃取,一般会将令牌进行AES的对称加密。

2、其次,认证服务器还必须通过微服务的方式放出验证令牌的功能,一般用webservice提供接口。

3、对于业务服务器,必须关闭原来的自有认证界面,并开发令牌认证的子模块。因此,对用户的问题1,子业务系统必须进行开发。

针对问题2,SSO系统一般不具备对子业务系统的功能模块的统一管理功能,如果进行对接开发也可以,但难度较大且因子业务系统功能变更较快,一般不建议SSO开发子业务系统的功能模块统一管理功能。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信息化漫谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档