CN111444495B - 一种基于容器实现单点登录的***及方法 - Google Patents

一种基于容器实现单点登录的***及方法 Download PDF

Info

Publication number
CN111444495B
CN111444495B CN202010431414.5A CN202010431414A CN111444495B CN 111444495 B CN111444495 B CN 111444495B CN 202010431414 A CN202010431414 A CN 202010431414A CN 111444495 B CN111444495 B CN 111444495B
Authority
CN
China
Prior art keywords
single sign
user
application
container
application system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010431414.5A
Other languages
English (en)
Other versions
CN111444495A (zh
Inventor
常官清
秦益飞
杨正权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Yianlian Network Technology Co ltd
Original Assignee
Jiangsu Yianlian Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Yianlian Network Technology Co ltd filed Critical Jiangsu Yianlian Network Technology Co ltd
Priority to CN202010431414.5A priority Critical patent/CN111444495B/zh
Publication of CN111444495A publication Critical patent/CN111444495A/zh
Application granted granted Critical
Publication of CN111444495B publication Critical patent/CN111444495B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1078Logging; Metering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种基于容器实现单点登录的***及方法,该基于容器实现单点登录的***包括应用访问容器和单点登录服务器,应用访问容器配置为部署各应用***,接管各应用***的所有请求与响应,并与各应用***实现登录对接;单点登录服务器配置为与应用访问容器对接,并进行统一认证。该基于容器实现单点登录的***及方法具有使用方便、工作量小的优点。

Description

一种基于容器实现单点登录的***及方法
技术领域
本发明涉及了一种基于容器实现单点登录的***及方法。
背景技术
目前,很多企业内部会使用到很多的应用***,由于存在开发商、编程语言的不同等问题,各应用***采用的登录方式也不尽相同,企业内部员工在使用不同的应用***时,需要针对每个应用***输入相应的用户名和密码,这严重的影响了用户的使用体验和工作效率。
单点登录(SSO,Single Sign On)是一种只需要登录一次就可以访问所有相互信任的应用***的技术。该技术将身份认证的工作交由单点登录服务器完成,使用户在不同的应用***之间跳转、浏览时只需要进行一次登录即可,也即企业内部员工在不同的应用***中,只需要登录一次就可以访问所有相互信任的应用***。
目前,一些身份认证与授权的技术与协议,如CAS、OAuth、SAML等,已经提供了单点登录的实现方式,也有非常多的成功实践。但这些单点登录技术需要对现有的应用***进行改造,集成单点登录客户端到应用***中,所有的认证操作都由单点登录客户端和单点登录服务器来完成,如图1所示。由于现有技术方案主要是由应用***集成单点登录客户端,由单点登录客户端实现与单点登录服务器对接的所有工作;虽然单点登录服务器支持的协议是固定的,但是由于企业内部不同的应用***的编程语言、部署环境等各不相同,需要的客户端也各不相同,因此需要针对每个应用***做集成,这需要企业有非常高的技术研发能力,且开发、测试的成本非常高。另外,很多应用***因为开发年代久远,提供商、源码等都很难找到,使得集成单点登录客户端的改造将无从谈起。
发明内容
为了解决背景技术中所存在的问题,本发明提出了一种基于容器实现单点登录的***及方法。
一种基于容器实现单点登录的***,包括
应用访问容器,配置为部署各应用***,接管各应用***的所有请求与响应,并与各应用***实现登录对接;
单点登录服务器,配置为与应用访问容器对接,并进行统一认证。
基于上述,所述应用访问容器包括
***模块,用于拦截用户的访问请求;
统一认证客户端模块,用于校验该访问请求所携带的登录票据信息;
票据缓存模块,用于缓存已登录用户的登录票据信息;
应用登录模块,用于提供登录页面。
基于上述,所述单点登录服务器包括
统一认证服务端模块,用于校验用户信息;
票据管理模块,用于生成、管理登录票据信息。
一种基于容器实现单点登录的方法,包括如下步骤:
S01、用户发送访问请求到应用***;
S02、应用访问容器拦截所有用户的访问请求;
S03、校验访问请求是否携带登录票据,若携带有效登录票据,则执行步骤S08,否则执行步骤S04;
S04、将用户请求重定向到单点登录服务器的单点登录页面,用户通过单点登录页面输入用户信息,提交到单点登录服务器进行校验;
S05、校验通过后,单点登录服务器会重定向到应用访问容器的回调地址,并携带登录票据;
S06、应用访问容器使用登录票据从单点登录服务器获取用户信息,并使用用户信息调用应用***的登录接口,完成应用***的内部认证;
S07、完成应用***认证后,重定向到用户最初的访问地址,并携带登录票据,跳转至步骤S02;
S08、将该访问请求转发至应用***,并将应用***的响应结果返回给用户。
基于上述,步骤S03包括如下步骤:
S31、统一认证客户端模块判断访问请求中是否包含应用***的Cookie;若有,则使用Cookie的值,在票据缓存模块查询登录票据,并校验登录票据的有效期,符合要求则执行步骤S08;若无,或登录票据超期,则继续以下步骤S32;
S32、统一认证客户端模块使用UUID生成唯一标识,为用户设置Cookie;
S33、将Cookie值作为用户身份标识,并记录用户此次访问的地址,执行步骤S04。
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说,本发明采用容器的方式将应用***包裹起来,所有应用***提供的服务交由应用访问容器来处理,由应用访问容器实现与单点登录服务器的协议对接;只需要由容器作为客户端实现单点登录协议即可,技术负责度低,研发工作量小;所有应用***无需集成与开发,极大的减少了开发、测试的工作量,并且一些历史遗留、较老的应用***也可以接入单点登录,实现统一认证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明现有单点登录***的结构示意框图。
图2是本发明的结构示意框图。
图3是本发明的流程示意图。
图4是本发明首次访问应用***的时序示意图。
图5是本发明访问第二个应用***的时序示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2和图3所示,一种基于容器实现单点登录的***,包括应用访问容器和单点登录服务器,应用访问容器配置为部署各应用***,接管各应用***的所有请求与响应,并与各应用***实现登录对接;单点登录服务器配置为与应用访问容器对接,并进行统一认证。
具体的,应用访问容器用于代替企业内部的业务应用***实现单点登录的功能,包括***模块、统一认证客户端模块、票据缓存模块、应用登录模块,***模块用于拦截用户的访问请求;统一认证客户端模块用于校验该访问请求所携带的登录票据信息;票据缓存模块用于缓存已登录用户的登录票据信息;应用登录模块用于提供登录页面。所述单点登录服务器主要实现统一认证功能,支持多种单点登录协议的客户端对接,实现应用***的单点登录功能,包括统一认证服务端模块和票据管理模块,统一认证服务端模块用于校验用户信息;票据管理模块用于生成、管理登录票据信息。
使用该基于容器实现单点登录的***的具体方法,包括如下步骤:S01、用户发送访问请求到应用***;S02、应用访问容器拦截所有用户的访问请求;S03、校验访问请求是否携带登录票据,若携带有效登录票据,则执行步骤S08,否则执行步骤S04;S04、将用户请求重定向到单点登录服务器的单点登录页面,用户通过单点登录页面输入用户信息,提交到单点登录服务器进行校验;S05、校验通过后,单点登录服务器会重定向到应用访问容器的回调地址,并携带登录票据;S06、应用访问容器使用登录票据从单点登录服务器获取用户信息,并使用用户信息调用应用***的登录接口,完成应用***的内部认证;S07、完成应用***认证后,重定向到用户最初的访问地址,并携带登录票据,跳转至步骤S02;S08、将该访问请求转发至应用***,并将应用***的响应结果返回给用户。其中,步骤S03包括如下步骤:S31、统一认证客户端模块判断访问请求中是否包含应用***的Cookie;若有,则使用Cookie的值,在票据缓存模块查询登录票据,并校验登录票据的有效期,符合要求则执行步骤S08;若无,或登录票据超期,则继续以下步骤S32;S32、统一认证客户端模块使用UUID生成唯一标识,为用户设置Cookie;S33、将Cookie值作为用户身份标识,并记录用户此次访问的地址,执行步骤S04。其中,UUID(Universally Unique Identifier)是通用唯一识别码的缩写,是一种软件建构的标准。这里指我们采用这种标准来生成我们Cookie的唯一标识。
具体的,用户通过浏览器发送访问请求到应用***;由于应用***被应用访问容器完全代理,应用访问容器中的***模块拦截所有用户的访问请求,并校验其是否携带Token(登录票据);若携带有效Token,则将该访问请求转发至应用***,并将应用***的响应结果返回给用户浏览器;若未携带Token,则将用户的访问请求重定向到单点登录服务器的单点登录页面;用户通过单点登录页面输入用户信息,如用户名、密码等,提交到单点登录服务器进行校验;校验通过后,单点登录服务器会重定向到应用访问容器的回调地址,并携带Token;应用访问容器使用Token从单点登录服务器获取用户信息;使用用户信息,调用应用***的登录接口,完成应用***的内部认证;完成应用***认证后,重定向到用户最初的访问地址,并携带Token;此次访问因为携带Token,所以应用访问容器拦截后,将直接返回应用***的响应结果。
单点登录主要实现用户在任意应用***登录后,访问其他应用***时将无需登录。首次访问应用***和访问第二个应用***的过程略有差异,下文分别进行详细描述。
用户首次访问应用***时,需要进行登录校验。如图4所示,当用户首次访问应用***时的步骤如下:
1)用户通过浏览器向应用***A发送访问请求,应用访问容器拦截该请求,并执行以下操作:
1.1统一认证客户端模块判断该访问请求是否包含应用***A的Cookie;若有,则使用该Cookie的值,在票据缓存模块查询Token,并校验Token的有效期,若符合要求则执行步骤2);若无,或Token超出有效期,则继续以下步骤1.2;
1.2统一认证客户端模块,使用UUID生成唯一标识,为用户设置Cookie;
1.3将Cookie值作为用户身份标识,并记录下用户此次访问的地址;
1.4最后返回重定向请求,让浏览器重定向到单点登录页面;
2)浏览器向单点登录***发送登录请求;
3)单点登录服务器校验该用户是否已登录,由于首次访问,该用户未登录,单点登录***返回登录页面;
4)用户输入用户信息,如用户名、密码等,提交登录请求到单点登录***;
5)单点登录***校验用户名、密码正确后,生成登录票据(Token)并将其设置到Cookie中,并重定向到应用访问容器的配置的回调地址;
6)浏览器发送访问应用访问容器的回调地址(携带单点登录生成的Token);
7)应用访问容器收到该请求后,根据Token从单点登录服务器获取用户信息;
8)应用访问容器使用用户信息,调用应用***A的登录接口,完成应用***的登录;完成登录后,根据Cookie查询保存的首次访问地址,返回重定向请求,使浏览器重新发送首次访问请求;浏览器重新发送访问请求到应用***A,其访问过程与用户访问第二个应用***的步骤一致。
用户访问第二个应用***时,由于用户已经完成登录,其步骤较首次访问有所不同;具体如图5所示:
1)用户发送访问请求到应用***B,虽然该用户已经登录过,但访问应用***B仍属于首次,应用访问容器拦***问请求后,内部将执行以下步骤:
1.1统一认证客户端模块判断访问请求是否包含应用***A的Cookie;若有,则使用Cookie的值,在票据缓存模块查询Token,并校验Token的有效期,若符合要求则执行步骤2);若无,或Token超出有效期,则继续以下步骤1.2;
1.2统一认证客户端模块,使用UUID生成唯一标识,为用户设置Cookie;
1.3将Cookie值作为用户身份标识,并记录下用户此次访问的地址;
1.4返回重定向请求,让浏览器重定向到单点登录页面;
2)浏览器发起访问登录页面请求,此时请求的Cookie中携带了登录票据Token;
3)单点登录***通过Cookie的值,判断此客户端已经为登录状态,并重定向到应用***B的应用访问容器配置的回调地址;
4)浏览器向应用访问容器发送回调地址请求(携带Token);
5)应用访问容器收到该请求后,根据Token从单点登录服务器获取用户信息;
6)应用访问容器使用用户信息,调用应用***B的登录接口,完成应用***的登录;完成登录后,根据Cookie查询保存的首次访问地址,返回重定向请求,使浏览器重新发送首次访问请求;浏览器重新发送访问请求到应用***B。
通过容器代理的方式实现单点登录的应用集成,采用容器的方式将应用***包裹起来,所有应用***提供的登录服务将交由应用访问容器来代理处理,由代理容器配置代理应用***的IP和端口,由容器实现与单点登录服务器的协议对接;只需要由容器作为客户端实现单点登录协议即可,用户无需改变使用习惯,技术负责度低,研发工作量小;所有应用***无需集成与开发,极大的减少了开发、测试的工作量,并且一些历史遗留、较老的应用***也可以接入单点登录,实现统一认证。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (4)

