掌桥专利:专业的专利平台
掌桥专利
首页

一种基于oauth2协议增强的授权系统及其方法

文献发布时间:2023-06-19 11:44:10


一种基于oauth2协议增强的授权系统及其方法

技术领域

本发明涉及授权认证技术领域,尤其是涉及一种基于oauth2协议增强的授权系统及其方法。

背景技术

相比传统应用系统,互联网应用具有用户体验较好以及数据安全的优点,因此互联网应用得到了飞速发展,其中的用户身份识别能够可靠保证应用的安全运行。

目前,针对单个应用系统而言,可以通过用户登录认证的鉴权方式来对用户身份进行有效识别,但是对于部分业务场景可能涉及到跨业务交互的情况下,就会存在需要多次鉴权的情况,不仅增加了系统交互复杂度,而且容易导致用户体验较差、业务访问效率降低,为了解决这一问题,现有技术大多采用不同系统之间相互传递用户信息的方式,以实现免登录认证鉴权,这一方式虽然可以免去客户重复鉴权,但是数据安全方面则存在较大隐患,在传递用户信息的过程中,有可能被恶意程序信息截取,导致用户信息被泄露。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于oauth2协议增强的授权系统及其方法,以简化跨业务交互过程中用户操作,同时保证数据安全。

本发明的目的可以通过以下技术方案来实现:一种基于oauth2协议增强的授权系统,包括客户端和授权平台,所述客户端单向连接至多个不同的业务系统,以从客户端发送请求访问信息给相应的业务系统,所述客户端和多个业务系统分别与授权平台双向连接,所述授权平台用于推送授权确认页面给客户端以及返回授权码给相应的业务系统,所述客户端用于执行用户登录操作,以及发送授权确认信息给授权平台,所述业务系统用于发送请求授权信息给授权平台,以及根据授权码从授权平台获取令牌、根据令牌从授权平台获取用户信息。

进一步地,所述授权平台包括与授权模块分别连接的认证模块、资源模块和安全模块,所述授权模块与客户端连接,所述授权模块用于提供授权过程中的服务,所述认证模块用于提供授权前的用户鉴权服务,所述资源模块用于提供授权后的资源获取服务,所述安全模块用于提供与业务系统交互过程中的安全服务。

进一步地,所述多个业务系统通过各自的交互接口与授权平台双向连接,所述交互接口携带有唯一流水号和时间戳。

一种基于oauth2协议增强的授权方法,包括以下步骤:

S1、客户端发送不同请求访问信息给对应的业务系统;

S2、根据客户端发送的请求访问信息,不同业务系统分别发送相应的请求授权信息给授权平台;

S3、授权平台依次对用户进行登录状态认证和授权确认,以生成授权码,并将该授权码回调至对应的业务系统;

S4、根据授权码,不同业务系统分别从授权平台获取访问令牌;

S5、根据访问令牌,不同业务系统分别从授权平台获取当前登录用户的用户信息,即完成跨业务交互的授权过程。

进一步地,所述步骤S2中业务系统接收来自客户端的请求访问信息后,若该请求需对用户进行识别,则业务系统发送请求授权信息给授权平台。

进一步地,所述步骤S3具体包括以下步骤:

S31、授权平台接收来自业务系统的请求授权信息,并对用户进行登录认证,认证通过后推送授权确认页面给客户端;

S32、用户在客户端选择授权确认后,客户端将授权确认信息发送给授权平台;

S33、授权平台接收到授权确认信息后,回调给对应的业务系统并返回授权码。

进一步地,所述步骤S31的具体过程为:授权平台接收来自业务系统的请求授权信息,对当前用户登录状态进行识别,若当前用户登录状态为未登录,则授权平台推送用户登录页面给客户端,用户在客户端执行登录操作后,授权平台将登录状态保存在在后端缓存中以及用户的cookie中,之后推送授权确认页面给客户端;

若当前用户登录状态为已登录,则授权平台直接推送授权确认页面给客户端。

进一步地,所述步骤S33的具体过程为:授权平台对接收的授权确认信息进行校验,检验通过后生成授权码,之后将生成的授权码回调给对应的业务系统。

进一步地,所述步骤S2、步骤S4和步骤S5的数据信息交互过程中,业务系统为请求方,授权平台为接收方;

