一种网络访问控制方法、装置、设备及介质与流程

文档序号:19791906发布日期:2020-01-24 14:24阅读:168来源:国知局
一种网络访问控制方法、装置、设备及介质与流程

本申请涉及网络访问技术领域,具体涉及一种网络访问控制方法、装置、设备以及介质。



背景技术:

oauth(openauthorization)协议为用户资源的授权提供了一个安全的、开发简易的标准,与以往的授权方式不同,基于oauth协议的授权不会使第三方应用触及到用户的账号信息(如用户名与密码),即第三方应用无需使用用户的用户名和密码就可以申请获得该用户资源的授权,因此oauth是安全的。

简而言之,oauth是一种开放的协议,为桌面、手机或web应用提供了一种简单的、标准的方式去访问需要用户授权的api服务。正是由于oauth简单且安全,所以目前很多服务提供方都基于oauth协议提供认证服务。

但是由于oauth协议规定服务端地址只能有一个,因此企业的网络平台只能使用一个域名进行访问,这就导致用户无法在不同的网络环境下访问企业的网络平台,更无法基于在不同的网络环境下基于不同的权限访问企业的网络平台;例如,对于一些涉密单位来说,其无法实现针对涉密信息在不同网络环境下通过不同权限控制,即无法满足对涉密信息进行不同网络环境区别访问的要求。



技术实现要素:

本申请实施例提供了一种网络访问控制方法、装置、设备以及介质,能够实现对于涉密信息进行内外网区别访问。

有鉴于此,本申请第一方面提供了一种网络访问控制方法,应用于授权服务器中,所述方法包括:

接收浏览器发送的授权请求,所述授权请求中包括用户输入的用户名、密码、指定域名以及第三方应用的回调地址,所述指定域名为用户指定的第三方应用的服务器中内置的多个网络域名中一个网络域名,所述多个网络域名对应同一服务端地址,且所述多个网络域名中不同的网络域名对应不同的访问权限;

根据授权服务器本地维护的合法用户的身份信息以及合法域名,对所述授权请求中携带的所述用户名和所述密码以及所述指定域名的合法性进行认证,所述授权服务器本地维护的合法域名包括所述第三方应用的服务器内置的多个网络域名;

在认证通过后,向所述浏览器发送第一响应消息,所述第一响应消息包括授权码、所述指定域名、所述回调地址以及认证会话;以使所述浏览器根据所述回调地址将所述授权码和所述指定域名发送至所述第三方应用的服务器;

接收所述第三方应用的服务器根据所述浏览器反馈的所述第一响应消息而发送的令牌获取请求,所述令牌获取请求中包括所述指定域名和所述授权码;

响应于所述令牌获取请求向所述第三方应用的服务器发送第二响应消息,所述第二响应消息中包括访问令牌和所述指定域名对应的访问权限,所述访问令牌和所述访问权限用于控制所述第三应用的服务器访问用户资源。

可选的,所述根据授权服务器本地维护的合法用户的身份信息以及合法域名,对所述授权请求中携带的所述用户名和所述密码以及所述指定域名的合法性进行认证,包括:

调用所述授权服务器本地维护的用户注册信息列表,所述用户注册用户列表中记录有已注册的合法用户的用户名和密码的对应关系;

确定所述授权请求中携带的所述用户名和所述密码的对应关系是否存在于用户注册信息列表中;

确定所述授权请求中所述指定域名是否与所述授权服务器本地内置的内网域名和外网域名中任一项一致;

当确定所述用户名和所述密码之间的对应关系存在于所述用户注册信息列表,且确定所述指定域名与所述授权服务器中内置的多种网络域名中任一项一致时,则确定认证通过。

可选的,所述方法还包括:

为所述访问令牌设置过期时间,并在所述第二响应消息中携带所述访问令牌的过期时间,所述访问令牌的过期时间用于校验所述访问令牌在使用过程中的有效性。

可选的,所述方法还包括:

为所述访问令牌设置对应的更新令牌,并在所述第二响应消息中还携带所述更新令牌,所述更新令牌用于在所述访问令牌过期时申请新的访问令牌。

可选的,所述方法还包括:

当被第三应用通过所述浏览器导向所述授权服务器时,通过所述浏览器显示授权登录页面,所述授权登录页面上显示有用户名输入控件和密码输入控件以及确认授权控件;

则所述授权请求是在所述浏览器响应于用户在所述授权登录页面上的输入以及确定授权操作而发起。

本申请第二方面提供了一种网络访问控制方法,应用于第三方应用的服务器中,所述方法包括:

根据客户端的重定向请求将浏览器重定向至授权服务器,使得所述浏览器向所述授权服务器发送授权请求,所述授权请求中包括用户输入的用户名和密码以及指定域名和重定向时指定的回调地址,所述指定域名是用户指定的所述第三方应用的服务器中内置的多个网络域名中任一项,不同网络域名对应不同的访问权限;

根据所述授权服务器响应所述授权请求而颁发的授权码和所述指定域名向所述授权服务器发送令牌获取请求,所述令牌获取请求中包括所述指定域名和所述授权码;

获取所述授权服务器响应所述令牌获取请求发送的第二响应消息,所述第二响应消息中包括访问令牌和所述指定域名对应的访问权限以及认证会话;

