CN114282200A - 多认证协议统一集成认证的方法 - Google Patents
多认证协议统一集成认证的方法 Download PDFInfo
- Publication number
- CN114282200A CN114282200A CN202111313050.1A CN202111313050A CN114282200A CN 114282200 A CN114282200 A CN 114282200A CN 202111313050 A CN202111313050 A CN 202111313050A CN 114282200 A CN114282200 A CN 114282200A
- Authority
- CN
- China
- Prior art keywords
- protocol
- login
- application system
- user
- authentication
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种多认证协议统一集成认证的方法,包括以下步骤:步骤一、用户通过浏览器访问应用系统;步骤二、过滤器判断用户是否登录,若登录则正常访问应用系统并返回信息给浏览器,若没有登录,则重定向到认证系统去进行认证操作;步骤三、重定向到认证系统,认证系统访问redis检测是否保存有登录状态;步骤四、若redis中存有登录状态,则返回登录状态给应用系统,若无登录状态,则返回登录页面给应用系统;步骤五、用户填写登录信息,传输给身份认证中心;步骤六、身份认证中心对协议进行匹配,识别应用系统的登录协议。本发明的有益之处在于,可以实现多种不同认证协议的免密单点登录。
Description
技术领域
本发明涉及一种多认证协议统一集成认证的方法。
背景技术
单点登录,定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它让用户不再被多次登录困扰,也不需要记住多个ID和密码,简化管理的同时大大提高开发人员的效率。
传统涉及单点登录的商业产品有各自主推的协议,各厂家彼此之间并没有形成标准,如果支持CAS协议的单点登录产品要同支持OAuth2协议的单点登录适配集成,对于用户来说自身就难以实现。而现实中用户自身的软件产品往往不是一个厂家做的,制定一套单点登录使用标准让各个厂家都遵守的难度很大,且市场上也没有绝对主流的标准。
单个单点登陆产品认证支持协议数量较少,而主流的标准协议类型有CAS、OAuth、SAML,OIDC等多种,单一商业产品不能覆盖认证的多种场景。
发明内容
本发明的目的在于提供一种多认证协议统一集成认证的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种多认证协议统一集成认证的方法,包括以下步骤:
步骤一、用户通过浏览器访问应用系统;
步骤二、过滤器判断用户是否登录,若登录则正常访问应用系统并返回信息给浏览器,若没有登录,则重定向到认证系统去进行认证操作;
步骤三、重定向到认证系统,认证系统访问redis检测是否保存有登录状态;
步骤四、若redis中存有登录状态,则返回登录状态给应用系统,若无登录状态,则返回登录页面给应用系统;
步骤五、用户填写登录信息,传输给身份认证中心;
步骤六、身份认证中心对协议进行匹配,识别应用系统的登录协议;
步骤七、身份认证中心登录当前协议成功之后,身份认证中心根据用户信息同样登录其他协议的系统;
步骤八、各协议服务端返回登录状态给身份认证中心;身份认证中心将登录状态都存入redis当中,并返回当前协议的登录凭证给应用系统从而使应用系统可以通过返回的登录凭证进行正常访问。
作为本发明进一步的方案:多认证协议统一集成认证的方法,还包括以下步骤:
步骤九、如果用户通过同一浏览器再去访问同一认证系统下其他应用系统时,首先访问身份认证中心然后身份认证中心对当前的应用系统进行协议匹配,根据匹配到的协议信息去访问redis。
作为本发明进一步的方案:多认证协议统一集成认证的方法,还包括以下步骤:
步骤十、身份认证中心访问redis,根据当前匹配到的协议获取用户登录状态返回给应用系统从而使浏览器能正常访问应用系统。
作为本发明进一步的方案:身份认证中心使用了Spring Security,SpringSecurity在认证成功后,会向Session中写入属性,而key值为SPRING_SECURITY_CONTEXT,后续可根据Request请求中的Session,获取此信息。
作为本发明进一步的方案:当用户通过另一应用系统访问身份认证中心时,身份认证中心即可通过Session中的信息判断是否为该用户,并根据结果返回登录状态,达成单点登录的效果。
作为本发明进一步的方案:多认证协议统一集成认证的方法,还包括以下步骤:
步骤十一、当用户再次访问某一登录过的应用系统时,由于该应用系统的session中有用户登录信息,所以不需要经过认证系统认证,就可以直接访问该应用系统了。
作为本发明进一步的方案:在步骤七中,当前协议定义为第一协议;其他协议定义为第二协议;步骤七,包括以下步骤:身份认证中心进行第一协议的登录,根据第一协议的登录信息进行第二协议的登录;
其中,身份认证中心进行第一协议的登录,包括以下步骤:
步骤一、应用系统检测到自己未登录之后访问身份认证中心;
步骤二、身份认证中心查询redis无登录状态之后返回进行协议判断,检测为第一协议之后访问第一协议服务器获取临时授权码,之后将授权登录页面以及授权码返回给应用系统;
步骤三、用户确认授权之后将确认授权的信息以及临时授权码发送给第一协议服务器去请求access token;
步骤四、第一协议服务器对用户确认授权信息进行确认,在授权通过之后,返回access token给身份认证中心,身份认证中心将access token存入redis;
步骤五、身份认证中心匹配当前应用系统和第一协议,如匹配成功则将token传递给应用系统;
步骤六、应用系统携带token正常访问,登录成功;
其中,根据第一协议的登录信息进行第二协议的登录,包括以下步骤:
步骤一、模拟应用系统检测到自己未登录之后访问身份认证中心;
步骤二、身份认证中心查询redis无登录状态之后返回进行协议判断,检测为第二协议之后将登录页面返回给应用系统;
步骤三、身份认证中心将第一协议的登陆过程中获得的用户名和密码转发给第二协议服务器进行认证;
步骤四、若第二协议服务器认证通过则将Service Ticket返回给身份认证中心,身份认证中心将Service Ticket存入redis;同时将第一协议登陆产生的token和第二协议登录产生的token之间的联系;
步骤五、身份认证中心匹配当前应用系统和第二协议,如匹配成功则将ServiceTicket传递给应用系统;
步骤六、应用系统携带Service Ticket访问第二协议服务器进行校验,若校验通过,则应用系统处于登录状态,能够正常访问网站。
作为本发明进一步的方案:第一协议为auth2协议;第二协议为CAS协议。
作为本发明进一步的方案:通过凭证管理模块和协议转换模块实现协议适配;其中凭证管理模块实现不同认证协议的登录状态保存的功能;协议转换模块在用户通过某一协议登录成功之后,即可通过获取到的凭证去获取用户的个人信息,在代码当中对获取到的用户的信息进行处理,模拟转换成其他的协议。
作为本发明进一步的方案:在代码当中,编写各协议的适配生成器,输入用户登录信息,即会模拟前端登录该协议服务器的过程,以此来对该协议进行模拟。
与现有技术相比,本发明的有益效果是:可以实现多种不同认证协议的免密单点登录。
模拟不同协议的登录过程来获取认证通过的钥匙(key),并在后台建立同一用户不同登录协议之间key的关联关系,确保用某一种协议完成登录认证后,其他不同的应用采用不同的协议也能达到免密单点登录的效果。
提供用户生命周期管理,支持SCIM2协议和REST接口;该系统基于Apache Kafka代理,通过连接器实现身份供给同步,基本认证,API认证,API扩展认证,令牌认证,JWT令牌认证,CAS认证,SAML2认证,OAuth2认证等多种认证机制并存,各应用系统可保留原有认证机制,同时集成认证中心的认证;应用具有高度独立性,不依赖认证中心,又可用使用认证中心的认证,实现单点登录认证效果。
附图说明
图1是一种多认证协议统一集成认证的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1所示,本发明实施例中,一种多认证协议统一集成认证的方法,包括以下步骤:
步骤一、用户通过浏览器访问应用系统1;
步骤二、过滤器判断用户是否登录,若登录则正常访问应用系统1并返回信息给浏览器,若没有登录,则重定向到认证系统去进行认证操作;
步骤三、重定向到认证系统,认证系统访问redis检测是否保存有登录状态;
步骤四、若redis中存有登录状态,则返回登录状态给应用系统1,若无登录状态1,则返回登录页面给应用系统1;
步骤五、用户填写登录信息,传输给身份认证中心;
步骤六、身份认证中心对协议进行匹配,识别应用系统1的登录协议;
步骤七、身份认证中心登录当前协议成功之后,身份认证中心根据用户信息同样登录其他协议的系统;
步骤八、各协议服务端返回登录状态给身份认证中心;身份认证中心将登录状态都存入redis当中,并返回当前协议的登录凭证给应用系统1从而使应用系统1可以通过返回的登录凭证进行正常访问;
步骤九、如果用户通过同一浏览器再去访问同一认证系统下其他应用系统时,首先访问身份认证中心然后身份认证中心对当前的应用系统进行协议匹配,根据匹配到的协议信息去访问redis;
步骤十、身份认证中心访问redis,根据当前匹配到的协议获取用户登录状态返回给应用系统从而使浏览器能正常访问应用系统;
步骤十一、当用户再次访问某一登录过的应用系统时,由于该应用系统的session中有用户登录信息,所以不需要经过认证系统认证,就可以直接访问该应用系统了。
作为本发明进一步的方案:以上步骤九中,身份认证中心使用了SpringSecurity,Spring Security在认证成功后,会向Session中写入属性,而key值为SPRING_SECURITY_CONTEXT,后续可根据Request请求中的Session,获取此信息。当用户通过另一应用系统访问身份认证中心时,身份认证中心即可通过Session中的信息判断是否为该用户,并根据结果返回登录状态,达成单点登录的效果。
针对步骤七做进一步的说明,在步骤七中,当前协议定义为第一协议;其他协议定义为第二协议;步骤七,包括以下步骤:身份认证中心进行第一协议的登录,根据第一协议的登录信息进行第二协议的登录;第二协议与第一协议为不同的协议。
其中,身份认证中心进行第一协议的登录,包括以下步骤:
步骤一、应用系统检测到自己未登录之后访问身份认证中心;
步骤二、身份认证中心查询redis无登录状态之后返回进行协议判断,检测为第一协议之后访问第一协议服务器获取临时授权码,之后将授权登录页面以及授权码返回给应用系统;
步骤三、用户确认授权之后将确认授权的信息以及临时授权码发送给第一协议服务器去请求access token;
步骤四、第一协议服务器对用户确认授权信息进行确认,在授权通过之后,返回access token给身份认证中心,身份认证中心将access token存入redis;
步骤五、身份认证中心匹配当前应用系统和第一协议,如匹配成功则将token传递给应用系统;
步骤六、应用系统携带token正常访问,登录成功;
其中,根据第一协议的登录信息进行第二协议的登录,包括以下步骤:
步骤一、模拟应用系统检测到自己未登录之后访问身份认证中心;
步骤二、身份认证中心查询redis无登录状态之后返回进行协议判断,检测为第二协议之后将登录页面返回给应用系统;
步骤三、身份认证中心将第一协议的登陆过程中获得的用户名和密码转发给第二协议服务器进行认证;
步骤四、若第二协议服务器认证通过则将Service Ticket返回给身份认证中心,身份认证中心将Service Ticket存入redis;同时将第一协议登陆产生的token和第二协议登录产生的token之间的联系;
步骤五、身份认证中心匹配当前应用系统和第二协议,如匹配成功则将ServiceTicket传递给应用系统;
步骤六、应用系统携带Service Ticket访问第二协议服务器进行校验,若校验通过,则应用系统处于登录状态,能够正常访问网站。
作为本发明进一步的方案:第一协议为auth2协议;第二协议为CAS协议。作为可选的实施方式,第一协议和第二协议并不限定为auth2协议和CAS协议,也可以为其他协议。
当用户或是发送用户登录信息,或是发送授权信息时,都会通过身份认证中心,而身份认证中心在确认当前应用系统对应的协议后,会通过之前暂存的用户身份信息对其他协议也同样进行登录,并将登录的状态存入redis当中。若下次该用户于同一浏览器访问同一登录系统下的其他应用时,若未登录,则会访问身份认证中心,身份认证中心在匹配协议之后会去redis当中查找到该用户相对于该协议的登录状态,如果查询的到则返回登录状态,如查询不到则重定向到登录界面进行登录。
作为本发明进一步的方案:通过凭证管理模块和协议转换模块实现协议适配。
凭证管理模块实现不同认证协议的登录状态保存的功能。在用户登录某一协议之后,会将登录凭证存入redis当中,key通过sessionid和协议的拼接来生成,value就是该协议的访问凭证,同时,身份认证中心也会模拟登录其他协议服务器,将所得的凭证都存放进去,这样用户在下一次登录时,或登录同一认证系统下的其他应用时就无须再去访问认证服务器,只需访问身份认证中心,获取redis中相匹配协议的登录状态就可以了。
协议转换模块在用户通过某一协议登录成功之后,即可通过获取到的凭证去获取用户的个人信息,在代码当中对获取到的用户的信息进行处理,模拟转换成其他的协议。
协议模拟即对应协议转换功能中的最后一步,将用户的个人信息转换为各类协议,在代码当中,编写各协议的适配生成器,输入用户登录信息,即会模拟前端登录该协议服务器的过程,以此来对该协议进行模拟。例如在通过Oauth协议登录成功之后,认证中心即可访问LDAP获取该用户的信息,再将该信息转成CAS登录的请求发送给登录的接口,对前端的登录进行模拟。
为了方便日后各类系统对单点登录认证系统的集成,可以将前端登录的代码进行封装,转成了js文件。之后在开发新项目时,只需在前端登录页面引入该js文件并创建对象即可将单点登录认证系统集成进项目。
通过LDAP作目录分发,将用户账号的数据分发给单点登陆认证中的各个子应用系统,系统有权限访问LDAP服务器中用户的信息。
支持多个协议的单点登陆认证,选择不同协议,通过添加适配器相应的规则处理认证,达到可从用户页面跳转到不同子系统页面的效果。
封装了不同的厂家的认证技术并且打通彼此间交互,真正用一套平台适配认证体系。成为了一把认证的万能钥匙。解决了企业不同系统钥匙太多且难以管理的问题。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (10)
1.一种多认证协议统一集成认证的方法,其特征在于,包括以下步骤:
步骤一、用户通过浏览器访问应用系统;
步骤二、过滤器判断用户是否登录,若登录则正常访问应用系统并返回信息给浏览器,若没有登录,则重定向到认证系统去进行认证操作;
步骤三、重定向到认证系统,认证系统访问redis检测是否保存有登录状态;
步骤四、若redis中存有登录状态,则返回登录状态给应用系统,若无登录状态,则返回登录页面给应用系统;
步骤五、用户填写登录信息,传输给身份认证中心;
步骤六、身份认证中心对协议进行匹配,识别应用系统的登录协议;
步骤七、身份认证中心登录当前协议成功之后,身份认证中心根据用户信息同样登录其他协议的系统;
步骤八、各协议服务端返回登录状态给身份认证中心;身份认证中心将登录状态都存入redis当中,并返回当前协议的登录凭证给应用系统从而使应用系统可以通过返回的登录凭证进行正常访问。
2.根据权利要求1所述的多认证协议统一集成认证的方法,其特征在于,还包括以下步骤:
步骤九:如果用户通过同一浏览器再去访问同一认证系统下其他应用系统时,首先访问身份认证中心然后身份认证中心对当前的应用系统进行协议匹配,根据匹配到的协议信息去访问redis。
3.根据权利要求2所述的多认证协议统一集成认证的方法,其特征在于,还包括以下步骤:
步骤十:身份认证中心访问redis,根据当前匹配到的协议获取用户登录状态返回给应用系统从而使浏览器能正常访问应用系统。
4.根据权利要求3所述的多认证协议统一集成认证的方法,其特征在于,
身份认证中心使用了Spring Security,Spring Security在认证成功后,会向Session中写入属性,而key值为SPRING_SECURITY_CONTEXT,后续可根据Request请求中的Session,获取此信息。
5.根据权利要求4所述的多认证协议统一集成认证的方法,其特征在于,
当用户通过另一应用系统访问身份认证中心时,身份认证中心即可通过Session中的信息判断是否为该用户,并根据结果返回登录状态,达成单点登录的效果。
6.根据权利要求3所述的多认证协议统一集成认证的方法,其特征在于,还包括以下步骤:
步骤十一、当用户再次访问某一登录过的应用系统时,由于该应用系统的session中有用户登录信息,所以不需要经过认证系统认证,就可以直接访问该应用系统了。
7.根据权利要求1所述的多认证协议统一集成认证的方法,其特征在于,
在步骤七中,当前协议定义为第一协议;其他协议定义为第二协议;步骤七,包括以下步骤:身份认证中心进行第一协议的登录,根据第一协议的登录信息进行第二协议的登录;
其中,身份认证中心进行第一协议的登录,包括以下步骤:
步骤一、应用系统检测到自己未登录之后访问身份认证中心;
步骤二、身份认证中心查询redis无登录状态之后返回进行协议判断,检测为第一协议之后访问第一协议服务器获取临时授权码,之后将授权登录页面以及授权码返回给应用系统;
步骤三、用户确认授权之后将确认授权的信息以及临时授权码发送给第一协议服务器去请求access token;
步骤四、第一协议服务器对用户确认授权信息进行确认,在授权通过之后,返回accesstoken给身份认证中心,身份认证中心将access token存入redis;
步骤五、身份认证中心匹配当前应用系统和第一协议,如匹配成功则将token传递给应用系统;
步骤六、应用系统携带token正常访问,登录成功;
其中,根据第一协议的登录信息进行第二协议的登录,包括以下步骤:
步骤一、模拟应用系统检测到自己未登录之后访问身份认证中心;
步骤二、身份认证中心查询redis无登录状态之后返回进行协议判断,检测为第二协议之后将登录页面返回给应用系统;
步骤三、身份认证中心将第一协议的登陆过程中获得的用户名和密码转发给第二协议服务器进行认证;
步骤四、若第二协议服务器认证通过则将Service Ticket返回给身份认证中心,身份认证中心将Service Ticket存入redis;同时将第一协议登陆产生的token和第二协议登录产生的token之间的联系;
步骤五、身份认证中心匹配当前应用系统和第二协议,如匹配成功则将ServiceTicket传递给应用系统;
步骤六、应用系统携带Service Ticket访问第二协议服务器进行校验,若校验通过,则应用系统处于登录状态,能够正常访问网站。
8.根据权利要求7所述的多认证协议统一集成认证的方法,其特征在于,
第一协议为auth2协议;第二协议为CAS协议。
9.根据权利要求1所述的多认证协议统一集成认证的方法,其特征在于,
通过凭证管理模块和协议转换模块实现协议适配;
其中凭证管理模块实现不同认证协议的登录状态保存的功能;
协议转换模块在用户通过某一协议登录成功之后,即可通过获取到的凭证去获取用户的个人信息,在代码当中对获取到的用户的信息进行处理,模拟转换成其他的协议。
10.根据权利要求9所述的多认证协议统一集成认证的方法,其特征在于,
在代码当中,编写各协议的适配生成器,输入用户登录信息,即会模拟前端登录该协议服务器的过程,以此来对该协议进行模拟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111313050.1A CN114282200A (zh) | 2021-11-08 | 2021-11-08 | 多认证协议统一集成认证的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111313050.1A CN114282200A (zh) | 2021-11-08 | 2021-11-08 | 多认证协议统一集成认证的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114282200A true CN114282200A (zh) | 2022-04-05 |
Family
ID=80868805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111313050.1A Pending CN114282200A (zh) | 2021-11-08 | 2021-11-08 | 多认证协议统一集成认证的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114282200A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115221177A (zh) * | 2022-08-09 | 2022-10-21 | 西藏全媒信息科技有限公司 | 一种新时代文明实践中心平台系统 |
-
2021
- 2021-11-08 CN CN202111313050.1A patent/CN114282200A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115221177A (zh) * | 2022-08-09 | 2022-10-21 | 西藏全媒信息科技有限公司 | 一种新时代文明实践中心平台系统 |
CN115221177B (zh) * | 2022-08-09 | 2024-05-28 | 西藏全媒信息科技有限公司 | 一种文明实践中心平台系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109309683B (zh) | 基于token的客户端身份验证的方法及系统 | |
EP2984589B1 (en) | System and method for mobile single sign-on integration | |
CN102739658B (zh) | 一种单点登录的离线验证方法 | |
CN105959267B (zh) | 单点登录技术中的主令牌获取方法、单点登录方法及系统 | |
CN110086822A (zh) | 面向微服务架构的统一身份认证策略的实现方法及系统 | |
US7716469B2 (en) | Method and system for providing a circle of trust on a network | |
CN109165500B (zh) | 一种基于跨域技术的单点登录认证系统及方法 | |
CN103475666B (zh) | 一种物联网资源的数字签名认证方法 | |
CN113783695A (zh) | 一种微服务架构的客户端信息认证方法及系统 | |
US9584615B2 (en) | Redirecting access requests to an authorized server system for a cloud service | |
CN107948203A (zh) | 一种容器登录方法、应用服务器、系统及存储介质 | |
CN112468481B (zh) | 一种基于CAS的单页和多页web应用身份集成认证方法 | |
CN105812350B (zh) | 一种跨平台单点登录系统 | |
WO2016173199A1 (zh) | 一种移动应用单点登录方法及装置 | |
JP6025480B2 (ja) | 認可サーバーシステム、権限移譲システム、その制御方法、およびプログラム | |
CN108769186B (zh) | 业务权限控制方法及装置 | |
CN108632241B (zh) | 一种多应用系统统一登录方法和装置 | |
CN105577835B (zh) | 一种基于云计算的跨平台单点登录系统 | |
WO2014048749A1 (en) | Inter-domain single sign-on | |
CN105141580B (zh) | 一种基于ad域的资源访问控制方法 | |
CN106331003B (zh) | 一种云桌面上应用门户系统的访问方法及装置 | |
CN102143131B (zh) | 用户注销方法及认证服务器 | |
CN109962892A (zh) | 一种登录应用的认证方法及客户端、服务器 | |
CN108111518B (zh) | 一种基于安全密码代理服务器的单点登录方法及系统 | |
CN110944021A (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 |