权限转移系统及其控制方法和存储介质技术方案

技术编号:20520162 阅读:43 留言:0更新日期:2019-03-06 03:51
本发明专利技术涉及一种权限转移系统及其控制方法和存储介质。所述权限转移系统包括:发送单元,其被配置为从客户端向授权服务器发送授权代码请求;接收单元,其被配置为接收授权代码响应;以及响应单元,其被配置为通过所述授权服务器、基于所述授权代码请求中所包括的目的地信息来返回所述授权代码响应。

【技术实现步骤摘要】
权限转移系统及其控制方法和存储介质
本专利技术涉及一种用于验证针对web服务的访问权限的权限转移系统及其控制方法和存储介质。
技术介绍
各个web服务器提供用于提供web服务的开放API,并且web服务可以经由开放API彼此协作。从这种情况下的安全性的观点来看,可能需要某种措施来授权一个web服务对另一个web服务的访问,而无需移交这一web服务所管理的用户的认证信息。为了实现这种措施,已经采用标准协议(OAuth2.0)来实现web服务之间的协作。OAuth2.0是用于在用户批准的情况下在web服务之间安全地移交(或转移)用户的认证信息的机制,其详情将在下文中进行说明。根据OAuth2.0,在用户进行授权操作的情况下,web服务B接收授权代码。授权代码是用于证明用户授权对web服务A的访问的代码。通过使用所接收到的授权代码以及用于证明web服务B的信息,web服务B向web服务A发送用于发出授权令牌的请求。授权令牌是用于对web服务B进行授权以访问web服务A所提供的开放API的令牌。web服务B接收授权令牌,因此web服务B被授权访问web服务A的API。用于证明web服务B的信息可以是用于唯一地识别web服务B的ID、作为机密信息的密钥以及具有数字证书的数字签名。这里,术语“权限转移”是指通过用户所进行的授权操作来授权web服务B对web服务A的API的访问。在OAuth2.0中,被配置为响应于用户所进行的授权操作而发出授权代码、并根据该授权代码发出授权令牌的服务器被称为授权服务器。被配置为提供开放API的服务器被称为资源服务器,并且用于访问开放API的实体被称为客户端。在以上示例中,用于提供web服务A的服务器与授权服务器和资源服务器相对应,并且用于提供web服务B的服务器与客户端相对应。参考图1,将说明作为根据OAuth2.0的处理流程的授权代码许可(AuthorizationCodeGrant)。首先,作为用于实现OAuth2.0的预先操作,向授权服务器发送登记请求,使得客户端被登记为OAuth2.0客户端(S0.0)。更具体地,在客户端启动时、或者在后述的S1.1中的授权流程开始时未登记客户端的情况下,向授权服务器的登记端点(图1中的“EP”)发送客户端登记请求。例如,可以通过客户端主动与授权服务器进行通信或者通过用户经由web浏览器访问授权服务器并登记客户端,来进行登记请求的发送。S0.0中的登记请求包括后述的授权确认画面上显示的客户端名称、说明、图标图像以及作为所需参数的重定向URI。重定向URI是用于指定授权服务器将授权代码响应发送至的响应目的地的响应目的地信息(地址),以使得客户端从该授权服务器接收该授权代码响应。授权代码响应将在下文中进行说明。已经接收到客户端登记请求的授权服务器发出用于识别客户端的客户端ID以及作为用于对客户端进行认证的机密信息的客户端密钥,并将客户端ID和客户端密钥作为客户端登记响应返回至客户端(S0.1)。授权服务器将S0.1中所接收到的客户端ID和客户端密钥以及S0.0中所接收到的信息和重定向URI彼此相关联地进行保持。客户端保持S0.1中所接收到的客户端ID和客户端密钥。到目前为止,已经说明了作为用于实现OAuth2.0的预先操作的客户端登记流程。接着,将参考图1来说明用于在授权服务器中对用户进行认证的流程。用户可以登录客户端(S1.0)。客户端生成并保持作为用于识别登录用户的信息的登录上下文。可以从所生成的登录上下文获得用于识别登录用户的信息(诸如本地用户ID等)。用户可以经由web浏览器来访问用于开始授权的URI(以下称为授权开始URI),并且可以根据OAuth2.0来开始授权流程(S1.1)。响应于对用于开始授权流程的授权开始URI的访问,客户端向授权服务器的授权端点发送授权代码请求(S1.2)。授权代码请求包括客户端ID、重定向URI和状态参数。状态参数是用于将授权代码请求与授权代码响应唯一地关联的信息,并且可用于防止CSRF(跨站点请求伪造)攻击和令牌置换(以下称为“授权代码置换”)攻击。出于该目的,状态参数是不可预测且不重复的值。对客户端在后述的授权代码响应中所接收到的状态参数和客户端在S1.2的授权代码请求中所发送的状态参数之间的一致性进行验证。此外,为了识别已经执行授权代码请求的用户,客户端将该客户端所发出的状态参数与重定向URI和登录上下文相关联地进行管理。如果用户尚未登录授权服务器,则在S1.2已接收到授权代码请求的授权服务器以web浏览器上的用于认证用户的登录画面进行响应(S1.3)。用户可以经由web浏览器来输入用户ID和密码,并且针对授权服务器执行认证请求(S1.4)。已经接收到认证请求的授权服务器验证S1.4中所接收到的用户ID和密码的组合与预登记组合之间的一致性。如果S1.4中所接收到的用户ID和密码的组合与预登记组合一致,则授权服务器发出授权令牌。所发出的授权令牌被响应至web浏览器的Cookie。授权服务器在web浏览器上以用户批准客户端的授权所用的授权确认画面进行响应(S1.5)。如果S1.2中所接收到的客户端ID和重定向URI的组合与授权服务器中预登记的客户端ID和重定向URI的组合不一致,则授权服务器在web浏览器上以错误画面进行响应。这可以防止重定向(传送)至无效URI。在登录用户已经通过使用相同的客户端ID执行了授权操作的情况下,可以省略S1.5中的处理。以下,授权用户ID和客户端ID的组合将被称为批准信息。在S1.6中在用户进行授权操作之后,授权服务器发出授权代码,并将授权代码和状态参数作为授权代码响应发送至客户端(S1.7)。更具体地,授权代码和状态参数作为查询参数被添加至重定向URI,然后该重定向URI被发送至web浏览器,使得授权代码和状态参数要被重定向至该重定向URI所指定的响应目的地。将S1.7中所发出的授权代码与客户端ID、用户ID和重定向URI相关联地保存在授权服务器中。授权服务器还保存批准信息。已经针对重定向URI接收到授权代码响应的客户端验证授权代码响应中所包括的状态参数是否与客户端所管理的状态参数一致。如果作为验证的结果、状态参数一致,则客户端向授权服务器的令牌端点发送令牌请求(S2.0)。令牌请求包括客户端ID、客户端密钥、S1.7中所获得的授权代码以及S1.2中所接收到的重定向URI。在S2.0中已接收到令牌请求的授权服务器验证客户端ID和客户端密钥的组合是否与预登记组合一致。如果作为验证的结果而判断为它们一致,则客户端被授权。授权服务器验证该授权服务器是否保持S2.0中已接收到的授权代码,如果是,则验证授权代码是否尚未到期、以及与授权令牌相关联的客户端ID和重定向URI是否与S2.0的令牌请求中所接收到的客户端ID和重定向URI一致。通过该验证,授权服务器可以验证已发送了S1.2的授权代码请求的客户端是否与已发送了S2.0的令牌请求的客户端一致。如果验证成功,则授权服务器向客户端发出授权令牌,并将其作为令牌响应对客户端进行响应(S2.1)。这里,授权服务器可以向客户端发出用于再次获得授权令牌的刷新令牌,并且以该刷新令牌作为令牌响应来进行响应。客户端可以通过使用S2.1本文档来自技高网...