保存所述访问令牌和所述访问权限以及所述认证会话,基于所述访问令牌和所述访问权限以及所述认证会话通过所述浏览器提供业务服务。

可选的,所述根据客户端的重定向请求将浏览器重定向至授权服务器,包括:

判断所述浏览器中用户输入的指定域名是否与所述第三方应用的服务器中内置的网络域名中任一项一致;

当所述浏览器中用户输入的指定域名与所述第三方应用的服务器中内置的多个网络域名中任一项一致时,将所述浏览器重定向至所述授权服务器。

可选的,所述第二响应消息中还携带所述访问令牌的过期时间和更新令牌;则所述方法还包括

在向资源服务器请求获取用户资源之前,判断所述访问令牌是否达到过期时间,当所述访问令牌达到过期时间时,根据所述更新令牌向所述授权服务器申请新的访问令牌;

根据所述新的访问令牌从资源服务器获取用户资源。

本申请第三方面提供了一种网络访问控制装置,应用于授权服务器中,所述装置包括:

第一接收模块,用于接收浏览器发送的授权请求,所述授权请求中包括用户输入的用户名、密码、指定域名以及第三方应用的回调地址,所述指定域名为用户指定的第三方应用的服务器中内置的多个网络域名中一个网络域名,所述多个网络域名对应同一服务端地址,且所述多个网络域名中不同的网络域名对应不同的访问权限;

认证模块,用于根据授权服务器本地维护的合法用户的身份信息以及合法域名,对所述授权请求中携带的所述用户名和所述密码以及所述指定域名的合法性进行认证,所述授权服务器本地维护的合法域名包括所述第三方应用的服务器内置的多个网络域名;

第一响应模块,用于在认证通过后,向所述浏览器发送第一响应消息,所述第一响应消息包括授权码、所述指定域名、所述回调地址以及认证会话;以使所述浏览器根据所述回调地址将所述授权码和所述指定域名发送至所述第三方应用的服务器;

第二接收模块,用于接收所述第三方应用的服务器根据所述浏览器反馈的所述第一响应消息而发送的令牌获取请求,所述令牌获取请求中包括所述指定域名和所述授权码;

第二响应模块,用于响应于所述令牌获取请求向所述第三方应用的服务器发送第二响应消息,所述第二响应消息中包括访问令牌和所述指定域名对应的访问权限,所述访问令牌和所述访问权限用于控制所述第三应用的服务器访问用户资源。

本申请第四方面提供了一种网络访问控制装置,应用于第三方应用的服务器中,所述装置包括:

重定向模块,用于根据客户端的重定向请求将浏览器重定向至授权服务器,使得所述浏览器向所述授权服务器发送授权请求,所述授权请求中包括用户输入的用户名和密码以及指定域名和重定向时指定的回调地址,所述指定域名是用户指定的所述第三方应用的服务器中内置的多个网络域名中任一项;

发送模块,用于根据所述授权服务器响应所述授权请求而颁发的授权码和所述指定域名向所述授权服务器发送令牌获取请求,所述令牌获取请求中包括所述指定域名和所述授权码;

接收模块,用于接收所述授权服务器响应所述令牌获取请求发送的第二响应消息,所述第二响应消息中包括访问令牌和所述指定域名对应的访问权限以及认证会话;

业务处理模块,用于保存所述访问令牌和所述访问权限以及所述认证会话,基于所述访问令牌和所述访问权限以及所述认证会话通过所述浏览器提供业务服务。

本申请第五方面提供一种设备,所述设备包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令,执行如上述第一方面或第二方面所述的网络访问控制方法的步骤。

本申请第六方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第一方面或第二方面所述的网络访问控制方法。

本申请第七方面提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面或第二方面所述的网络访问控制方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请实施例提供了一种网络访问控制方法,该方法对基于oauth协议实现的网络访问方法进行了改进,在第三方应用的服务器侧以及服务提供方的授权服务器侧署了多个网络域名,并且在授权服务侧针对不同的网络域名分别设置了对应的访问权限;在认证授权的过程中,第三方应用的服务器与授权服务器可以在其与对方交互的数据中携带指定域名,该指定域名具体可以为上述多个网络域名中的任意一项,基于oauth协议完成对于第三方应用的访问授权,并且在授权的过程中相应地基于指定域名分配对应的访问权限,由此实现对不同的网络基于对应的权限进行访问控制。

附图说明

图1为本申请实施例提供的一种网络访问控制方法的数据交互信令图;

图2为本申请实施例提供的授权服务器侧的网络访问控制方法的流程示意图;

图3为本申请实施例提供的第三方应用的服务器侧的网络访问控制方法的流程示意图;

图4为本申请实施例提供的网络访问控制方法所适用的资源部署示意图;

图5为本申请实施例提供的另一种网络访问控制方法的数据交互信令图;

图6为本申请实施例提供的授权服务器侧的网络访问控制装置的结构示意图;

图7为本申请实施例提供的第三方应用的服务器侧的网络访问控制装置的结构示意图;

图8为本申请实施例提供的服务器的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

