一种基于互联网架构的单点登录实现方法技术

技术编号:25406442 阅读:21 留言:0更新日期:2020-08-25 23:09
本发明专利技术涉及全民健康信息平台子系统集成领域,具体提供了一种基于互联网架构的单点登录实现方法。该方法采用平台账号和各个子系统的账号映射的方式实现平台用户权限体系和子系统的用户权限体系的对应,采用redis记录平台分配给各个子系统的票据、cookies和登出接口,采用kafka将平台的新增账号信息通知给各个子系统,采用Nginx作为反向代理实现负载均衡。与现有技术相比,本发明专利技术一方面减少各个子系统的开发成本,另一方面减少各个子系统维护人员维护用户权限的工作量,具有良好的推广价值。

【技术实现步骤摘要】
一种基于互联网架构的单点登录实现方法
本专利技术涉及全民健康信息平台子系统集成领域,具体提供一种基于互联网架构的单点登录实现方法。
技术介绍
全民健康信息平台包含公共卫生、计划生育、医疗服务、医疗保障、药品管理和综合管理等六大业务应用,分为国家、省、地市、县四级平台,以四级平台作为六大业务应用纵横连接的枢纽,以居民健康卡为群众享受卫生计生服务的介质,为各级各类卫生机构提供实现业务应用互联互通、信息共享和有效协同的平台。全民健康信息平台从覆盖范围上来说,横向要联通同级卫生健康相关信息平台,纵向要联通上下级全民健康信息平台;从功能上来说,要集成各种不同功能的子系统。通常,各级信息平台以及各个子系统都有独立的登录模块、用户和权限体系,这就意味着从全民健康信息平台进入各级信息平台以及各个子系统还需要逐一登录,这对于使用者来说很不方便。要实现单点登录,首先要对接各子系统的用户权限体系,常见的处理方式有如下两种:1、建立一个权限系统,集中管理各个子系统的用户权限体系,即各个子系统的用户认证和鉴权都要通过权限系统,这使得各个子系统的用户认证和鉴权模块都近乎重新开发,这种方案不仅改造代价高难以推动,还使得各个子系统都依赖权限系统和权限系统高度耦合。2、同步各个子系统的用户信息,即平台和各个子系统的用户信息保持一致,这意味着大多数系统已经存在的用户和授权信息都失败,并且需要重新分配账号和授权,大大增加了维护人员的工作量。
技术实现思路
本专利技术是针对上述现有技术的不足,提供一种实用性强的基于互联网架构的单点登录实现方法。本专利技术解决其技术问题所采用的技术方案是:一种基于互联网架构的单点登陆实现方法,该方法采用平台账号和各个子系统的账号映射的方式实现平台用户权限体系和子系统的用户权限体系的对应,采用redis记录平台分配给各个子系统的票据、cookies和登出接口,采用kafka将平台的新增账号信息通知给各个子系统,采用Nginx作为反向代理实现负载均衡。进一步的,实现上述方法,分为以下步骤:(1)用户权限分配;(2)账号映射;(3)单点登陆;(4)单点登出;(5)部署。进一步的,在步骤(1)中,由平台负责分配用户使用子系统的权利,各子系统负责分配用户使用其功能的权利。进一步的,在步骤(2)中,当子系统已有对应账号,但平台没有账号时,用户从平台进入子系统,用户输入子系统的账号和密码验证通过后,需要在平台建立平台账号和子系统账号的映射关系;当平台已有对应账号,但子系统没有账号时,则将平台账号信息写入kafka,子系统从kafka中读取账号信息,并在子系统中建立对应的账号,调用平台接口建立映射关系。进一步的,在步骤(2)中,平台若有新增账号时,管理员将新增的账号信息写入kafka中,子系统从kafka读取账号信息,并在子系统建立对应账号,调用平台接口建立映射关系;若子系统有新增账号,则输入子系统的账号和密码验证通过后,在平台建立平台账号和子系统账号的映射关系即可。进一步的,在步骤(3)中,登陆平台的用户进入子系统时,会带着子系统的ID,子系统收到请求,会重定向到平台,平台验证用户是否登陆并判断登陆用户是否有访问所述子系统的权限;若无,则显示错误;若有,平台生成ticket,并将sessionID、系统ID和ticket存入redis;然后,再附加上ticket重新访问子系统,子系统收到请求,会带着自有的cookies和登出地址重定向到平台,平台验证ticket是否有效、登陆用户的session是否已过期,若都有效,则将子系统的cookies和登出地址写入redis中,查找出平台登录用户对应的子系统的用户,重新访问子系统,经过此系统验证,子系统获取到登录账号,即可自行登录本系统。进一步的,在步骤(4)中,若从平台登出,则平台从redis中查询出当前登录的子系统以及登出接口,异步调用,继而从平台登出;若从子系统登出,则子系统请求平台的登出接口,平台登出接口从redis中查询出当前登录的子系统以及登出接口,异步调用,继而从平台登出。进一步的,在步骤(5)中,进入各个子系统时,都要到平台的认证中心进行认证,所述认证中心采用分布式部署,并使用Nginx作为反向代理实现负载均衡。本专利技术的一种基于互联网架构的单点登录实现方法和现有技术相比,具有以下突出的有益效果:本专利技术使得各子系统可以维持各自的用户权限体系,只和平台做几个调用接口便可以实现从平台单点登陆至各子系统的功能。只需在平台登录一次,即可免登录进入集成的各系统;只需在任一集成系统或者平台登出,即可实现在平台和所有集成系统的登出。一方面减少各个子系统的开发成本,另一方面减少各个子系统维护人员维护用户权限的工作量。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图1是一种基于互联网架构的单点登录实现方法的登陆流程图;附图2是一种基于互联网架构的单点登录实现方法的平台登出图;附图3是一种基于互联网架构的单点登录实现方法的子系统登出图。具体实施方式为了使本
的人员更好的理解本专利技术的方案,下面结合具体的实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本专利技术保护的范围。下面给出一个最佳实施例:如图1-3所示,本实施例中的基于互联网架构的单点登录实现方法,该方法主要采用平台账号和各个子系统的账号映射的方式实现平台用户权限体系和子系统的用户权限体系的对应,采用redis记录平台分配给各个子系统的票据、cookies和登出接口,采用kafka将平台的新增账号信息通知给各个子系统,采用Nginx作为反向代理实现负载均衡。实现上述方法时,具体的实现如下:(1)用户权限分配:平台负责分配用户有使用哪些子系统的权利;各子系统负责分配用户有使用子系统哪些功能的权利。(2)账号映射:当子系统已有对应账号,但平台没有账号时,用户从平台进入子系统,用户输入子系统的账号和密码验证通过后,需要在平台建立平台账号和子系统账号的映射关系;当平台已有对应账号,但子系统没有账号时,则将平台账号信息写入kafka,子系统从kafka中读取账号信息,并在子系统中建立对应的账号,调用平台接口建立映射关系。平台若有新增账号时,管理员将新增的账号信息写入kafka中,子系统从kafka读取账号信息,并在子系统建立对应账号,调用平台接口建立映射关系;若子系统有新增账号本文档来自技高网
...