【技术保护点】
1.一种权限转移系统,其包括客户端、用户代理、资源服务器以及用于对所述客户端进行授权以访问所述资源服务器的授权服务器,所述权限转移系统包括:处理器;以及存储器,其连接至所述处理器并且存储有指令,所述指令在所述处理器执行时进行协作以用作:发送部件,其被配置为经由所述用户代理从所述客户端向所述授权服务器发送所述授权服务器授权所述客户端访问所述资源服务器所用的授权代码请求;接收部件,其被配置为接收授权代码响应,所述授权代码响应是针对所述授权代码请求的响应,其中所述授权代码请求包括用于指定所述授权服务器要将所述授权代码响应返回至的响应目的地的响应目的地信息、以及从所述授权服务器添加至所述响应目的地信息的签名信息;以及响应部件,其被配置为通过所述授权服务器、基于所述发送部件所发送的所述授权代码请求中所包括的所述响应目的地信息来返回针对所述授权代码请求的所述授权代码响应。

【技术特征摘要】
2017.08.31 JP 2017-1672851.一种权限转移系统,其包括客户端、用户代理、资源服务器以及用于对所述客户端进行授权以访问所述资源服务器的授权服务器,所述权限转移系统包括:处理器;以及存储器,其连接至所述处理器并且存储有指令,所述指令在所述处理器执行时进行协作以用作:发送部件,其被配置为经由所述用户代理从所述客户端向所述授权服务器发送所述授权服务器授权所述客户端访问所述资源服务器所用的授权代码请求;接收部件,其被配置为接收授权代码响应,所述授权代码响应是针对所述授权代码请求的响应,其中所述授权代码请求包括用于指定所述授权服务器要将所述授权代码响应返回至的响应目的地的响应目的地信息、以及从所述授权服务器添加至所述响应目的地信息的签名信息;以及响应部件,其被配置为通过所述授权服务器、基于所述发送部件所发送的所述授权代码请求中所包括的所述响应目的地信息来返回针对所述授权代码请求的所述授权代码响应。2.根据权利要求1所述的权限转移系统,其中,通过使用所述客户端所保持的私钥来将所述签名信息添加至所述响应目的地信息,以及所述授权服务器被配置为通过使用所述授权服务器所保持的私钥来验证添加至所述响应目的地信息的签名信息。3.根据权利要求2所述的权限转移系统,其中,在从所述客户端接收到用以利用所述授权服务器登记与所述客户端有关的信息的客户端登记请求之后,所述授权服务器被配置为生成用于识别所述客户端的客户端识别信息以及用于对所述客户端进行认证的公钥和私钥,并且将所述客户端识别信息和所述公钥彼此相关联地进行管理,所述授权服务器被配置为将所述客户端识别信息和所述私钥作为针对所述客户端登记请求的响应而发送至所述客户端。4.根据权利要求3所述的权限转移系统,其中,所述授权服务器被配置为在已接收到所述授权代码请求的情况下、基于与所述授权代码请求一起接收到的所述客户端识别信息来识别用于验证所述签名信息的公钥。5.根据权利要求1所述的权限转移系统,其中,...

【专利技术属性】
技术研发人员:松个下勇人山中嶋和成
申请(专利权)人:佳能株式会社
类型:发明
国别省市:日本,JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1