现有技术中,由于oauth协议规定的服务端地址只能有一个,因此导致第三方应用只能通过一个域名访问服务提供方提供的服务。然而,在实际应用中,一些涉密企业需要针对不同网络环境提供不同的内容服务,例如,企业员工有时需要通过内网进行相关服务的访问,有时又需要通过外网进行相关服务的访问,而外网访问可能会存在信息泄密的问题,因此企业平台就需要针对内网和外网分别设置不同的访问权限,然而使用现有技术中的oauth协议无法满足这一需求。针对上述技术问题,本申请实施例提供了一种网络访问控制方法,该方法对oauth协议进行了相应地改进,在第三方应用的服务器侧以及服务提供方的授权服务器侧分别部署了多个网络域名,并且在授权服务器侧针对这多个网络域名分别设置了对应的访问权限。在基于oauth协议对第三方应用进行认证授权的过程中,第三方应用的服务器在其向授权服务器发送的授权请求以及令牌获取请求中携带用户输入的指定域名,该指定域名具体可以为第三方应用的服务器中内置的多个网络域名中的任意一个;相对应地,授权服务器将根据授权请求中的指定域名对用户身份的合法性进行验证,以及根据令牌获取请求中的指定域名确定其对应的访问权限。如此,在完成对于第三方应用的访问授权的同时,实现对于不同网络的访问权限的分配,即控制不同网络可以分别基于各自对应的访问权限实现资源访问。

下面从授权服务器和第三方应用的服务器二者交互的角度出发,通过实施例对本申请实施例提供的网络访问控制方法进行介绍。为了便于理解,下述实施例以第三方应用的服务器中内置的多个网络域名包括内网域名和外网域名为例,对该网络访问控制方法进行介绍。

参见图1,图1为本申请实施例提供的网络访问控制方法的数据交互信令图。如图1所示,该方法包括以下步骤:

s101:第三方应用的服务器根据客户端(即第三方应用)的重定向请求将浏览器重定向至授权服务器,使得浏览器向授权服务器发送授权请求。

第三方应用的服务器响应于用户通过第三方应用客户端发起的重定向请求,相应地将浏览器重定向至授权服务器,以使浏览器向授权服务器发送授权请求。

需要说明的是,浏览器向授权服务器发送的授权请求中包括有用户输入的用户名、密码、指定域名以及重定向时指定的回调地址。其中,用户输入的用户名和密码为用户登录服务提供方平台时所需输入的用户名和密码,该用户名和密码可以在用户注册服务提供方平台时由服务提供方平台自动分配,也可以由用户通过服务提供方平台的个人信息管理系统自主进行设置。指定域名为第三方应用的服务器中内置的内网域名或外网域名,第三方应用的服务器通过浏览器向授权服务器发起授权请求时,用户需要通过浏览器输入内网域名或外网域名,以使授权服务器获知授权请求的来源。回调地址通常指向第三方应用的服务器,授权服务器根据该回调地址可以相应地将对应于该授权请求的响应信息反馈至第三方应用的服务器。

在实际应用中,当第三方应用的服务器根据第三方应用客户端的重定向请求,将浏览器重定向至授权服务器时,第三方应用客户端将通过该浏览器显示授权登录页面,该授权登录页面上显示有用户名输入控件、密码输入控件以及确认授权控件;相应地,授权请求是在浏览器响应于用户在该授权登录页面上触发的输入以及确认授权操作而发起的。

具体的,当第三方应用的服务器将浏览器重定向至授权服务器时,浏览器将相应地显示授权登录页面,该授权登录页面上包括用户名输入控件、密码输入控件以及确认授权控件,用户可以通过该用户名输入控件输入用户名,通过密码输入控件输入密码,以及在完成用户名和密码的输入后通过触控确认授权控件执行确认授权操作;第三方应用的服务器监测到用户通过浏览器显示的授权登录页面完成上述用户名输入操作、密码输入操作以及确认授权操作后,获取用户输入的指定域名以及指定的回调地址,将其结合用户输入的用户名和密码生成授权请求,并将该授权请求发送至授权服务器。

可选的,为了减轻授权服务器的处理压力,第三方应用的服务器可以在向授权服务器发送授权请求之前,根据自身存储的内网域名和外网域名,对用户输入的指定域名进行初步验证。即第三方应用的服务器可以判断浏览器中用户输入的指定域名是否与自身内置的内网域名或外网域名一致;当浏览器中用户输入的指定域名与第三方应用的服务器内置的内网域名或外网域名一致时,将浏览器重定向至授权服务器。

具体的,第三方应用的服务器获取到用户输入的指定域名后,判断该指定域名是否与自身内置的内网域名或外网域名一致,若该指定域名与内网域名一致,或者该指定域名与外网域名一致,则将浏览器重定向至授权服务器,向授权服务器发送授权请求;反之,若该指定域名既不与内网域名一致,又不与外网域名一致,则放弃向授权服务器发送授权请求。

s102:授权服务器接收浏览器发送的授权请求。

s103:授权服务器根据其本地维护的合法用户的身份信息以及合法域名,对授权请求中携带的用户名、密码以及指定域名的合法性进行认证。

授权服务器接收到第三方应用的服务器通过浏览器发送的授权请求后,根据该授权请求中的用户名、密码以及指定域名进行用户身份验证;具体的,授权服务器可以根据自身本地维护的合法用户的用户身份信息,对授权请求中携带的用户名和密码进行验证,根据自身本地维护的合法域名,对授权请求中携带的指定域名的合法性进行验证。