【技术保护点】
1.一种基于互联网架构的单点登录实现方法,其特征在于,该方法采用平台账号和各个子系统的账号映射的方式实现平台用户权限体系和子系统的用户权限体系的对应,采用redis记录平台分配给各个子系统的票据、cookies和登出接口,采用kafka将平台的新增账号信息通知给各个子系统,采用Nginx作为反向代理实现负载均衡。/n

【技术特征摘要】
1.一种基于互联网架构的单点登录实现方法,其特征在于,该方法采用平台账号和各个子系统的账号映射的方式实现平台用户权限体系和子系统的用户权限体系的对应,采用redis记录平台分配给各个子系统的票据、cookies和登出接口,采用kafka将平台的新增账号信息通知给各个子系统,采用Nginx作为反向代理实现负载均衡。


2.根据权利要求1所述的一种基于互联网架构的单点登录实现方法,其特征在于,实现上述方法,分为以下步骤:
(1)用户权限分配;
(2)账号映射;
(3)单点登录;
(4)单点登出;
(5)部署。


3.根据权利要求2所述的一种基于互联网架构的单点登录实现方法,其特征在于,在步骤(1)中,由平台负责分配用户使用子系统的权利,各子系统负责分配用户使用其功能的权利。


4.根据权利要求2所述的一种基于互联网架构的单点登录实现方法,其特征在于,在步骤(2)中,当子系统已有对应账号,但平台没有账号时,用户从平台进入子系统,用户输入子系统的账号和密码验证通过后,需要在平台建立平台账号和子系统账号的映射关系;
当平台已有对应账号,但子系统没有账号时,则将平台账号信息写入kafka,子系统从kafka中读取账号信息,并在子系统中建立对应的账号,调用平台接口建立映射关系。


5.根据权利要求4所述的一种基于互联网架构的单点登录实现方法,其特征在于,在步骤(2)中,平台若有新增账号时,管理员将新增的账号信息写入kafka中,子系统从kafka读取账号信息,并在子系统建立对应账号,调用平台接口建立映射关系;<...

【专利技术属性】
技术研发人员:石兴磊郑珊珊李瑞
申请(专利权)人:山东健康医疗大数据有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1