用户身份认证方法及系统
技术领域
本发明实施例涉及通信技术领域,具体涉及一种用户身份认证方法及系统。
背景技术
随着信息技术的快速发展,应用系统软件化成为趋势。单点登录统一认证作为软件基础功能之一,各种软件即服务(Software-as-a-Service,SAAS)平台都支持,但由于目前认证协议框架多且复杂,SAAS平台都只支持其中某一种协议。若要支持其他协议,则需要设置多个不同的服务器,需要占用较多资源。
发明内容
鉴于上述问题,本发明实施例提供了一种用户身份认证方法及系统,能够在同一服务器上支持多种协议,节省资源。
根据本发明实施例的一个方面,提供了一种用户身份认证方法,所述方法包括:统一认证代理服务通过所述统一认证服务接口获取用户身份认证请求;统一认证代理服务根据所述认证请求,基于所述认证请求的报文首部确定所述认证请求所属的协议类型;若所述认证请求所属的协议类型为面向连接的协议类型,则统一认证中心根据所述认证请求,基于所述认证请求中的预设关键字,确定所述认证请求的请求类型;其中,所述预设关键字包括Method、GET、POST、Content-Type、SOAP,所述认证请求的请求类型为GET请求类型或者POST请求类型或者SOAP请求类型,所述基于所述认证请求中的预设关键字,确定所述认证请求的请求类型,具体包括:基于所述预设关键字Method和GET,确定所述认证请求的请求类型为GET请求类型;基于所述预设关键字Method和POST,确定所述认证请求的请求类型为POST请求类型;基于所述预设关键字Content-Type和SOAP,确定所述认证请求的请求类型为SOAP请求类型;统一认证中心根据所述认证请求的请求类型,从所述认证请求中获取第一报文信息;统一认证中心获取所述第一报文信息的报文格式,确定与所述报文格式对应的第一认证处理流程;统一认证中心根据所述第一认证处理流程对所述第一报文信息进行解密,从解密后所述第一报文信息中提取认证信息,并根据所述认证信息,进行用户身份认证;其中,所述统一认证中心设于一个独立服务器。
在一种可选的方式中,所述统一认证中心根据所述认证请求,基于所述认证请求的报文首部确定所述认证请求所属的协议类型,进一步包括:确定所述认证请求的报文首部长度;若所述认证请求的报文首部长度大于或者等于二十字节,则确定所述认证请求所属的协议类型为面向连接的协议类型;若所述认证请求的报文首部长度小于二十字节,则确定所述认证请求所属的协议类型为面向无连接的协议类型。
在一种可选的方式中,所述方法还包括:若所述认证请求所属的协议类型为面向无连接的协议类型,则统一认证中心从所述认证请求中获取第二报文信息;统一认证中心确定所述第二报文信息的第二认证处理流程;统一认证中心根据所述第二认证处理流程以及所述第二报文信息,进行用户身份认证。
在一种可选的方式中,所述统一认证中心根据所述认证请求,基于所述认证请求中的预设关键字,确定所述认证请求的请求类型,进一步包括:在所述认证请求中查询所述预设关键字;根据所述预设关键字与所述认证请求的请求类型的对应关系,确定与所述预设关键字对应的所述请求类型。
在一种可选的方式中,所述第一认证处理流程包括基于SAML协议的认证处理流程、基于OAuth协议的认证处理流程、基于OpenID协议的认证处理流程中的一种或多种。
在一种可选的方式中,所述根据所述认证信息,进行用户身份认证,进一步包括:确定所述用户身份认证请求的来源;确定与所述用户身份认证请求的来源对应的安全等级;根据所述认证信息,按照所述安全等级进行用户身份认证。
根据本发明实施例的另一方面,提供了一种用户身份认证系统,所述系统包括:统一认证代理服务,用于通过所述统一认证服务接口获取用户身份认证请求;根据所述认证请求,基于所述认证请求的报文首部确定所述认证请求所属的协议类型;统一认证中心,用于若所述认证请求所属的协议类型为面向连接的协议类型,则根据所述认证请求,基于所述认证请求中的预设关键字,确定所述认证请求的请求类型;根据所述认证请求的请求类型,从所述认证请求中获取第一报文信息;获取所述第一报文信息的报文格式,确定与所述报文格式对应的第一认证处理流程;根据所述第一认证处理流程对所述第一报文信息进行解密,从解密后所述第一报文信息中提取认证信息,并根据所述认证信息,进行用户身份认证;其中,所述预设关键字包括Method、GET、POST、Content-Type、SOAP,所述认证请求的请求类型为GET请求类型或者POST请求类型或者SOAP请求类型,所述基于所述认证请求中的预设关键字,确定所述认证请求的请求类型,具体包括:基于所述预设关键字Method和GET,确定所述认证请求的请求类型为GET请求类型;基于所述预设关键字Method和POST,确定所述认证请求的请求类型为POST请求类型;基于所述预设关键字Content-Type和SOAP,确定所述认证请求的请求类型为SOAP请求类型;其中,所述统一认证中心设于一个独立服务器。
根据本发明实施例的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上所述的用户身份认证方法。
本发明实施例通过统一认证代理服务通过所述统一认证服务接口获取用户身份认证请求,统一认证代理服务根据认证请求,基于认证请求的报文首部确定认证请求所属的协议类型,若认证请求所属的协议类型为面向连接的协议类型,则统一认证中心根据认证请求,基于认证请求中的预设关键字,确定认证请求的请求类型,统一认证中心根据认证请求的请求类型,从认证请求中获取第一报文信息,统一认证中心获取所述第一报文信息的报文格式,确定与所述报文格式对应的第一认证处理流程,统一认证中心根据第一认证处理流程对第一报文信息进行解密,从解密后的所述第一报文信息中提取认证信息,并根据所述认证信息,进行用户身份认证,所述统一认证中心设于一个独立服务器,能够使设置在同一独立服务器的统一认证中心支持多种协议的认证请求,无需设置多个不同的服务器,节省资源,并且,可以提供统一的对外的认证服务接口,支持多种协议,无需定义繁多的协议接口,操作简单,通过统一的网络传输协议处理过程,使得每种协议处理类只需关注需要的关键信息即可,无需进行重复的数据获取验证工作,可以覆盖多种认证协议集成场景。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明其中一实施例提供的用户身份认证方法的流程图;
图2a示出了TCP的报文首部格式;
图2b示出了UDP的报文首部格式;
图3示出了本发明另一实施例提供的用户身份认证方法的流程图;
图4示出了本发明实施例提供的用户身份认证系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
由于目前认证协议框架多且复杂,SAAS平台都只支持其中某一种协议。若要在SAAS平台新增其他协议,则需要定义一套新的接口,并进行相关的逻辑编写,非常麻烦,并且,接口规范固定、不灵活,基于超文本传输协议(Hyper Text Transfer Protocol,HTTP)的接口不支持其他传输控制协议(Transmission Control Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)。若要支持其他协议,则需要设置多个不同的服务器,需要占用较多资源。
基于此,本发明实施例提供一种用户身份认证方法及系统,能够使设置在同一独立服务器的统一认证中心支持多种协议的认证请求。
具体地,下面结合附图,对本发明实施例作进一步阐述。
其中,应当理解的是,本发明提供的下述实施例之间,只要不冲突,均可相互结合以形成新的实施方式。
图1示出了本发明其中一实施例提供的用户身份认证方法的流程图。该方法应用于认证系统中。如图1所示,该方法包括以下步骤:
步骤110、统一认证代理服务通过统一认证服务接口获取用户身份认证请求。
其中,统一认证服务接口设置在用户身份认证系统,统一认证服务接口为用于接收各个应用发送的用户身份认证请求的接口。本实施例仅通过一个统一的接口接收认证请求,而无需定义繁多的协议接口。
其中,用户身份认证请求为应用向用户身份认证系统发送的用于进行用户身份鉴别的请求,以使当认证通过时,用户可通过该应用访问业务服务。
在步骤110中,当统一认证服务接口接收用户身份认证请求时,统一认证代理系统拦截用户身份认证请求,从而统一认证代理系统获取用户身份认证请求。
步骤120、统一认证代理服务根据认证请求,基于认证请求的报文首部确定认证请求所属的协议类型。
其中,认证请求所属的协议类型包括面向连接的协议类型和面向无连接的协议类型。面向连接是指在发送数据之前需要建立连接,面向无连接是指在发送数据之前不需要建立连接。具体地,面向连接的协议类型是指传输控制协议(Transmission ControlProtocol,TCP),TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议;面向无连接的协议类型是指用户数据报协议(User Datagram Protocol,UDP),UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息的传输层通信协议。TCP可以应用于一些要求可靠性的应用,例如浏览器,或者其他采用HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议的应用。UDP可以应用于可靠性要求不高、速度要求快的应用,例如QQ语音、QQ视频,或者其他用于进行视频传输、实时通信等的应用。因此,本实施例可以通过统一认证服务接口接收不同类型的认证请求,并通过确定认证请求所属的协议类型,进行对应的处理。
其中,报文是网络传输的单位,传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,这些信息段就是报文首部。报文首部是指接收地址、发送地址以及分组序号写入的部分,例如,当一个较大的数据被分为多个组别时,需要将分组的序号写入到包里面,则可以表示出是原始数据的一部分,接收者再根据这个序号重新装配为原始数据。
具体地,步骤120可以包括:
步骤121、确定认证请求的报文首部长度;
步骤122、若认证请求的报文首部长度大于或者等于二十字节,则确定认证请求所属的协议类型为面向连接的协议类型;
步骤123、若认证请求的报文首部长度小于二十字节,则确定认证请求所属的协议类型为面向无连接的协议类型。
其中,TCP的报文首部格式如图2a所示。在图2a中,源端口和目的端口各占2个字节,序号占4字节(首部中的序号字段是指本报文端所发送的数据的第一个字节的序号),确认号4字节(确认号是指期望收到对方下一个报文端的第一个数据字节的序号),数据偏移4位(指出TCP报文段的数据起始处距离报文段的起始处有多远,实际上是指出TCP报文段的首部长度),保留6位(包括紧急URG1位、确认ACK1位、推送PSH1位、复位RST1位、同步SYN1位和终止FIN1位),窗口占2字节,检验和占2字节,紧急指针占2字节,选项长度可变,最长可达40字节。当没有使用“选项”时,TCP的报文首部长度为20字节。即,TCP的报文首部长度最小为20字节。则在步骤122中,若认证请求的报文首部长度大于或者等于二十字节,则确定认证请求所属的协议类型为面向连接的协议类型,即TCP。
其中,UDP的报文首部格式如图2b所示。在图2b中,源端口、目的端口、长度和检验和分别占2字节。即,UDP的报文首部长度为8字节。则在步骤123中,若认证请求的报文首部长度小于二十字节,则确定认证请求所属的协议类型为面向无连接的协议类型。进一步地,步骤123还可以为:若认证请求的报文首部长度为八字节,则确定认证请求所属的协议类型为面向无连接的协议类型。
步骤130、若认证请求所属的协议类型为面向连接的协议类型,则统一认证中心根据认证请求,基于认证请求中的预设关键字,确定认证请求的请求类型。
其中,认证请求的请求类型是指认证请求的请求方式的类型。认证请求的请求类型包括GET请求类型、POST请求类型和SOAP请求类型中的一种或多种。
其中,GET请求类型是基于HTTP-GET协议传输的消息请求方式,例如,当客户端需要从服务器中读取文档时,点击网页上的链接或者通过浏览器的地址栏输入网址来浏览网页的,使用的都是GET请求方式。POST请求类型是基于HTTP-POST协议传输的消息请求方式,使用POST方式可以允许客户端给服务器提供较多的数据,例如,POST请求方式可以应用于页面的表单。
其中,SOAP((Simple Object Access Protocol,简单对象访问协议)请求类型是指基于文本XML的应用协议传输的消息请求方式,例如,认证请求通过SOAP消息传输到一个启用web service的网站,则该认证请求的请求类型为SOAP请求类型。
可选地,认证请求的请求类型还可以包括基于HTTP协议的其他请求方式,例如HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT等。
其中,预设关键字为预先设定的关键字。具体地,步骤130可以包括:
步骤131、在认证请求中查询预设关键字;
步骤132、根据预设关键字与认证请求的请求类型的对应关系,确定与预设关键字对应的请求类型。
其中,预设关键字可以包括Method、GET、POST、Content-Type、SOAP等。在认证请求中查询预设关键字,具体可以为:在认证请求中查找是否存在预设关键字,若存在,则获取预设关键字。
其中,预设关键字与认证请求的请求类型的对应关系是预先设定的,例如,预设关键字Method和GET对应的请求类型为GET请求类型,预设关键字Method和POST对应的请求类型为POST请求类型,预设关键字Content-Type和SOAP对应的请求类型为SOAP请求类型,等等。则统一认证服务中心基于预设关键字Method和GET,确定认证请求的请求类型为GET请求类型;基于预设关键字Method和POST,确定认证请求的请求类型为POST请求类型;基于预设关键字Content-Type和SOAP,确定认证请求的请求类型为SOAP请求类型。例如,假设认证请求中包含信息“connection.setRequestMethod("GET")”,则获取到预设关键字Method和GET,则该认证请求的请求类型为GET请求类型;又例如,假设认证请求中包含信息“connection.setRequestMethod("POST")”,则获取到预设关键字Method和POST,则该认证请求的请求类型为POST请求类型;再例如,假设认证请求中包含信息“Content-Type:application/soap+xml; charset=utf-8”,则获取到预设关键字Content-Type和SOAP,则该认证请求的请求类型为SOAP请求类型。
当然,在一些其他实施例中,预设关键字还可以为其他能够区分GET请求类型、POST请求类型和SOAP请求类型的关键字。
步骤140、统一认证中心根据认证请求的请求类型,从认证请求中获取第一报文信息。
其中,报文信息是指报文中携带的数据。当认证请求所属的协议类型为面向连接的协议类型,则根据HTTP的不同实现(GET、POST、SOAP等)对应提取第一报文信息。例如,当请求类型为GET请求类型,则使用GET方法,GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端,则使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号代表URL的结尾与请求参数的开始,传递参数长度受限制。又例如,当请求类型为POST请求类型,则使用POST方法,POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现。
步骤150、统一认证中心获取所述第一报文信息的报文格式,确定与所述报文格式对应的第一认证处理流程。
其中,第一认证处理流程包括基于SAML协议的认证处理流程、基于OAuth协议的认证处理流程、基于OpenID协议的认证处理流程中的一种或多种。
其中,报文格式可以包括XML格式、JSON格式等等。认证请求的请求类型相同,其报文信息的报文格式可能相同也可能不同。例如,认证请求的请求类型为SOAP请求类型,报文格式为XML格式;认证请求的请求类型为GET请求类型,报文格式为JSON格式。获取第一报文信息的报文格式,具体可以为通过报文分析处理引擎对报文信息进行识别,从而确定报文格式。
其中,确定与报文格式对应的第一认证处理流程,具体可以为:预先设置报文格式与第一认证处理流程的对应关系,根据获取的第一报文信息的报文格式、以及报文格式与第一认证处理流程的对应关系,确定与报文格式对应的第一认证处理流程。其中,预先设置报文格式与第一认证处理流程的对应关系,例如可以为:XML格式对应基于SAML协议的认证处理流程,JSON格式对应基于OpenID协议的认证处理流程,JSON格式对应基于OAuth协议的认证处理流程,等等。
可选地,在一些其他实施例中,统一认证中心还可以根据第一报文信息中的请求标识,确定第一报文信息的第一认证处理流程。其中,请求标识可以为用于请求某种特定认证处理流程的关键字。例如,请求标识可以包括SAMLRequest的标签、response_type参数等等,则根据SAMLRequest的标签,确定第一报文信息的第一认证处理流程为基于SAML协议的认证处理流程,根据response_type参数,确定第一报文信息的第一认证处理流程为基于OAuth协议的认证处理流程。
步骤160、统一认证中心根据第一认证处理流程对第一报文信息进行解密,从解密后的第一报文信息中提取认证信息,并根据认证信息,进行用户身份认证。
其中,第一报文信息是进行加密后的信息,而与第一报文信息对应的第一认证处理流程含有第一报文信息的密钥,因此,第一认证处理流程能够对第一报文信息进行解密,从获取得到认证信息。则,根据第一认证处理流程对第一报文信息进行解密,具体可以为:通过samlRequestHandler、oauthRequestHandler、jwtHandler等等依照互联网标准RFC定义的标准格式,对第一报文信息进行解密。
其中,从解密后的第一报文信息中提取认证信息后,统一认证中心缓存认证信息,并根据认证信息进行用户身份认证。其中,认证信息可以包括密码信息、指纹信息、人脸信息、验证码信息中的一种或者多种。根据认证信息,能够识别用户身份与系统预留身份是否相同,从而确定是否允许用户的访问。
需要说明的是,当统一认证中心需要返回信息时,统一认证中心采用与接收认证信息相同的方式沿原路径返回信息至应用。
需要说明的是,本实施例中统一认证中心设于一个独立服务器,其所有方法均由该独立服务器执行。发送不同协议认证请求的不同应用均可以通过统一认证服务接口到统一认证中心进行身份认证,能够使设置在同一独立服务器的统一认证中心支持多种协议的认证请求,无需设置多个不同的服务器,节省资源。
本发明实施例通过统一认证代理服务通过所述统一认证服务接口获取用户身份认证请求,统一认证代理服务根据认证请求,基于认证请求的报文首部确定认证请求所属的协议类型,若认证请求所属的协议类型为面向连接的协议类型,则统一认证中心根据认证请求,基于认证请求中的预设关键字,确定认证请求的请求类型,统一认证中心根据认证请求的请求类型,从认证请求中获取第一报文信息,统一认证中心获取所述第一报文信息的报文格式,确定与所述报文格式对应的第一认证处理流程,统一认证中心根据第一认证处理流程对第一报文信息进行解密,从解密后的所述第一报文信息中提取认证信息,并根据所述认证信息,进行用户身份认证,所述统一认证中心设于一个独立服务器,能够在同一服务器上支持多种协议,无需设置多个不同的服务器,节省资源,并且,可以提供统一的对外的认证服务接口,支持多种协议,无需定义繁多的协议接口,操作简单,通过统一的网络传输协议处理过程,使得每种协议处理类只需关注需要的关键信息即可,无需进行重复的数据获取验证工作,可以覆盖多种认证协议集成场景。
在一些其他实施例中,步骤160进一步包括:
步骤161、确定用户身份认证请求的来源;
步骤162、确定与用户身份认证请求的来源对应的安全等级;
步骤163、根据认证信息,按照安全等级进行用户身份认证。
其中,用户身份认证请求的来源可以为不同应用或者同一应用中不同子应用。例如,网页应用通过认证服务接口发送用户身份认证请求A,网络通话应用通过认证服务接口发送用户身份认证请求B,则用户身份认证请求A的来源为网页应用,用户身份认证请求B的来源为网络通话应用。
其中,不同用户身份认证请求的来源对应不同的安全等级。不同用户身份认证请求的来源与安全等级的对应关系是预先设置的。例如,可以通过人工确定不同应用或者同一应用中不同子应用的安全性,安全性高的则设置较低的安全等级,安全性低的则设置较高的安全等级;又例如,可以通过人工确定不同应用或者同一应用中不同子应用的访问权限,访问权限小的则设置较高的安全等级,访问权限大的则设置较低的安全等级。
其中,根据认证信息,按照安全等级进行用户身份认证,具体可以为:根据密码信息、指纹信息、人脸信息、验证码信息中的一种或多种,按照安全等级进行用户身份认证。例如,若安全等级较低,则根据密码信息可进行用户身份认证,若安全等级中等,则根据密码信息和指纹信息进行用户身份认证,若安全等级较高,则根据密码信息、指纹信息、人脸信息进行用户身份认证。
图3示出了本发明另一实施例提供的用户身份认证方法的流程图。该方法应用于认证设备中。如图3所示,与上述实施例的不同之处在于,该方法还包括以下步骤:
步骤171、若认证请求所属的协议类型为面向无连接的协议类型,则统一认证中心从认证请求中获取第二报文信息;
步骤172、统一认证中心确定第二报文信息的第二认证处理流程;
步骤173、统一认证中心根据第二认证处理流程以及第二报文信息,进行用户身份认证。
其中,当认证请求所属的协议类型为面向无连接的协议类型,则根据UDP协议进行报文解析提取,从而获取第二报文信息。
其中,第二认证处理流程包括基于RADIUS(Remote Authentication Dial-InUser Server,远程认证拨号用户服务)协议的认证处理流程。则确定第二报文信息的第二认证处理流程,具体为:将第二认证处理流程确定为基于RADIUS协议的认证处理流程。
在步骤173中,统一认证中心通过第二认证处理流程从第二报文信息中提取、缓存认证信息,并根据认证信息进行用户身份认证。
本发明实施例通过统一认证代理服务通过所述统一认证服务接口获取用户身份认证请求,统一认证代理服务根据认证请求,基于认证请求的报文首部确定认证请求所属的协议类型,若认证请求所属的协议类型为面向无连接的协议类型,则统一认证中心从认证请求中获取第二报文信息,统一认证中心确定第二报文信息的第二认证处理流程,统一认证中心根据第二认证处理流程以及第二报文信息,进行用户身份认证,可以提供统一的对外的认证服务接口,能够使设置在同一独立服务器的统一认证中心支持多种协议的认证请求,无需定义繁多的协议接口,并且操作简单,同时通过统一的网络传输协议处理过程,使得每种协议处理类只需关注需要的关键信息即可,无需进行重复的数据获取验证工作,可以覆盖多种认证协议集成场景,并且通过增加统一认证代理服务支持UDP协议以覆盖更多协议的实现。
图4示出了本发明实施例提供的用户身份认证系统的结构示意图。如图4所示,该系统200包括:统一认证代理服务210和统一认证中心220。
其中,统一认证代理服务210和统一认证中心220均可以为API(ApplicationProgramming Interface,应用程序接口)网关,统一认证代理服务210和统一认证中心220可以设置在同一API网关或者不同API网关上。
其中,统一认证代理服务210用于通过所述统一认证服务接口获取用户身份认证请求;根据所述认证请求,基于所述认证请求的报文首部确定所述认证请求所属的协议类型;统一认证中心220用于若所述认证请求所属的协议类型为面向连接的协议类型,则根据所述认证请求,基于所述认证请求中的预设关键字,确定所述认证请求的请求类型;根据所述认证请求的请求类型,从所述认证请求中获取第一报文信息;获取所述第一报文信息的报文格式,确定与所述报文格式对应的第一认证处理流程;根据所述第一认证处理流程对所述第一报文信息进行解密,从解密后的所述第一报文信息中提取认证信息,并根据所述认证信息,进行用户身份认证其中,所述预设关键字包括Method、GET、POST、Content-Type、SOAP,所述认证请求的请求类型为GET请求类型或者POST请求类型或者SOAP请求类型,所述基于所述认证请求中的预设关键字,确定所述认证请求的请求类型,具体包括:基于所述预设关键字Method和GET,确定所述认证请求的请求类型为GET请求类型;基于所述预设关键字Method和POST,确定所述认证请求的请求类型为POST请求类型;基于所述预设关键字Content-Type和SOAP,确定所述认证请求的请求类型为SOAP请求类型;其中,所述统一认证中心设于一个独立服务器。
在一种可选的方式中,统一认证中心220具体用于:确定所述认证请求的报文首部长度;若所述认证请求的报文首部长度大于或者等于二十字节,则确定所述认证请求所属的协议类型为面向连接的协议类型;若所述认证请求的报文首部长度小于二十字节,则确定所述认证请求所属的协议类型为面向无连接的协议类型。
在一种可选的方式中,统一认证中心220具体用于:若所述认证请求所属的协议类型为面向无连接的协议类型,则统一认证中心从所述认证请求中获取第二报文信息;统一认证中心确定所述第二报文信息的第二认证处理流程;统一认证中心根据所述第二认证处理流程以及所述第二报文信息,进行用户身份认证。
在一种可选的方式中,统一认证中心220具体用于:在所述认证请求中查询所述预设关键字;根据所述预设关键字与所述认证请求的请求类型的对应关系,确定与所述预设关键字对应的所述请求类型。
在一种可选的方式中,所述第一认证处理流程包括基于SAML协议的认证处理流程、基于OAuth协议的认证处理流程、基于OpenID协议的认证处理流程中的一种或多种。
在一种可选的方式中,统一认证中心220还具体用于:确定所述用户身份认证请求的来源;确定与所述用户身份认证请求的来源对应的安全等级;根据所述认证信息,按照所述安全等级进行用户身份认证。
需要说明的是,本发明实施例提供的用户身份认证系统是能够执行上述用户身份认证方法的系统,则上述用户身份认证方法的所有实施例均适用于该系统,且均能达到相同或相似的有益效果。
本发明实施例通过统一认证代理服务210通过所述统一认证服务接口获取用户身份认证请求,统一认证代理服务210根据认证请求,基于认证请求的报文首部确定认证请求所属的协议类型,若认证请求所属的协议类型为面向连接的协议类型,则统一认证中心220根据认证请求,基于认证请求中的预设关键字,确定认证请求的请求类型,统一认证中心220根据认证请求的请求类型,从认证请求中获取第一报文信息,统一认证中心220获取所述第一报文信息的报文格式,确定与所述报文格式对应的第一认证处理流程进行解密,从解密后的所述第一报文信息中提取认证信息,并根据所述认证信息,统一认证中心220根据第一认证处理流程对第一报文信息,进行用户身份认证,所述统一认证中心设于一个独立服务器,能够使设置在同一独立服务器的统一认证中心支持多种协议的认证请求,无需设置多个不同的服务器,节省资源,并且,可以提供统一的对外的认证服务接口,能够支持多种协议,无需定义繁多的协议接口,操作简单,通过统一的网络传输协议处理过程,使得每种协议处理类只需关注需要的关键信息即可,无需进行重复的数据获取验证工作,可以覆盖多种认证协议集成场景。
本发明实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行上述任意方法实施例中的认证方法。
本发明实施例通过统一认证代理服务通过所述统一认证服务接口获取用户身份认证请求,统一认证代理服务根据认证请求,基于认证请求的报文首部确定认证请求所属的协议类型,若认证请求所属的协议类型为面向连接的协议类型,则统一认证中心根据认证请求,基于认证请求中的预设关键字,确定认证请求的请求类型,统一认证中心根据认证请求的请求类型,从认证请求中获取第一报文信息,统一认证中心获取所述第一报文信息的报文格式,确定与所述报文格式对应的第一认证处理流程,统一认证中心根据第一认证处理流程对第一报文信息进行解密,从解密后的所述第一报文信息中提取认证信息,并根据所述认证信息,进行用户身份认证,所述统一认证中心设于一个独立服务器,能够使设置在同一独立服务器的统一认证中心支持多种协议的认证请求,无需设置多个不同的服务器,节省资源,并且,可以提供统一的对外的认证服务接口,支持多种协议,无需定义繁多的协议接口,操作简单,通过统一的网络传输协议处理过程,使得每种协议处理类只需关注需要的关键信息即可,无需进行重复的数据获取验证工作,可以覆盖多种认证协议集成场景。
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任意方法实施例中的认证方法。
本发明实施例通过统一认证代理服务通过所述统一认证服务接口获取用户身份认证请求,统一认证代理服务根据认证请求,基于认证请求的报文首部确定认证请求所属的协议类型,若认证请求所属的协议类型为面向连接的协议类型,则统一认证中心根据认证请求,基于认证请求中的预设关键字,确定认证请求的请求类型,统一认证中心根据认证请求的请求类型,从认证请求中获取第一报文信息,统一认证中心获取所述第一报文信息的报文格式,确定与所述报文格式对应的第一认证处理流程,统一认证中心根据第一认证处理流程对第一报文信息进行解密,从解密后的所述第一报文信息中提取认证信息,并根据所述认证信息,进行用户身份认证,所述统一认证中心设于一个独立服务器,能够使设置在同一独立服务器的统一认证中心支持多种协议的认证请求,无需设置多个不同的服务器,节省资源,并且,可以提供统一的对外的认证服务接口,支持多种协议,无需定义繁多的协议接口,操作简单,通过统一的网络传输协议处理过程,使得每种协议处理类只需关注需要的关键信息即可,无需进行重复的数据获取验证工作,可以覆盖多种认证协议集成场景。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。