具体实现时,授权服务器可以调用其本地维护的用户注册信息列表,该用户注册信息列表中记录有已注册的合法用户的用户名和密码的对应关系;确定其接收的授权请求中携带的用户名和密码的对应关系是否存在于用户注册信息列表中,以及确定授权请求中携带的指定域名是否为授权服务器本地内置的内网域名和外网域名中的任一项一致;当确定授权请求中携带的用户名与密码之间的对应关系存在于用户注册信息列表中,且确定授权请求中携带的指定域名与授权服务器中内置的内网域名和外网域名中任一项一致时,确定用户身份认证通过。

更详细地,授权服务器接收到授权请求后,调用自身本地维护的用户注册信息列表,查找该用户注册信息列表中是否存在授权请求中携带的用户名,若在用户注册信息列表中查找到该用户名,则进一步判断用户注册信息列表中记录的与该用户名对应的密码与授权请求中携带的密码是否一致,若一致,则确定对于授权请求中的用户名和密码验证通过;反之,若在用户注册信息列表中查找不到授权请求中携带的用户名,或者在用户注册信息列表中查找到的用户名对应的密码与授权请求中的密码不一致,则确定对于授权请求中的用户名和密码验证未通过。

此外,授权服务器还需要对授权请求中的指定域名进行验证,即验证该指定域名是否与自身内置的内网域名或外网域名一致,若授权请求中的指定域名与自身内置的内网域名或外网域名一致,则确定对于授权请求中的指定域名验证通过;反之,若授权请求中的指定域名与授权服务器内置的内网域名和外网域名均不一致,则确定对于授权请求中的指定域名验证未通过。

在对授权请求中的用户名、密码以及指定域名验证均通过的情况下,授权服务器确定对于授权请求的认证通过,可以针对该授权请求开展后续操作;反之,在对授权请求中的用户名、密码以及指定域名中的任意一项验证未通过的情况下,授权服务器确定对于授权请求的认证没有通过,无需针对该授权请求继续开展后续操作。

应理解,在实际应用中,授权服务器可以先验证用户名和密码,后验证指定域名,也可以先验证指定域名,后验证用户名和密码,在此不对授权服务器的验证顺序做任何限定。

s104:认证通过后,授权服务器向浏览器发送第一响应消息,以使浏览器将该第一响应消息反馈至第三方应用的服务器。

授权服务器对其接收的授权请求认证通过后,针对该授权请求生成第一响应消息,并向浏览器发送该第一响应消息,以使浏览器相应地将该第一响应消息反馈至第三方应用的服务器。

需要说明的是,授权服务器生成的第一响应消息中包括授权码、指定域名、回调地址以及认证会话。其中,授权码是授权服务器确定其接收的授权请求认证通过后生成的,即授权服务器确定发起授权请求的用户为合法用户后,将授权码作为授权证据发送给第三方应用的服务器。第一响应消息中的指定域名和回调地址分别与授权请求中的指定域名和回调地址相同。认证会话为oauth协议中的基本机制,其能够证明发起授权请求的用户已登录服务提供方平台。

s105:第三方应用的服务器根据授权码和指定域名生成令牌获取请求。

第三方应用的服务器接收到授权服务器通过浏览器发送的第一响应消息后,根据其中授权服务器响应于授权请求颁发的授权码和指定域名,生成令牌获取请求;该令牌获取请求用于请求授权服务器提供允许第三方应用访问服务提供方平台存储的资源的令牌,该令牌获取请求中相应地包括该授权码和指定域名。

s106:授权服务器接收第三方应用的服务器发送的令牌获取请求。

s107:授权服务器响应于令牌获取请求,生成第二响应消息。

授权服务器接收到第三方应用的服务器发送的令牌获取请求后,相应地针对该令牌获取请求生成第二响应消息;该第二响应消息中包括访问令牌、指定域名对应的访问权限以及认证会话,其中,访问令牌和访问权限结合起来用于控制第三方应用的服务器访问用户资源。

具体的,授权服务器中内置有内网域名和内网域名对应的访问权限以及外网域名和外网域名对应的访问权限,授权服务器接收到令牌获取请求后,相应地确定其中携带的指定域名为内网域名还是外网域名,当确定该指定域名为内网域名时,相应地将内网域名对应的访问权限作为指定域名对应的访问权限,当确定该指定域名为外网域名时,相应地将外网域名对应的访问权限作为指定域名对应的访问权限。

此外,授权服务器还需要基于oauth协议,根据令牌获取请求中的授权码生成对应的访问令牌,第三方应用的服务器利用该访问令牌可以请求服务提供方平台为其提供相应的资源;并且,授权服务器还需要基于oauth协议相应地生成认证会话,利用该认证会话证明用户当前已登录。

可选的,在一些应用场景下,服务提供方还可以为认证授权通过的第三方应用相应地设置访问时间,即服务提供方仅会在该访问时间内为访问其资源的第三方应用相应地提供资源,由此确保资源访问的安全性。具体的,授权服务器会为其生成的访问令牌设置过期时间,并在第二响应消息中携带该访问令牌的过期时间,该访问令牌的过期时间用于校验该访问令牌在使用过程中的有效性。

