CN114124571A - 一种多路对接的单点登录方法及*** - Google Patents
一种多路对接的单点登录方法及*** Download PDFInfo
- Publication number
- CN114124571A CN114124571A CN202111502720.4A CN202111502720A CN114124571A CN 114124571 A CN114124571 A CN 114124571A CN 202111502720 A CN202111502720 A CN 202111502720A CN 114124571 A CN114124571 A CN 114124571A
- Authority
- CN
- China
- Prior art keywords
- sso
- authentication
- request
- tenant
- user
- 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.)
- Granted
Links
- 238000003032 molecular docking Methods 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000011161 development Methods 0.000 claims abstract description 32
- 238000007781 pre-processing Methods 0.000 claims abstract description 24
- 230000010365 information processing Effects 0.000 claims abstract description 21
- 238000012805 post-processing Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 26
- 230000009191 jumping Effects 0.000 claims description 19
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 11
- 238000012423 maintenance Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 13
- 230000006399 behavior Effects 0.000 description 12
- 238000013461 design Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0884—Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
一种多路对接的单点登录方法及***,对用户的外部应用登录行为进行认证,认证通过后发起SSO请求进行租户鉴别、认证请求预处理和认证请求后处理;对中间信息处理后的SSO请求进行SaaS应用内部用户登录鉴权。中间信息处理过程,读取预置的租户SSO配置,进行认证请求预处理;执行SSO逻辑块,获得可信的信息;根据租户的对接策略,查找SSO请求希望登录的具体用户;判定用户是否拥有租户下的角色;根据SSO请求中指定的目标地址,获得最终目标地址。本发明不仅可以满足大型企业客户提出的非标准SSO对接的需求,还可以满足中小型企业简易对接SSO的需求;具有较好的扩展性,降低了企业的开发成本及维护成本。
Description
技术领域
本发明涉及一种多路对接的单点登录方法及***,属于SaaS企业软件应用技术领域。
背景技术
目前,在企业软件应用市场上,SaaS(Software-as-a-Service)企业应用的发展较为迅速,市场占有率不断提高,大量的企业客户开始接受并购买SaaS企业软件。这种SaaS应用普遍有着云端部署,开箱即用,按订阅收费的特点,属于一种不同于传统企业应用的新型企业应用。
单点登录(Single-Sign-On),简称为SSO,是一种统一认证体系,用于实现在多个应用构成的生态体系内,使用一个账号,一次登录,即可在该体系内的任意***进行作业,且无须再重新认证。
在典型的企业信息化建设中,一家企业所有的应用软件,通常都部署在企业内部,这些应用会共用一个认证门户,这是一种典型的封闭IT生态***。在传统的封闭IT生态中,由统一的认证门户应用选择并确定SSO标准,并要求其他应用按照认证门户的标准。SSO方案在选型完成后,周边应用的对接需要投入人力资源进行编码开发,这样的开发一般存在于企业应用的开发或实施周期中,由实施人员负责实现。故在传统的企业应用开发生态中,SSO集成对接是一类常见的,容易满足的需求,这是由于在这样的生态下,SSO对接所使用的方法与方案,只需在企业内部通行即可,基本无须与该生态外的其他***进行接触,在选型上无须前瞻性考虑,同时在后续的对接上,传统企业应用普遍都支持在实施周期的二次开发,可以按照企业本身的要求进行相应的对接。
现阶段,市面上可以实现SSO功能的实现方案有很多,多数企业会选择市面上通行的方案,少数的一些企业,由于历史性因素或安全性因素,会选择自行设计SSO方案。SaaS应用从传统的企业应用市场吸引了相当数量的客户,这些客户通常具有使用传统企业应用的开发与使用经验,并使用传统企业应用的衡量标准来衡量SaaS企业应用。在传统企业应用软件开发的生态中,新的企业应用集成对接单点登录是一类常见的需求。面临着对接得企业越多单点登录方案也就越多,无疑会增加很多的开发成本以及维护成本。
发明内容
为此,本发明提供一种多路对接的单点登录方法及***,可以同时兼容多个租户、多种方案的SSO集成对接,尽可能全面地将各类形式的SSO集成对接方案进行统一地管理,同时提供一定程度的可控开发支持,并保持方案数量的可扩展性,实现全面性的支持实际场景中的各种SSO集成对接。
为了实现上述目的,本发明提供如下技术方案:一种多路对接的单点登录方法,包括以下步骤:
外部应用认证:对用户的外部应用登录行为进行认证,认证通过后发起SSO请求;
中间信息处理:对SSO请求进行租户鉴别、认证请求预处理和认证请求后处理;
SaaS应用鉴权,对中间信息处理后的SSO请求进行SaaS应用内部用户登录鉴权。
作为多路对接的单点登录方法的优选方案,所述租户鉴别通过域名分配与判断,分辨外部应用发起的SSO请求所属的租户,并触发对应的SSO逻辑。
作为多路对接的单点登录方法的优选方案,所述中间信息处理的步骤包括:
21)读取预置的租户SSO配置,进行认证请求预处理;
22)执行SSO逻辑块,获得可信的信息,获取失败则抛出异常;
23)根据租户的对接策略,查找SSO请求希望登录的具体用户,若查找失败则抛出异常;
24)判定用户是否拥有租户下的角色,如果没有则抛出异常;
25)根据SSO请求中指定的目标地址,获得最终目标地址。
作为多路对接的单点登录方法的优选方案,步骤22)中,所述SSO逻辑块为回调函数,根据SSO逻辑块将职责划分为可确定与不确定两部分,可确定的部分通过配置开放给管理员进行控制,不确定的部分通过二次开发进行实现。
作为多路对接的单点登录方法的优选方案,可确定的部分包括:
a1)用户未登录情况下,是否跳转至外部应用及跳转位置;
b1)用户登录成功后,跳转位置;
c1)外部应用请求中提供的信息与用户的对应关系配置;
d1)尝试登录用户是否拥有租户权限的检查。
作为多路对接的单点登录方法的优选方案,不确定的部分包括:
a2)接收外部SSO请求中的参数,并经过处理获得认证用信息,处理的细节逻辑不确定;
b2)从外部SSO请求中,获得希望跳转至的目标地址;目标地址的获取方式不确定。
作为多路对接的单点登录方法的优选方案,所述中间信息处理还包括请求重定向处理,若进行全局的重定向,将租户的正常访问请求在未认证情况下重定向至外部的认证应用;若不进行全局的重定向,将租户的SSO认证和账号密码认证共存。
作为多路对接的单点登录方法的优选方案,所述SaaS应用鉴权的步骤包括:
31)检查当前登录行为是否符合安全策略,安全策略包括是否按期修改密码,是否绑定手机号,账号是否被锁定;
32)获取角色列表,并决定当前登录的使用角色;
33)写入登录日志,生成登录session,发放应用内认证凭据;
34)判断是否设定目标位置,若设定了目标位置,跳转到目标位置页面。
本发明还提供一种多路对接的单点登录***,包括:
外部应用认证单元,用于对用户的外部应用登录行为进行认证,认证通过后发起SSO请求;
中间信息处理单元,用于对SSO请求进行租户鉴别、认证请求预处理和认证请求后处理;
SaaS应用鉴权单元,用于对中间信息处理后的SSO请求进行SaaS应用内部用户登录鉴权。
作为多路对接的单点登录***的优选方案,所述中间信息处理单元包括:
请求预处理子单元,用于读取预置的租户SSO配置,进行认证请求预处理;
SSO逻辑块子单元,用于执行SSO逻辑块,获得可信的信息,获取失败则抛出异常;
登录用户查找子单元,用于根据租户的对接策略,查找SSO请求希望登录的具体用户,若查找失败则抛出异常;
角色判断子单元,用于判定用户是否拥有租户下的角色,如果没有则抛出异常;
目标地址获取子单元,用于根据SSO请求中指定的目标地址,获得最终目标地址。
作为多路对接的单点登录***的优选方案,所述SSO逻辑块为回调函数,根据SSO逻辑块将职责划分为可确定与不确定两部分,可确定的部分通过配置开放给管理员进行控制,不确定的部分通过二次开发进行实现。
作为多路对接的单点登录***的优选方案,可确定的部分包括:
a1)用户未登录情况下,是否跳转至外部应用及跳转位置;
b1)用户登录成功后,跳转位置;
c1)外部应用请求中提供的信息与用户的对应关系配置;
d1)尝试登录用户是否拥有租户权限的检查。
作为多路对接的单点登录***的优选方案,不确定的部分包括:
a2)接收外部SSO请求中的参数,并经过处理获得认证用信息,处理的细节逻辑不确定;
b2)从外部SSO请求中,获得希望跳转至的目标地址;目标地址的获取方式不确定。
作为多路对接的单点登录***的优选方案,所述租户鉴别通过域名分配与判断,分辨外部应用发起的SSO请求所属的租户,并触发对应的SSO逻辑。
作为多路对接的单点登录***的优选方案,所述中间信息处理单元还包括请求重定向处理,若进行全局的重定向,将租户的正常访问请求在未认证情况下重定向至外部的认证应用;若不进行全局的重定向,将租户的SSO认证和账号密码认证共存。
作为多路对接的单点登录***的优选方案,所述SaaS应用鉴权单元包括:
安全策略检查子单元,用于检查当前登录行为是否符合安全策略,安全策略包括是否按期修改密码,是否绑定手机号,账号是否被锁定;
角色列表处理子单元,用于获取角色列表,并决定当前登录的使用角色;
认证凭据处理子单元,用于写入登录日志,生成登录session,发放应用内认证凭据;
目标位置判断子单元,用于判断是否设定目标位置,若设定了目标位置,跳转到目标位置页面。
本发明具有如下优点:对用户的外部应用登录行为进行认证,认证通过后发起SSO请求;对SSO请求进行租户鉴别、认证请求预处理和认证请求后处理;对中间信息处理后的SSO请求进行SaaS应用内部用户登录鉴权。中间信息处理过程,读取预置的租户SSO配置,进行认证请求预处理;执行SSO逻辑块,获得可信的信息,获取失败则抛出异常;根据租户的对接策略,查找SSO请求希望登录的具体用户,若查找失败则抛出异常;判定用户是否拥有租户下的角色,如果没有则抛出异常;根据SSO请求中指定的目标地址,获得最终目标地址;SaaS应用鉴权过程,检查当前登录行为是否符合安全策略,安全策略包括是否按期修改密码,是否绑定手机号,账号是否被锁定;获取角色列表,并决定当前登录的使用角色;写入登录日志,生成登录session,发放应用内认证凭据;判断是否设定目标位置,若设定了目标位置,跳转到目标位置页面。本发明不仅可以满足大型企业客户提出的非标准SSO对接的需求,还可以满足中小型企业简易对接SSO的需求;方便管理和维护所有租户的SSO集成对接方案,支持各个租户SSO集成对接逻辑的开发与部署,具有较好的扩展性,降低了企业的开发成本及维护成本。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本发明实施例中提供的多路对接的单点登录方法流程示意图;
图2为本发明实施例中提供的多路对接的单点登录方法的技术架构示意图;
图3为本发明实施例中提供的多路对接的单点登录方法中二次开发示意图;
图4为本发明实施例中提供的多路对接的单点登录***示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见图1和图2,本发明实施例1提供一种多路对接的单点登录方法,包括以下步骤:
S1、外部应用认证:对用户的外部应用登录行为进行认证,认证通过后发起SSO请求;
S2、中间信息处理:对SSO请求进行租户鉴别、认证请求预处理和认证请求后处理;
S3、SaaS应用鉴权,对中间信息处理后的SSO请求进行SaaS应用内部用户登录鉴权。
本实施例中,所述租户鉴别通过域名分配与判断,分辨外部应用发起的SSO请求所属的租户,并触发对应的SSO逻辑。
具体的,作为SaaS的Web应用,服务端收到的所有请求必定都是HTTP请求,本发明采用针对不同的租户分配不同的二级域名的方式,使得服务端可以根据二级域名来判断未登录的用户的请求所归属于的租户;通过域名确认到租户后,即可加载该租户二级域名下对应的整套SSO配置数据。
本实施例中,所述中间信息处理还包括请求重定向处理,若进行全局的重定向,将租户的正常访问请求在未认证情况下重定向至外部的认证应用;若不进行全局的重定向,将租户的SSO认证和账号密码认证共存。
由于不同的租户所代表的企业客户对于SaaS应用有不同的业务定位,对未登录状态下的重定向有不同的需求。其中一部分希望用户访问SaaS应用时,必须重定向至企业客户自身的认证门户进行认证登录,另一部分则认为用户可以在SaaS应用直接通过账号密码进行登录。
故,需要将未登录状态下是否重定向至外部应用作为一项配置。每一套SSO配置均需要指明外部应用的地址,可以选择是否进行全局的重定向,如果选择是,任何该租户的正常访问请求,在未认证情况下,均会被重定向至外部的认证应用,如果选择否,该租户的SSO认证将和账号密码认证共存。
本实施例中,所述中间信息处理的步骤包括:
21)读取预置的租户SSO配置,进行认证请求预处理;
22)执行SSO逻辑块,获得可信的信息,获取失败则抛出异常;
23)根据租户的对接策略,查找SSO请求希望登录的具体用户,若查找失败则抛出异常;
24)判定用户是否拥有租户下的角色,如果没有则抛出异常;
25)根据SSO请求中指定的目标地址,获得最终目标地址。
本实施例中,认证请求的预处理与后处理,分别放在真正的认证逻辑前后,负责处理SaaS应用与具体的认证逻辑之间的耦合。
辅助图2,本发明技术方案将真正的认证逻辑在设计上留空,形成统一的SSO逻辑块接口,并只提供一个标准的SSO逻辑实现,其他的SSO逻辑都通过SSO逻辑块后续开发的形式进行支持。故认证请求前后预处理的目的,是将SSO逻辑块的输入输出进行标准化,为日后更多的SSO逻辑块的编写与运行提供良好的支持。
具体的,图2中SSO逻辑块与标准逻辑在输入输出上是一致的,都符合统一的SSO逻辑块接口,标准逻辑只是一种预置的SSO逻辑块,是一种典型的接口-实现拆分设计。
具体的,认证请求预处理负责在读取到租户SSO配置后,对其配置的逻辑进行检查,并将请求中重要的属性值传递给SSO逻辑块。其中,预置的标准逻辑(RSA-SSO方案)与SSO逻辑块的输入是严格一致的,预处理会在执行逻辑前,检查认证所需参数是否充足。
本实施例中,认证后处理负责在认证逻辑执行完成后,对其产生的输出结果进行检查。认证的结果包含两个属性,认证结果信息与目标地址。认证后处理通过预先的配置,以认证结果信息为条件,获得真正的目标认证用户,并校验该用户是否有权限通过认证(例如该用户是不是本租户成员);对于目标地址,认证后处理逻辑将进行一系列的有优先级的解析,将目标地址转换为最终的地址。
本实施例中,所述SaaS应用鉴权的步骤包括:
31)检查当前登录行为是否符合安全策略,安全策略包括是否按期修改密码,是否绑定手机号,账号是否被锁定;
32)获取角色列表,并决定当前登录的使用角色;
33)写入登录日志,生成登录session,发放应用内认证凭据;
34)判断是否设定目标位置,若设定了目标位置,跳转到目标位置页面。
本实施例中,步骤22)中,所述SSO逻辑块为回调函数,根据SSO逻辑块将职责划分为可确定与不确定两部分,可确定的部分通过配置开放给管理员进行控制,不确定的部分通过二次开发进行实现。
具体的,可确定的部分包括:
a1)用户未登录情况下,是否跳转至外部应用及跳转位置;
b1)用户登录成功后,跳转位置;
c1)外部应用请求中提供的信息与用户的对应关系配置;
d1)尝试登录用户是否拥有租户权限的检查。
具体的,不确定的部分包括:
a2)接收外部SSO请求中的参数,并经过处理获得认证用信息,处理的细节逻辑不确定;
b2)从外部SSO请求中,获得希望跳转至的目标地址;目标地址的获取方式不确定。
具体的,为了广泛地覆盖SSO需求,SSO逻辑块可以看作一个回调函数,其具体实现不在本发明设计内确定,而是在实际的SSO集成实施中实现。围绕着SSO逻辑块,可以将职责划分为可确定与不确定两部分,其中可确定的部分通过本次的开发进行实现,通过配置开放给管理员进行控制,不可确定的部分通过后续的SSO逻辑模块二次开发进行实现。
具体的,可确定的部分是与SaaS应用本身耦合在一起的部分,而不确定的部分是和外部***耦合的部分。SSO逻辑块在设计上,可以实现为一个回调函数,需要提供一种方式来支持该函数的编写,比如选用JavaScript来支持该函数的编写。
一个租户可以有多个SSO逻辑块,每个SSO逻辑块使用脚本进行实现,每个脚本由MI-SSO***进行管理,使得每个租户可以有自己的SSO集成逻辑,同时这段逻辑是在运行时可进行高度定制与变更的。SSO逻辑块可以灵活的实现各种SSO方案对接,对于任何非RSA-SSO方案的SSO对接,都将使用SSO逻辑块实现。针对SSO逻辑块的设计,为支持SSO逻辑块的运行时实现,建立二次开发平台,用于支持运行时的JavaScript编写与执行。这样的设计,使得有着非标SSO对接需求的租户,可以通过在二次开发平台提交模块逻辑的代码,来实现他们的需求。
参见图3,二次开发平台是一个独立运行的服务,提供运行时的脚本执行功能,由GraalVM与JavaScript执行沙盒作为基础,在其基础上进行租户级的封装与扩展,支持开发而建立起来。由于二次开发平台服务于整个应用,并不局限于SSO需求或认证模块。
二次开发平台在本设计中用于编写SSO逻辑,其编写过程本身仅需关注一个入参与出参均规定好的JavaScript函数,无须再关注复杂的框架实现与认证原理。由于二次开发平台的支持,使得SSO逻辑块具有强大的可扩展性,可以随时的根据企业客户的实际的需求,编写或修改SSO逻辑。根据上述分析,本发明将具体SSO逻辑的实现通过回调的方式推迟到企业客户提出需求的时间节点,并通过二次开发平台的引入,降低在后续补充编写具体SSO逻辑的成本。
为使得SSO逻辑块具有最大的逻辑编写自由度,认证请求的完整请求参数都会传递给SSO逻辑块脚本。由HTTP的标准定义与经验可知,一般的单点登录认证请求为重定向请求,重定向请求不携带Body,不携带特殊Header参数,故本发明中,认证请求必须包含一定的数量的参数在URL中,这些参数不做修改的传递给SSO逻辑块。如果认证请求不包含任何参数,将视为非法请求,重定向回外部应用。例如某种方案的认证请求,将认证信息,以及对认证信息的签名放在请求参数中,分别对应authInfo与signature两个字段,这两个字段会作为参数完整地交给SSO逻辑块。
为兼顾移动端SSO需求,在参数准备阶段,如果原本的请求参数中不包含isMobile字段,则会判断当前请求的来源设备是否为移动端,将判断结果与请求参数本身一并传给SSO逻辑模块,即确保SSO逻辑块内可以通过参数isMobile来判断当前请求是是否来自移动端。
本发明需要处理所有的认证请求,并判断这些认证请求是不是自己感兴趣的。这个请求量级本身占据了整个应用接近一半的请求量,故对于本发明的实践所基于的SaaS应用,每次判断都需要读取数据库中表的内容。为减少对于数据库的压力,放置两层缓存,第一层Redis中间件缓存:使用二级域名作为缓存键,内容为表单行信息,该缓存在对应二级域名的SSO配置信息被修改时刷新。这个缓存可以使得查询请求不再直接访问数据库。第二层认证服务本地缓存:认证服务在成功从Redis中间件获取到一次信息后,无论获取到的信息是否为空,都将结果缓存至本地内存5分钟,过期后自动失效。本地缓存通过牺牲一定的即时性,可以极大地减少对于Redis中间件的请求次数,将单位时间内对Redis中间件的访问降低至常数等级,不再随着整个应用请求并发量的增长而增长。
综上所述,本发明对用户的外部应用登录行为进行认证,认证通过后发起SSO请求;对SSO请求进行租户鉴别、认证请求预处理和认证请求后处理;对中间信息处理后的SSO请求进行SaaS应用内部用户登录鉴权。中间信息处理过程,读取预置的租户SSO配置,进行认证请求预处理;执行SSO逻辑块,获得可信的信息,获取失败则抛出异常;根据租户的对接策略,查找SSO请求希望登录的具体用户,若查找失败则抛出异常;判定用户是否拥有租户下的角色,如果没有则抛出异常;根据SSO请求中指定的目标地址,获得最终目标地址;SaaS应用鉴权过程,检查当前登录行为是否符合安全策略,安全策略包括是否按期修改密码,是否绑定手机号,账号是否被锁定;获取角色列表,并决定当前登录的使用角色;写入登录日志,生成登录session,发放应用内认证凭据;判断是否设定目标位置,若设定了目标位置,跳转到目标位置页面。本发明不仅可以满足大型企业客户提出的非标准SSO对接的需求,还可以满足中小型企业简易对接SSO的需求;方便管理和维护所有租户的SSO集成对接方案,支持各个租户SSO集成对接逻辑的开发与部署,具有较好的扩展性,降低了企业的开发成本及维护成本。
实施例2
参见图4,本发明实施例2还提供一种多路对接的单点登录***,包括:
外部应用认证单元1,用于对用户的外部应用登录行为进行认证,认证通过后发起SSO请求;
中间信息处理单元2,用于对SSO请求进行租户鉴别、认证请求预处理和认证请求后处理;
SaaS应用鉴权单元3,用于对中间信息处理后的SSO请求进行SaaS应用内部用户登录鉴权。
本实施例中,所述中间信息处理单元2包括:
请求预处理子单元21,用于读取预置的租户SSO配置,进行认证请求预处理;
SSO逻辑块子单元22,用于执行SSO逻辑块,获得可信的信息,获取失败则抛出异常;
登录用户查找子单元23,用于根据租户的对接策略,查找SSO请求希望登录的具体用户,若查找失败则抛出异常;
角色判断子单元24,用于判定用户是否拥有租户下的角色,如果没有则抛出异常;
目标地址获取子单元25,用于根据SSO请求中指定的目标地址,获得最终目标地址。
本实施例中,所述SSO逻辑块为回调函数,根据SSO逻辑块将职责划分为可确定与不确定两部分,可确定的部分通过配置开放给管理员进行控制,不确定的部分通过二次开发进行实现。
其中,可确定的部分包括:
a1)用户未登录情况下,是否跳转至外部应用及跳转位置;
b1)用户登录成功后,跳转位置;
c1)外部应用请求中提供的信息与用户的对应关系配置;
d1)尝试登录用户是否拥有租户权限的检查。
不确定的部分包括:
a2)接收外部SSO请求中的参数,并经过处理获得认证用信息,处理的细节逻辑不确定;
b2)从外部SSO请求中,获得希望跳转至的目标地址;目标地址的获取方式不确定。
本实施例中,所述租户鉴别通过域名分配与判断,分辨外部应用发起的SSO请求所属的租户,并触发对应的SSO逻辑。
本实施例中,所述中间信息处理单元2还包括请求重定向处理,若进行全局的重定向,将租户的正常访问请求在未认证情况下重定向至外部的认证应用;若不进行全局的重定向,将租户的SSO认证和账号密码认证共存。
本实施例中,所述SaaS应用鉴权单元3包括:
安全策略检查子单元31,用于检查当前登录行为是否符合安全策略,安全策略包括是否按期修改密码,是否绑定手机号,账号是否被锁定;
角色列表处理子单元32,用于获取角色列表,并决定当前登录的使用角色;
认证凭据处理子单元33,用于写入登录日志,生成登录session,发放应用内认证凭据;
目标位置判断子单元34,用于判断是否设定目标位置,若设定了目标位置,跳转到目标位置页面。
需要说明的是,上述***各模块/单元之间的信息交互、执行过程等内容,由于与本申请实施例1中的方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
实施例3
本发明实施例3提供一种非暂态计算机可读存储介质,所述计算机可读存储介质中存储有多路对接的单点登录方法的程序代码,所述程序代码包括用于执行实施例1或其任意可能实现方式的多路对接的单点登录方法的指令。
计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(SolidState Disk、SSD))等。
实施例4
本发明实施例4提供一种电子设备,包括:存储器和处理器;
所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行实施例1或其任意可能实现方式的多路对接的单点登录方法。
具体的,处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于所述处理器之外,独立存在。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (10)
1.一种多路对接的单点登录方法,其特征在于,包括以下步骤:
外部应用认证:对用户的外部应用登录行为进行认证,认证通过后发起SSO请求;
中间信息处理:对SSO请求进行租户鉴别、认证请求预处理和认证请求后处理;
SaaS应用鉴权,对中间信息处理后的SSO请求进行SaaS应用内部用户登录鉴权。
2.根据权利要求1所述的一种多路对接的单点登录方法,其特征在于,所述租户鉴别通过域名分配与判断,分辨外部应用发起的SSO请求所属的租户,并触发对应的SSO逻辑。
3.根据权利要求2所述的一种多路对接的单点登录方法,其特征在于,所述中间信息处理的步骤包括:
21)读取预置的租户SSO配置,进行认证请求预处理;
22)执行SSO逻辑块,获得可信的信息,获取失败则抛出异常;
23)根据租户的对接策略,查找SSO请求希望登录的具体用户,若查找失败则抛出异常;
24)判定用户是否拥有租户下的角色,如果没有则抛出异常;
25)根据SSO请求中指定的目标地址,获得最终目标地址。
4.根据权利要求3所述的一种多路对接的单点登录方法,其特征在于,步骤22)中,所述SSO逻辑块为回调函数,根据SSO逻辑块将职责划分为可确定与不确定两部分,可确定的部分通过配置开放给管理员进行控制,不确定的部分通过二次开发进行实现。
5.根据权利要求4所述的一种多路对接的单点登录方法,其特征在于,可确定的部分包括:
a1)用户未登录情况下,是否跳转至外部应用及跳转位置;
b1)用户登录成功后,跳转位置;
c1)外部应用请求中提供的信息与用户的对应关系配置;
d1)尝试登录用户是否拥有租户权限的检查。
6.根据权利要求4所述的一种多路对接的单点登录方法,其特征在于,不确定的部分包括:
a2)接收外部SSO请求中的参数,并经过处理获得认证用信息,处理的细节逻辑不确定;
b2)从外部SSO请求中,获得希望跳转至的目标地址;目标地址的获取方式不确定。
7.根据权利要求5所述的一种多路对接的单点登录方法,其特征在于,所述中间信息处理还包括请求重定向处理,若进行全局的重定向,将租户的正常访问请求在未认证情况下重定向至外部的认证应用;若不进行全局的重定向,将租户的SSO认证和账号密码认证共存。
8.根据权利要求6所述的一种多路对接的单点登录方法,其特征在于,所述SaaS应用鉴权的步骤包括:
31)检查当前登录行为是否符合安全策略,安全策略包括是否按期修改密码,是否绑定手机号,账号是否被锁定;
32)获取角色列表,并决定当前登录的使用角色;
33)写入登录日志,生成登录session,发放应用内认证凭据;
34)判断是否设定目标位置,若设定了目标位置,跳转到目标位置页面。
9.一种多路对接的单点登录***,其特征在于,包括:
外部应用认证单元,用于对用户的外部应用登录行为进行认证,认证通过后发起SSO请求;
中间信息处理单元,用于对SSO请求进行租户鉴别、认证请求预处理和认证请求后处理;
SaaS应用鉴权单元,用于对中间信息处理后的SSO请求进行SaaS应用内部用户登录鉴权。
10.根据权利要求9所述的一种多路对接的单点登录***,其特征在于,所述中间信息处理单元包括:
请求预处理子单元,用于读取预置的租户SSO配置,进行认证请求预处理;
SSO逻辑块子单元,用于执行SSO逻辑块,获得可信的信息,获取失败则抛出异常;
登录用户查找子单元,用于根据租户的对接策略,查找SSO请求希望登录的具体用户,若查找失败则抛出异常;
角色判断子单元,用于判定用户是否拥有租户下的角色,如果没有则抛出异常;
目标地址获取子单元,用于根据SSO请求中指定的目标地址,获得最终目标地址;
所述SSO逻辑块为回调函数,根据SSO逻辑块将职责划分为可确定与不确定两部分,可确定的部分通过配置开放给管理员进行控制,不确定的部分通过二次开发进行实现;
可确定的部分包括:
a1)用户未登录情况下,是否跳转至外部应用及跳转位置;
b1)用户登录成功后,跳转位置;
c1)外部应用请求中提供的信息与用户的对应关系配置;
d1)尝试登录用户是否拥有租户权限的检查;
不确定的部分包括:
a2)接收外部SSO请求中的参数,并经过处理获得认证用信息,处理的细节逻辑不确定;
b2)从外部SSO请求中,获得希望跳转至的目标地址;目标地址的获取方式不确定;
所述租户鉴别通过域名分配与判断,分辨外部应用发起的SSO请求所属的租户,并触发对应的SSO逻辑;
所述中间信息处理单元还包括请求重定向处理,若进行全局的重定向,将租户的正常访问请求在未认证情况下重定向至外部的认证应用;若不进行全局的重定向,将租户的SSO认证和账号密码认证共存;
所述SaaS应用鉴权单元包括:
安全策略检查子单元,用于检查当前登录行为是否符合安全策略,安全策略包括是否按期修改密码,是否绑定手机号,账号是否被锁定;
角色列表处理子单元,用于获取角色列表,并决定当前登录的使用角色;
认证凭据处理子单元,用于写入登录日志,生成登录session,发放应用内认证凭据;
目标位置判断子单元,用于判断是否设定目标位置,若设定了目标位置,跳转到目标位置页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111502720.4A CN114124571B (zh) | 2021-12-09 | 2021-12-09 | 一种多路对接的单点登录方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111502720.4A CN114124571B (zh) | 2021-12-09 | 2021-12-09 | 一种多路对接的单点登录方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114124571A true CN114124571A (zh) | 2022-03-01 |
CN114124571B CN114124571B (zh) | 2024-07-16 |
Family
ID=80363947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111502720.4A Active CN114124571B (zh) | 2021-12-09 | 2021-12-09 | 一种多路对接的单点登录方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114124571B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051631A (zh) * | 2012-12-21 | 2013-04-17 | 国云科技股份有限公司 | PaaS平台与SaaS应用***的统一安全认证方法 |
CN105577835A (zh) * | 2016-02-03 | 2016-05-11 | 北京中搜网络技术股份有限公司 | 一种基于云计算的跨平台单点登录*** |
US20170353444A1 (en) * | 2016-06-06 | 2017-12-07 | Illumina, Inc. | Tenant-aware distributed application authentication |
CN107852417A (zh) * | 2016-05-11 | 2018-03-27 | 甲骨文国际公司 | 多租户身份和数据安全性管理云服务 |
CN108269061A (zh) * | 2018-01-19 | 2018-07-10 | 广州市品高软件股份有限公司 | 一种公私混合的社交化协作*** |
US20180219854A1 (en) * | 2017-01-31 | 2018-08-02 | Microsoft Technology Licensing, Llc. | Single authentication to a multi-tenancy single-page cloud application |
CN109314704A (zh) * | 2016-09-14 | 2019-02-05 | 甲骨文国际公司 | 用于多租户身份和数据安全管理云服务的单点登录和单点注销功能 |
CN109565511A (zh) * | 2016-09-16 | 2019-04-02 | 甲骨文国际公司 | 用于多租户身份和数据安全管理云服务的租户和服务管理 |
CN110661798A (zh) * | 2019-09-23 | 2020-01-07 | 紫光云(南京)数字技术有限公司 | 基于认证鉴权平台的认证鉴权方法 |
CN110806916A (zh) * | 2019-11-05 | 2020-02-18 | 北京金和网络股份有限公司 | 实现saas平台各租户个性化登录页的方法及*** |
CN111698250A (zh) * | 2020-06-11 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 访问请求处理方法、装置、电子设备及计算机存储介质 |
-
2021
- 2021-12-09 CN CN202111502720.4A patent/CN114124571B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051631A (zh) * | 2012-12-21 | 2013-04-17 | 国云科技股份有限公司 | PaaS平台与SaaS应用***的统一安全认证方法 |
CN105577835A (zh) * | 2016-02-03 | 2016-05-11 | 北京中搜网络技术股份有限公司 | 一种基于云计算的跨平台单点登录*** |
CN107852417A (zh) * | 2016-05-11 | 2018-03-27 | 甲骨文国际公司 | 多租户身份和数据安全性管理云服务 |
CN108322472A (zh) * | 2016-05-11 | 2018-07-24 | 甲骨文国际公司 | 多租户身份和数据安全性管理云服务 |
US20170353444A1 (en) * | 2016-06-06 | 2017-12-07 | Illumina, Inc. | Tenant-aware distributed application authentication |
CN109314704A (zh) * | 2016-09-14 | 2019-02-05 | 甲骨文国际公司 | 用于多租户身份和数据安全管理云服务的单点登录和单点注销功能 |
CN109565511A (zh) * | 2016-09-16 | 2019-04-02 | 甲骨文国际公司 | 用于多租户身份和数据安全管理云服务的租户和服务管理 |
US20180219854A1 (en) * | 2017-01-31 | 2018-08-02 | Microsoft Technology Licensing, Llc. | Single authentication to a multi-tenancy single-page cloud application |
CN108269061A (zh) * | 2018-01-19 | 2018-07-10 | 广州市品高软件股份有限公司 | 一种公私混合的社交化协作*** |
CN110661798A (zh) * | 2019-09-23 | 2020-01-07 | 紫光云(南京)数字技术有限公司 | 基于认证鉴权平台的认证鉴权方法 |
CN110806916A (zh) * | 2019-11-05 | 2020-02-18 | 北京金和网络股份有限公司 | 实现saas平台各租户个性化登录页的方法及*** |
CN111698250A (zh) * | 2020-06-11 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 访问请求处理方法、装置、电子设备及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
张华;: "SaaS模式实现多租户应用", 通信电源技术, no. 03, 25 May 2012 (2012-05-25) * |
Also Published As
Publication number | Publication date |
---|---|
CN114124571B (zh) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10484385B2 (en) | Accessing an application through application clients and web browsers | |
US10171241B2 (en) | Step-up authentication for single sign-on | |
US9600652B2 (en) | Mobile application, identity interface | |
US8904549B2 (en) | Server system, control method, and storage medium for securely executing access to data of a tenant | |
CN108289098B (zh) | 分布式文件***的权限管理方法和装置、服务器、介质 | |
US20180089249A1 (en) | Remote policy validation for managing distributed system resources | |
US20120331518A1 (en) | Flexible security token framework | |
CN112564916A (zh) | 应用于微服务架构的访问客户端认证*** | |
US10110587B2 (en) | Entity to authorize delegation of permissions | |
US10454786B2 (en) | Multi-party updates to distributed systems | |
US20120144501A1 (en) | Regulating access to protected data resources using upgraded access tokens | |
US8504543B1 (en) | Automatic API generation for a web application | |
US11570181B2 (en) | Secure resource authorization for external identities using remote principal objects | |
US9210159B2 (en) | Information processing system, information processing device, and authentication method | |
CN111522595A (zh) | 短暂应用 | |
US11233800B2 (en) | Secure resource authorization for external identities using remote principal objects | |
US9237156B2 (en) | Systems and methods for administrating access in an on-demand computing environment | |
US20140208304A1 (en) | Methods and systems for dynamic upgrade of an access manager | |
US12034714B2 (en) | Techniques to pre-authenticate a user identity for an electronic account | |
US20160364388A1 (en) | Selective exposure of document tags for search, access, and feed based on user groups | |
CN111243715A (zh) | 一种业务***统一到集成平台的登录方法 | |
US8806589B2 (en) | Credential collection in an authentication server employing diverse authentication schemes | |
CN114124571A (zh) | 一种多路对接的单点登录方法及*** | |
CN113641966B (zh) | 一种应用集成方法、***、设备及介质 | |
US11669527B1 (en) | Optimized policy data structure for distributed authorization systems |
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 |