所述步骤S3的数据信息交互过程中,业务系统为接收方,授权平台为请求方;

所述请求方与接收方之间采用授权码模式进行数据信息交互。

进一步地,所述请求方与接收方之间数据信息交互的具体过程为:

请求方依次请求敏感数据加密、请求报文数据签名,之后将请求信息携带唯一流水号、时间戳以及自定义业务参数发送给接收方;

接收方依次请求报文数据验签、请求报文重放校验、请求敏感数据解密、响应敏感数据加密、响应报文数据验签,之后将响应信息携带自定义业务参数返回给请求方;

请求方依次响应报文数据验签、响应敏感数据解密,完成数据信息交互过程。

与现有技术相比,本发明具有以下优点:

一、本发明将客户端与多个不同业务系统连接,并将客户端、业务系统分别与授权平台双向连接,当用户在客户端请求访问多个业务系统进行跨系统交互时,利用授权平台接收来自不同业务系统的请求授权信息,并对用户进行登录认证,之后由授权平台直接将授权码回调给对应的业务系统,使得不同的业务系统能够分别从授权平台获取用户信息,由此在用户跨系统访问场景下,不需要用户进行重复登录操作,大大简化了系统交互复杂度,从而提升用户体验以及业务访问效率,此外,不同业务系统之间也不需要相互传输用户信息,避免发生恶意程序信息截取的问题、避免历史访问请求被重放,进一步保证数据安全。

二、本发明将多个业务系统通过各自的交互接口与授权平台双向连接,并使交互接口携带有唯一流水号和时间戳,既能够实现防重放的目的,同时保证后续数据信息交互的可追溯性;此外,本发明在业务系统与授权平台进行数据信息交互时,其中的请求方能够通过交互接口上送自定义业务参数,由此避免前端重定向回调导致业务参数丢失。

附图说明

图1为本发明的系统数据交互示意图;

图2为授权平台的结构示意图;

图3为本发明的方法流程示意图;

图4为本发明中请求方与接收方之间数据信息交互的过程示意图;

图中标记说明:1、客户端,2、业务系统,3、授权平台,301、授权模块,302、认证模块,303、资源模块,304、安全模块。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

实施例

本发明的目的在于实现一种安全高效的跨业务交互授权,通过多次调研以及技术选型比较,最终决定采用基于oauth2.0协议的开放授权模式来解决这些问题,但原有的基础能力可能无法满足要求,因此需要基于oauth2协议进行增强。

设计原则以oauth2.0协议为标准框架,并主要以解决跨平台跳转交互过程中,客户重复鉴权或传递客户参数而导致的客户体验及数据安全问题。简单来说,平台可实现根据客户的意愿将自身的个性化信息授权给不同的业务系统来使用。

如图1所示,一种基于oauth2协议增强的授权系统,包括客户端1和授权平台3,客户端1单向连接至多个不同的业务系统2(图1中仅为单个业务系统的连接示意),以从客户端1发送请求访问信息给相应的业务系统2,客户端1和多个业务系统2分别与授权平台3双向连接,授权平台3用于推送授权确认页面给客户端1以及返回授权码给相应的业务系统2,客户端1用于执行用户登录操作,以及发送授权确认信息给授权平台3,业务系统2用于发送请求授权信息给授权平台3,以及根据授权码从授权平台3获取令牌、根据令牌从授权平台3获取用户信息。

如图2所示,授权平台3包括与授权模块301分别连接的认证模块302、资源模块303和安全模块304,授权模块301与客户端1连接,授权模块301用于提供授权过程中的服务,主要包括登录态控制、授权确认、取消授权、令牌发放、资源控制、以及与其他服务模块的集成联动等;

认证模块302用于提供授权前的用户鉴权服务,主要包括用户登录、注册、密码功能等;

资源模块303用于提供授权后的资源获取服务,主要包括解决与外系统资源信息获取的访问路由和封装等;

安全模块304用于提供与业务系统交互过程中的安全服务,主要包括报文防篡改、数据加密等。

本发明中,多个业务系统2通过各自的交互接口与授权平台3双向连接,且每个交互接口携带有唯一流水号和时间戳,以在实现防重放的同时增加交互追溯性。