更具体的,授权服务器响应于令牌获取请求生成访问令牌时,还可以相应地为该访问令牌设置过期时间,第三方应用的服务器可以在该过期时间之前使用该访问令牌请求服务提供方为其提供相应的资源。授权服务器具体为访问令牌设置过期时间时,可以按照预先设定的过期时间设置规则进行设置,例如,授权服务器可以针对每个访问令牌设置其对应的过期时间为获得该访问令牌后的一周,又例如,授权服务器可以针对其为不同的第三方应用下发的访问令牌,分别设置不同的过期时间,等等,在此不对设置过期时间所遵照的规则做任何限定。

可选的,在一些场景下,授权服务器可以通过下发更新令牌的方式,控制第三方应用的服务器在其使用的访问令牌过期时自动申请新的访问令牌,从而实现访问令牌的自动更新。具体的,授权服务器可以为其生成的访问令牌设置对应的更新令牌,并在第二响应消息中携带该更新令牌,该更新令牌用于在该访问令牌过期时申请新的访问令牌。

更具体的,授权服务器响应于令牌获取请求生成访问令牌时,还可以相应地针对该访问令牌生成对应的更新令牌;在确定访问令牌到期时,第三方应用的服务器可以基于该更新令牌,自动触发向授权服务器申请新的访问令牌的操作流程。

s108:授权服务器向第三方应用的服务器发送第二响应消息。

s109:第三方应用的服务器接收到第二响应消息后,保存访问令牌、访问权限以及认证会话,基于访问令牌、访问权限和认证会话通过浏览器提供业务服务。

第三方应用的服务器接收到授权服务器反馈的第二响应消息后,保存该第二响应消息中携带的访问令牌、访问权限以及认证会话;用户后续调用第三方应用访问服务提供方存储的用户资源时,第三方应用的服务器可以相应地基于其保存的访问令牌、访问权限和认证会话,通过浏览器向服务提供方的资源服务器申请访问资源,如此获得相应的业务服务。

第三方应用的服务器具体访问服务提供方存储的用户资源时,可以根据访问令牌、访问权限、认证会话以及所要访问的资源标识,生成用户资源访问请求,并将该用户资源访问请求发送至服务提供方的资源服务器;资源服务器接收到该用户资源访问请求后,先对其中的访问令牌进行校验,校验通过后,根据其中携带的资源标识以及访问权限,确定第三方应用的服务器是否具有访问该资源标识对应的用户资源的权限,若具有,则相应地向第三方应用的服务器返回其请求访问的用户资源。

可选的,在第二响应消息中携带有访问令牌的过期时间和对应的更新令牌的情况下,第三方应用的服务器在向资源服务器请求获取用户资源之前,可以先判断该访问令牌是否达到过期时间,当该访问令牌达到过期时间时,根据该更新令牌从授权服务器处申请新的访问令牌;进而,根据新的访问令牌从资源服务器处获取用户资源。

具体的,第三方应用的服务器向资源服务器发送用户资源访问请求之前,可以先对访问令牌的有效性进行校验,即判断该访问令牌的使用时间是否达到授权服务器为其分配的过期时间,若已达到,则说明该访问令牌已过期,无法继续利用该访问令牌向资源服务器申请访问用户资源;此时,第三方应用的服务器需要基于该访问令牌对应的更新令牌,向授权服务器发起用于获取新的访问令牌的令牌获取请求,授权服务器根据该更新令牌相应地为第三方应用的服务器分配新的访问令牌,如此,第三方应用的服务器可以利用该新的访问令牌继续向资源服务器申请访问用户资源。

上述网络访问控制方法对基于oauth协议实现的网络访问方法进行了改进,在第三方应用的服务器侧以及服务提供方的授权服务器侧署了内网域名和外网域名,并且在授权服务侧针对内网域名和外网域名分别设置了对应的访问权限;在认证授权的过程中,第三方应用的服务器与授权服务器可以在其与对方交互的数据中携带指定域名,该指定域名具体可以为用户指定的内网域名和外网域名中的任意一项,基于oauth协议完成对于第三方应用的访问授权,并且在授权的过程中相应地基于指定域名分配对应的访问权限,由此实现对内外网基于对应的权限进行访问控制。

下面分别对授权服务器和第三方应用的服务器单侧执行的网络访问控制方法进行介绍。

参见图2,图2为本申请实施例提供的授权服务器侧的网络访问控制方法的流程示意图。如图2所示,该网络访问控制方法包括以下步骤:

s201:接收浏览器发送的授权请求,该授权请求中包括用户输入的用户名、密码、指定域名以及第三方应用的回调地址,该指定域名为用户指定的第三方应用的服务器中内置的多个网络域名中的一个网络域名,这多个网络域名对应同一服务端地址,且这多个网络域名中不同的网络域名对应不同的访问权限。

s202:根据授权服务器本地维护的合法用户的身份信息以及合法域名,对授权请求中携带的用户名、密码以及指定域名的合法性进行认证,授权服务器本地维护的合法域名包括第三方应用的服务器内置的多个网络域名。

具体实现时,授权服务器可以调用自身本地维护的用户注册信息列表,该用户注册用户列表中记录有已注册的合法用户的用户名和密码的对应关系;确定授权请求中携带的用户名和密码的对应关系是否存在于用户注册信息列表中;确定授权请求中指定域名是否与授权服务器本地内置的多个网络域名中的任一项一致;当确定用户名和密码之间的对应关系存在于用户注册信息列表,且确定指定域名与授权服务器中内置的多个网络域名中的任一项一致时,则确定认证通过。