1.一种基于容器实现单点登录的***,其特征在于:包括
应用访问容器,配置为部署各应用***,接管各应用***的所有请求与响应,并与各应用***实现登录对接;其中,应用访问容器包括***模块,用于拦截用户的访问请求;统一认证客户端模块,用于校验该访问请求所携带的登录票据信息;票据缓存模块,用于缓存已登录用户的登录票据信息;应用登录模块,用于提供登录页面;其中,登录票据信息至少包括用户身份标识Cookie和应用***Cookie;
单点登录服务器,配置为与应用访问容器对接,并进行统一认证。
2.根据权利要求1所述的基于容器实现单点登录的***,其特征在于:所述单点登录服务器包括统一认证服务端模块,用于校验用户信息;票据管理模块,用于生成、管理登录票据信息。
3.一种基于容器实现单点登录的方法,其特征在于,包括如下步骤:
S01、用户发送访问请求到应用***;
S02、应用访问容器拦截所有用户的访问请求;
S03、校验访问请求是否携带登录票据,若携带有效登录票据,则执行步骤S08,否则执行步骤S04;
S04、将用户请求重定向到单点登录服务器的单点登录页面,用户通过单点登录页面输入用户信息,提交到单点登录服务器进行校验;
S05、校验通过后,单点登录服务器会重定向到应用访问容器的回调地址,并携带登录票据;
S06、应用访问容器使用登录票据从单点登录服务器获取用户信息,并使用用户信息调用应用***的登录接口,完成应用***的内部认证;
S07、完成应用***认证后,重定向到用户最初的访问地址,并携带登录票据,跳转至步骤S02;
S08、将该访问请求转发至应用***,并将应用***的响应结果返回给用户。
4.根据权利要求3所述的基于容器实现单点登录的方法,其特征在于,步骤S03包括如下步骤:
S31、统一认证客户端模块判断访问请求中是否包含应用***的Cookie;若有,则使用Cookie的值,在票据缓存模块查询登录票据,并校验登录票据的有效期,符合要求则执行步骤S08;若无,或登录票据超期,则继续以下步骤S32;
S32、统一认证客户端模块使用UUID生成唯一标识,为用户设置Cookie;
S33、将Cookie值作为用户身份标识,并记录用户此次访问的地址,执行步骤S04。
CN202010431414.5A 2020-05-20 2020-05-20 一种基于容器实现单点登录的***及方法 Active CN111444495B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010431414.5A CN111444495B (zh) 2020-05-20 2020-05-20 一种基于容器实现单点登录的***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010431414.5A CN111444495B (zh) 2020-05-20 2020-05-20 一种基于容器实现单点登录的***及方法