将上述系统应用于实际,其授权方法过程如图3所示,包括以下步骤:

S1、客户端发送不同请求访问信息给对应的业务系统;

S2、根据客户端发送的请求访问信息,不同业务系统分别发送相应的请求授权信息给授权平台,具体的,业务系统接收来自客户端的请求访问信息后,若该请求需对用户进行识别,则业务系统发送请求授权信息给授权平台,否则无需发送请求授权信息给授权平台;

S3、授权平台依次对用户进行登录状态认证和授权确认,以生成授权码,并将该授权码回调至对应的业务系统,具体的:

S31、授权平台接收来自业务系统的请求授权信息,并对用户进行登录认证,认证通过后推送授权确认页面给客户端,当授权平台接收来自业务系统的请求授权信息后,首先对当前用户登录状态进行识别,若当前用户登录状态为未登录,则授权平台推送用户登录页面给客户端,用户在客户端执行登录操作后,授权平台将登录状态保存在在后端缓存中以及用户的cookie中,之后推送授权确认页面给客户端;

若当前用户登录状态为已登录,则授权平台直接推送授权确认页面给客户端;

S32、用户在客户端选择授权确认后,客户端将授权确认信息发送给授权平台;

S33、授权平台接收到授权确认信息后,回调给对应的业务系统并返回授权码,授权平台首先对接收的授权确认信息进行校验,检验通过后再生成授权码,之后将生成的授权码回调给对应的业务系统;

S4、根据授权码,不同业务系统分别从授权平台获取访问令牌;

S5、根据访问令牌,不同业务系统分别从授权平台获取当前登录用户的用户信息,即完成跨业务交互的授权过程。

上述方法中,在步骤S2、步骤S4和步骤S5的数据信息交互过程中,业务系统为请求方,授权平台为接收方;

在步骤S3的数据信息交互过程中,业务系统为接收方,授权平台为请求方;

请求方与接收方之间采用授权码模式进行数据信息交互。

如图4所示,请求方与接收方之间数据信息交互的具体过程为:

请求方依次请求敏感数据加密、请求报文数据签名,之后将请求信息携带唯一流水号、时间戳以及自定义业务参数发送给接收方;

接收方依次请求报文数据验签、请求报文重放校验、请求敏感数据解密、响应敏感数据加密、响应报文数据验签,之后将响应信息携带自定义业务参数返回给请求方;

请求方依次响应报文数据验签、响应敏感数据解密,完成数据信息交互过程。

即有:所有交互接口必须进行签名和验签,若接口中若涉及客户敏感信息必须进行加密;

所有交互接口必须携带唯一流水号和时间戳,实现防重放的同时增加交互追溯性;

仅支持授权码模式,废除授权作用域,接入系统可根据实际需要上送资源组参数;

授权请求接口可以上送自定义业务参数,以免前端重定向回调导致业务参数丢失;

由此能够进一步提升跨业务访问时的数据安全性。

在具体实施过程中,本发明可采用SM2国密的方式对报文所有参数进行签名/验签,采用SM4国密的方式对报文中存在的敏感信息进行加密/解密,而在防重放方面基于nonce+timestamp的方式进行防护;此外,在授权之前,若业务系统首次请求授权系统获取用户信息,授权系统识别当前为未登录状态,则需要用户进行登录,登录完成后则将登录状态保存在后端缓存中以及用户的cookie中,并直接回调业务系统返回授权码,后续将通过授权码换取令牌,再通过令牌获取用户信息;若在登录态失效前再次访问授权系统则会直接获取cookie和后端缓存中的登录态信息,然后回调业务系统返回授权码,后续将通过授权码换取令牌,再通过令牌获取用户信息。

综上所述,本发明相比于现有技术,在用户进行跨系统访问时,一方面避免用户重复登录操作,由此简化系统交互复杂度、提升客户体验和业务访问效率;另一方面也不需要在不同业务系统之间进行用户信息的相互传递,由此避免被恶意程序信息截取,也避免历史访问请求可被重放。

相关技术
  • 一种基于oauth2协议增强的授权系统及其方法
  • 一种基于tr069协议的自动授权CPE方法及系统
技术分类

06120113031570