s203:在认证通过后,向浏览器发送第一响应消息,该第一响应消息包括授权码、指定域名、回调地址以及认证会话;以使所述浏览器根据回调地址将授权码和指定域名发送至第三方应用的服务器。

s204:接收第三方应用的服务器根据浏览器反馈的第一响应消息而发送的令牌获取请求,该令牌获取请求中包括指定域名和授权码。

s205:响应于令牌获取请求向第三方应用的服务器发送第二响应消息,该第二响应消息中包括访问令牌和指定域名对应的访问权限,该访问令牌和访问权限用于控制第三方应用的服务器访问用户资源。

可选的,授权服务器可以为访问令牌设置过期时间,并在第二响应消息中携带该访问令牌的过期时间,该访问令牌的过期时间用于校验该访问令牌在使用过程中的有效性。

需要说明的是,图2所示实施例中各步骤的实现方式在图1所示实施例中均已描述,详细参见图1所示实施例中相关步骤的介绍内容。具体的,可以参照图1所示实施例中s103和s104对应的介绍内容,相应地确定s202和s203的具体实现过程,参照图1所示实施例中s107对应的介绍内容,确定s205的具体实现过程;此处不再对各步骤的具体实现过程进行赘述。

参见图3,图3为本申请实施例提供的第三方应用的服务器侧的网络访问控制方法的流程示意图。如图3所示,该网络访问控制方法包括以下步骤:

s301:根据客户端的重定向请求将浏览器重定向至授权服务器,使得该浏览器向该授权服务器发送授权请求;该授权请求中包括用户输入的用户名、密码、指定域名和重定向时指定的回调地址,该指定域名是用户指定的第三方应用的服务器中内置的多个网络域名中的任一项,不同网络域名对应不同的访问权限。

可选的,第三方应用的服务器可以先判断浏览器中用户输入的指定域名是否与第三方应用的服务器中内置的多个网络域名中的任一项一致;当浏览器中用户输入的指定域名与第三方应用的服务器中内置的多个网络域名中的任一项一致时,将浏览器重定向至授权服务器。

s302:根据授权服务器响应授权请求而颁发的授权码和指定域名向授权服务器发送令牌获取请求,该令牌获取请求中包括指定域名和授权码。

s303:获取授权服务器响应令牌获取请求发送的第二响应消息,该第二响应消息中包括访问令牌和指定域名对应的访问权限以及认证会话。

s304:保存访问令牌、访问权限以及认证会话,基于访问令牌、访问权限以及认证会话通过浏览器提供业务服务。

在第二响应消息中携带有访问令牌的过期时间和更新令牌的情况下,第三方应用的服务器在向资源服务器请求获取用户资源之前,判断访问令牌是否达到过期时间,当该访问令牌达到过期时间时,根据更新令牌向授权服务器申请新的访问令牌;进而,根据新的访问令牌从资源服务器获取用户资源。

需要说明的是,图3所示实施例中各步骤的实现方式在图1所示实施例中均已描述,详细参见图1所示实施例中相关步骤的介绍内容。具体的,可以参照图1所示实施例中s101对应的介绍内容,确定s301的具体实现过程,参照图1所示实施例中s105对应的介绍内容,确定s302的具体实现过程,参照图1所示实施例中s109对应的介绍内容,确定s304的具体实现过程;此处不再对各步骤的具体实现过程进行赘述。

为了便于进一步理解本申请实施例提供的网络访问控制方法,下面结合实际应用场景对该方法进行介绍。

参见图4,图4为本申请实施例提供的网络访问控制方法所适用的资源部署示意图。如图4所示,浏览器可以通过内网网关innergateway或外网网关outergateway对应用集群进行访问。该应用集群中包括授权应用集群和被集成应用集群。其中,授权应用集群包括授权应用对应的内网服务器innerwebserver、外网服务器outerwebserver、授权服务器oauthserver和内容服务器restserver;被集成应用集群包括多个第三方应用,每个第三方应用包括其对应的内网服务器innerwebserver(图4中的innerwebserver_1和innerwebserver_n)、外网服务器outerwebserver(图4中的outerwebserver_1和outerwebserver_n)和第三方应用的服务器clientrestserver(图4中的clientrestserver_1和clientrestserver_n)。

其中,innergateway只反向代理应用集群中inner相关webserver,不反向代理outer相关webserver,outergateway只反向代理应用集群中outer相关webserver,不反向代理inner相关webserver。对于其他的server,innergateway和outergateway均反向代理。各innerwebserver配置全局参数auth_uri=inner_uri,使得inner_uri可在web端浏览器获取。各outerwebserver配置全局参数auth_uri=outer_uri,使得outer_uri可在web端浏览器获取。

应理解,图4中授权服务器oauthserver用于执行上述图2所示的授权服务器侧的网络访问控制方法;图4中各第三方应用的服务器clientrestserver用于执行上述图3所示的第三方应用的服务器侧的网络访问控制方法。在图4所示的资源部署架构下,本申请实施例提供的网络访问控制方法的具体实现过程如图5所示,图5为本申请实施例提供的一种示例性的网络访问控制方法的数据交互信令图。