Publications (2)

Publication Number Publication Date
CN111444495A CN111444495A (zh) 2020-07-24
CN111444495B true CN111444495B (zh) 2020-11-24

Family

ID=71657750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010431414.5A Active CN111444495B (zh) 2020-05-20 2020-05-20 一种基于容器实现单点登录的***及方法

Country Status (1)

Country Link
CN (1) CN111444495B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112751854A (zh) * 2020-12-30 2021-05-04 福州掌中云科技有限公司 一种sso登录的方法及***
CN113468579A (zh) * 2021-07-23 2021-10-01 挂号网(杭州)科技有限公司 数据访问方法、装置、设备和存储介质
CN114050911B (zh) * 2021-09-27 2023-05-16 度小满科技(北京)有限公司 一种容器远程登录方法及***
CN114237082A (zh) * 2021-11-03 2022-03-25 深圳市优必选科技股份有限公司 设备管理***、机器人及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104320392A (zh) * 2014-10-22 2015-01-28 成都卫士通信息产业股份有限公司 一种用户统一认证的方法
CN107690792A (zh) * 2015-06-15 2018-02-13 安维智有限公司 未经管理的移动设备的单点登录
CN110226168A (zh) * 2017-09-29 2019-09-10 甲骨文国际公司 用于提供区块链云服务的接口的***和方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9154488B2 (en) * 2013-05-03 2015-10-06 Citrix Systems, Inc. Secured access to resources using a proxy
CN104301316A (zh) * 2014-10-13 2015-01-21 中国电子科技集团公司第二十八研究所 一种单点登录***及其实现方法
CN106209726B (zh) * 2015-04-30 2020-06-05 中兴通讯股份有限公司 一种移动应用单点登录方法及装置
CN106406929A (zh) * 2016-08-25 2017-02-15 成都交大光芒科技股份有限公司 分布式信息化应用集成平台应用插件容器实现方法
CN109040069B (zh) * 2018-08-06 2020-09-18 江苏易安联网络技术有限公司 一种云应用程序的发布方法、发布***及访问方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104320392A (zh) * 2014-10-22 2015-01-28 成都卫士通信息产业股份有限公司 一种用户统一认证的方法
CN107690792A (zh) * 2015-06-15 2018-02-13 安维智有限公司 未经管理的移动设备的单点登录
CN110226168A (zh) * 2017-09-29 2019-09-10 甲骨文国际公司 用于提供区块链云服务的接口的***和方法