如图5所示,浏览器webbrowser通过网关gateway向第三方应用的服务器clientrestserver请求相关数据,并且请求地址中需要加入域名地址auth_uri,该auth_uri=inner_uri(内网域名)或者outer_uri(外网域名)。第三方应用的服务器相应地通过网关向浏览器返回登录信息,以通过浏览器显示授权登录页面,该授权登录页面上显示有用户名输入控件、密码输入控件和确认授权控件。

用户通过授权登录页面上显示的用户名输入控件、密码输入控件和确认授权控件,相应地完成用户名输入、密码输入以及确认授权的操作,并且确定指定域名auth_uri;进而,浏览器通过网关将用户输入的用户名、密码、指定域名auth_uri以及重定向至授权服务器时指定的回调地址callbackpath,发送至第三方应用的服务器。第三方应用的服务器基于其接收的用户名、密码、auth_uri和callbackpath生成授权请求,将该授权请求发送至服务提供方的授权服务器oauthsever。

授权服务器相应地对其接收的授权请求中的用户名、密码以及auth_uri的合法性进行认证,如果认证通过,则生成第一响应消息,并将该第一响应消息返回至浏览器,该第一响应消息中包括授权码code、认证会话oauthsession以及第三方应用的服务器发送过来的auth_uri和callbackpath。

浏览器保存oauthsession,并将code和auth_uri通过网关传输给第三方应用的服务器,以使第三方应用的服务器基于code和auth_uri生成令牌获取请求发送给授权服务器,请求从授权服务器处获取到访问令牌token。

授权服务器接收到令牌获取请求后,相应地对其中的code和auth_uri进行认证,认证成功后,向第三方应用的服务器反馈第二响应消息,该第二响应消息中包括token、auth_uri对应的访问权限authorized_info和oauthsession,第三方应用的服务器保存token和authorized_info,并将oauthsession通过网关反馈至浏览器,以使浏览器保存该oauthsession。第三方应用的服务器后续可以根据token和authorized_info,向服务提供方相应地请求业务数据。

针对上文描述的网络访问控制方法,本申请还提供了对应的网络访问控制装置,以使上述网络访问控制方法在实际中得以应用和实现。

参见图6,图6是与上文图2所示的授权服务器侧的网络访问控制方法对应的一种网络访问控制装置600的结构示意图,该网络访问控制装置600包括:

第一接收模块601,用于接收浏览器发送的授权请求,所述授权请求中包括用户输入的用户名、密码、指定域名以及第三方应用的回调地址,所述指定域名为用户指定的第三方应用的服务器中内置的多个网络域名中一个网络域名,所述多个网络域名对应同一服务端地址,且所述多个网络域名中不同的网络域名对应不同的访问权限;

认证模块602,用于根据授权服务器本地维护的合法用户的身份信息以及合法域名,对所述授权请求中携带的所述用户名和所述密码以及所述指定域名的合法性进行认证,所述授权服务器本地维护的合法域名包括所述第三方应用的服务器内置的多个网络域名;

第一响应模块603,用于在认证通过后,向所述浏览器发送第一响应消息,所述第一响应消息包括授权码、所述指定域名、所述回调地址以及认证会话;以使所述浏览器根据所述回调地址将所述授权码和所述指定域名发送至所述第三方应用的服务器;

第二接收模块604,用于接收所述第三方应用的服务器根据所述浏览器反馈的所述第一响应消息而发送的令牌获取请求,所述令牌获取请求中包括所述指定域名和所述授权码;

第二响应模块605,用于响应于所述令牌获取请求向所述第三方应用的服务器发送第二响应消息,所述第二响应消息中包括访问令牌和所述指定域名对应的访问权限,所述访问令牌和所述访问权限用于控制所述第三应用的服务器访问用户资源。

可选的,所述认证模块602具体用于:

调用所述授权服务器本地维护的用户注册信息列表,所述用户注册用户列表中记录有已注册的合法用户的用户名和密码的对应关系;

确定所述授权请求中携带的所述用户名和所述密码的对应关系是否存在于用户注册信息列表中;

确定所述授权请求中所述指定域名是否与所述授权服务器本地内置的多个网络域名中任一项一致;

当确定所述用户名和所述密码之间的对应关系存在于所述用户注册信息列表,且确定所述指定域名与所述授权服务器中内置的内网域名和外网域名中任一项一致时,则确定认证通过。

可选的,所述装置还包括:

第一设置模块,用于为所述访问令牌设置过期时间,并在所述第二响应消息中携带所述访问令牌的过期时间,所述访问令牌的过期时间用于校验所述访问令牌在使用过程中的有效性。

可选的,所述装置还包括:

第二设置模块,用于为所述访问令牌设置对应的更新令牌,并在所述第二响应消息中还携带所述更新令牌,所述更新令牌用于在所述访问令牌过期时申请新的访问令牌。

可选的,所述装置还包括:

登录模块,用于当被第三应用通过所述浏览器导向所述授权服务器时,通过所述浏览器显示授权登录页面,所述授权登录页面上显示有用户名输入控件和密码输入控件以及确认授权控件;

则所述授权请求是在所述浏览器响应于用户在所述授权登录页面上的输入以及确定授权操作而发起。

参见图7,图7是与上文图3所示的第三方应用的服务器侧的网络访问控制方法对应的一种网络访问控制装置700的结构示意图,该网络访问控制装置700包括:

重定向模块701,用于根据客户端的重定向请求将浏览器重定向至授权服务器,使得所述浏览器向所述授权服务器发送授权请求,所述授权请求中包括用户输入的用户名和密码以及指定域名和重定向时指定的回调地址,所述指定域名是用户指定的所述第三方应用的服务器中内置的多个网络域名中任一项,不同网络域名对应不同的访问权限;

发送模块702,用于根据所述授权服务器响应所述授权请求而颁发的授权码和所述指定域名向所述授权服务器发送令牌获取请求,所述令牌获取请求中包括所述指定域名和所述授权码;

接收模块703,用于接收所述授权服务器响应所述令牌获取请求发送的第二响应消息,所述第二响应消息中包括访问令牌和所述指定域名对应的访问权限以及认证会话;

业务处理模块704,用于保存所述访问令牌和所述访问权限以及所述认证会话,基于所述访问令牌和所述访问权限以及所述认证会话通过所述浏览器提供业务服务。

可选的,所述重定向模块701具体用于:

判断所述浏览器中用户输入的指定域名是否与所述第三方应用的服务器中内置的多个网络域名中任一项一致;

当所述浏览器中用户输入的指定域名与所述第三方应用的服务器中内置的多个网络域名中任一项一致时,将所述浏览器重定向至所述授权服务器。

可选的,所述第二响应消息中还携带所述访问令牌的过期时间和更新令牌;所述装置还包括:

有效性判断模块,用于在向资源服务器请求获取用户资源之前,判断所述访问令牌是否达到过期时间,当所述访问令牌达到过期时间时,根据所述更新令牌向所述授权服务器申请新的访问令牌;

根据所述新的访问令牌从资源服务器获取用户资源。

上述网络访问控制装置对基于oauth协议实现的网络访问方法进行了改进,在第三方应用的服务器侧以及服务提供方的授权服务器侧署了多个网络域名,并且在授权服务侧针对不同的网络域名分别设置了对应的访问权限;在认证授权的过程中,第三方应用的服务器与授权服务器可以在其与对方交互的数据中携带指定域名,该指定域名具体可以为上述多个网络域名中的任意一项,基于oauth协议完成对于第三方应用的访问授权,并且在授权的过程中相应地基于指定域名分配对应的访问权限,由此实现对不同网络基于对应的权限进行访问控制。

本申请实施例还提供了一种用于控制网络访问的设备,该设备可以是服务器,图8是本申请实施例提供的一种服务器结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。

服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述实施例中由服务器所执行的步骤可以基于该图8所示的服务器结构。

其中,cpu822用于执行如下步骤:

接收浏览器发送的授权请求,所述授权请求中包括用户输入的用户名、密码、指定域名以及第三方应用的回调地址,所述指定域名为用户指定的第三方应用的服务器中内置的多个网络域名中一个网络域名,所述多个网络域名对应同一服务端地址,且所述多个网络域名中不同的网络域名对应不同的访问权限;

根据授权服务器本地维护的合法用户的身份信息以及合法域名,对所述授权请求中携带的所述用户名和所述密码以及所述指定域名的合法性进行认证,所述授权服务器本地维护的合法域名包括所述第三方应用的服务器内置的多个网络域名;

在认证通过后,向所述浏览器发送第一响应消息,所述第一响应消息包括授权码、所述指定域名、所述回调地址以及认证会话;以使所述浏览器根据所述回调地址将所述授权码和所述指定域名发送至所述第三方应用的服务器;

接收所述第三方应用的服务器根据所述浏览器反馈的所述第一响应消息而发送的令牌获取请求,所述令牌获取请求中包括所述指定域名和所述授权码;

响应于所述令牌获取请求向所述第三方应用的服务器发送第二响应消息,所述第二响应消息中包括访问令牌和所述指定域名对应的访问权限,所述访问令牌和所述访问权限用于控制所述第三应用的服务器访问用户资源。

或者,cpu822用于执行如下步骤:

根据客户端的重定向请求将浏览器重定向至授权服务器,使得所述浏览器向所述授权服务器发送授权请求,所述授权请求中包括用户输入的用户名和密码以及指定域名和重定向时指定的回调地址,所述指定域名是用户指定的所述第三方应用的服务器中内置的多个网络域名中任一项,不同网络域名对应不同的访问权限;

根据所述授权服务器响应所述授权请求而颁发的授权码和所述指定域名向所述授权服务器发送令牌获取请求,所述令牌获取请求中包括所述指定域名和所述授权码;

获取所述授权服务器响应所述令牌获取请求发送的第二响应消息,所述第二响应消息中包括访问令牌和所述指定域名对应的访问权限以及认证会话;

保存所述访问令牌和所述访问权限以及所述认证会话,基于所述访问令牌和所述访问权限以及所述认证会话通过所述浏览器提供业务服务。

可选的,cpu822还可以用于执行本申请实施例中的网络访问控制方法中任意一种实现方式的步骤。

本申请实施例还提供一种计算机可读存储介质,用于存储程序代码,该程序代码用于执行前述各个实施例所述的一种网络访问控制方法中的任意一种实施方式。

本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种网络访问控制方法中的任意一种实施方式。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文缩写:rom)、随机存取存储器(英文全称:randomaccessmemory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1