Also Published As

Publication number Publication date
CN111444495A (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
CN111444495B (zh) 一种基于容器实现单点登录的***及方法
CN109981561B (zh) 单体架构***迁移到微服务架构的用户认证方法
US7296077B2 (en) Method and system for web-based switch-user operation
US7860883B2 (en) Method and system for distributed retrieval of data objects within multi-protocol profiles in federated environments
CN112995219B (zh) 一种单点登录方法、装置、设备及存储介质
US7860882B2 (en) Method and system for distributed retrieval of data objects using tagged artifacts within federated protocol operations
US9143502B2 (en) Method and system for secure binding register name identifier profile
US7530099B2 (en) Method and system for a single-sign-on mechanism within application service provider (ASP) aggregation
US8073954B1 (en) Method and apparatus for a secure remote access system
CA2604335C (en) Method and system for access authorization involving group membership across a distributed directory
CN101331731B (zh) 由身份提供商对联盟内的客户进行定制认证的方法、装置和程序产品
US8464317B2 (en) Method and system for creating a protected object namespace from a WSDL resource description
US7240362B2 (en) Providing identity-related information and preventing man-in-the-middle attacks
US20080271121A1 (en) External user lifecycle management for federated environments
US20060021004A1 (en) Method and system for externalized HTTP authentication
JP2005538434A (ja) 連携型(フェデレーテッド)環境におけるユーザ判定による認証のための方法およびシステム
CN102739664A (zh) 提高网络身份认证安全性的方法和装置
CN112685726A (zh) 一种基于keycloak的单点认证方法
CN107395566B (zh) 认证方法及装置
US7685300B2 (en) Method for access by server-side components using unsupported communication protocols through passthrough mechanism
CN113065161A (zh) 针对Redis数据库的安全控制方法及装置
CN117411724B (zh) 一种零信任应用网关多应用跨域共享凭据的方法及装置
CN114357422A (zh) 一种基于平台集成登录和管理的实现方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A system and method for implementing single sign on based on containers

Effective date of registration: 20231215

Granted publication date: 20201124

Pledgee: Zheshang Bank Co.,Ltd. Nanjing Branch

Pledgor: JIANGSU YIANLIAN NETWORK TECHNOLOGY Co.,Ltd.

Registration number: Y2023980071528