一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于第三方授权的系统、方法和计算机程序产品与流程

2022-03-23 03:24:39 来源:中国专利 TAG:

用于第三方授权的系统、方法和计算机程序产品
1.相关申请的交叉引用
2.本技术要求2019年7月5日提交的第62/870,834号美国临时专利申请的优先权,所述专利申请的公开内容以全文引用的方式并入本文中。
技术领域
3.本公开大体上涉及授权用户,并且在非限制性实施例中,涉及用于第三方授权的系统、方法和计算机程序产品。


背景技术:

4.用于经由第三方授权系统授权用户使用系统的现有标准和协议存在若干安全漏洞。例如,使用开放授权(oath)标准,攻击者可以拦截授权代码和/或访问令牌,以在无权限的情况下访问系统。如果此类第三方授权用于访问支付系统和/或进行支付交易,则这些安全漏洞尤其令人担忧。


技术实现要素:

5.根据非限制性实施例或方面,提供一种计算机实施的方法,包括:用至少一个处理器生成授权代码;用至少一个处理器通过与第一系统相关联的公钥对授权代码进行加密,从而产生加密的授权代码;将加密的授权代码发送到第一系统;从第一系统接收由所述第一系统基于授权代码和对应于与所述第一系统相关联的公钥的私钥而生成的数字签名的授权代码;用至少一个处理器基于公钥和授权代码验证数字签名的授权代码;以及响应于验证数字签名的授权代码,将访问令牌发送到第一系统,其中所述访问令牌被配置成授权用户使用所述第一系统。
6.在非限制性实施例和方面,所述方法还包括从第二系统接收包括与用户相关联的用户标识符和至少一个许可的访问许可数据,其中响应于接收到所述访问许可数据而生成和/或加密授权代码。在非限制性实施例和方面,将加密的授权代码发送到第一系统包括将所述加密的授权代码发送到第二系统,其中第二系统将所述加密的授权代码提供到第一系统。在非限制性实施例和方面,所述方法还包括:通过与第一系统相关联的第一网站接收请求,所述请求由用户通过计算装置发起;将用户的计算装置从与第一系统相关联的第一网站重定向到与第二系统相关联的第二网站,其中所述第二网站被配置成接收与所述用户相关联的凭证;以及从第二系统接收对授权代码的请求。在非限制性实施例或方面,所述方法还包括:从第一系统接收由所述第一系统基于访问令牌和私钥而生成的数字签名的访问令牌;用至少一个处理器基于公钥和访问令牌验证数字签名的访问令牌;以及响应于验证数字签名的访问令牌,授权用户使用第二系统。
7.根据非限制性实施例或方面,提供一种系统,包括至少一个处理器,所述至少一个处理器被编程或配置成:生成授权代码;用与第一系统相关联的公钥对授权代码进行加密,从而产生加密的授权代码;将加密的授权代码发送到第一系统;从第一系统接收由所述第
一系统基于授权代码和对应于与所述第一系统相关联的公钥的私钥而生成的数字签名的授权代码;基于公钥和授权代码来验证数字签名的授权代码;并且响应于验证数字签名的授权代码,将访问令牌发送到第一系统,其中所述访问令牌被配置成授权用户使用所述第一系统。
8.在非限制性实施例或方面,至少一个处理器被进一步编程或配置成从第二系统接收包括与用户相关联的用户标识符和至少一个许可的访问许可数据,其中响应于接收到所述访问许可数据而生成和/或加密授权代码。在非限制性实施例和方面,其中将加密的授权代码发送到第一系统包括将所述加密的授权代码发送到第二系统,第二系统将所述加密的授权代码提供到第一系统。在非限制性实施例和方面,至少一个处理器被进一步编程或配置成:通过与第一系统相关联的第一网站接收请求,所述请求由用户通过计算装置发起;将用户的计算装置从与第一系统相关联的第一网站重定向到与第二系统相关联的第二网站,其中所述第二网站被配置成接收与所述用户相关联的凭证;并且从第二系统接收对授权代码的请求。在非限制性实施例或方面,至少一个处理器被进一步编程或配置成:从第一系统接收由所述第一系统基于访问令牌和私钥而生成的数字签名的访问令牌;用至少一个处理器基于公钥和访问令牌验证数字签名的访问令牌;并且响应于验证数字签名的访问令牌,授权用户使用第二系统。
9.根据非限制性实施例或方面,提供一种包括至少一个非瞬态计算机可读介质的计算机程序产品,所述至少一个非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:生成授权代码;用与第一系统相关联的公钥对授权代码进行加密,从而产生加密的授权代码;将加密的授权代码发送到第一系统;从第一系统接收由所述第一系统基于授权代码和对应于与所述第一系统相关联的公钥的私钥而生成的数字签名的授权代码;基于公钥和授权代码验证数字签名的授权代码;并且响应于验证数字签名的授权代码,将访问令牌发送到第一系统,其中所述访问令牌被配置成授权用户使用所述第一系统。
10.根据非限制性实施例或方面,提供计算机实施的方法,包括:用第一系统的至少一个处理器从授权系统接收加密的授权代码;用至少一个处理器基于与第一系统相关联的私钥对加密的授权代码进行解密,从而产生授权代码;用至少一个处理器基于私钥对授权代码进行数字签名,从而产生数字签名的授权代码;将数字签名的授权代码发送到授权系统;以及用至少一个处理器从授权系统接收访问令牌,所述访问令牌被配置成授权用户使用第一系统。在非限制性实施例或方面,所述方法还包括:用至少一个处理器基于私钥对访问令牌进行数字签名,从而产生数字签名的访问令牌;以及将数字签名的访问令牌发送到授权系统。
11.在非限制性实施例或方面,所述方法还包括:通过与第一系统相关联的第一网站接收由用户发起的请求;以及将用户的计算装置从与第一系统相关联的第一网站重定向到与第二系统相关联的第二网站,其中所述第二网站被配置成接收与所述用户相关联的凭证。在非限制性实施例或方面,从授权系统接收加密的授权代码包括从第二系统接收所述加密的授权代码,其中第二系统从授权系统接收所述加密的授权代码。
12.根据非限制性实施例或方面,提供一种系统,包括至少一个处理器,所述至少一个处理器被编程或配置成:从授权系统接收加密的授权代码;基于与第一系统相关联的私钥
对加密的授权代码进行解密,从而产生授权代码;基于私钥对授权代码进行数字签名,从而产生数字签名的授权代码;将数字签名的授权代码发送到授权系统;并且从授权系统接收访问令牌,所述访问令牌被配置成授权用户使用第一系统。
13.在非限制性实施例或方面,至少一个处理器被进一步编程或配置成:基于私钥对访问令牌进行数字签名,从而产生数字签名的访问令牌;并且将数字签名的访问令牌发送到授权系统。在非限制性实施例或方面,至少一个处理器被进一步编程或配置成:通过与第一系统相关联的第一网站接收由用户发起的请求;并且将用户的计算装置从与第一系统相关联的第一网站重定向到与第二系统相关联的第二网站,其中所述第二网站被配置成接收与所述用户相关联的凭证。在非限制性实施例或方面,从授权系统接收加密的授权代码包括从第二系统接收所述加密的授权代码,其中第二系统从授权系统接收所述加密的授权代码。
14.根据非限制性实施例或方面,提供一种包括至少一个非瞬态计算机可读介质的计算机程序产品,所述至少一个非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:从授权系统接收加密的授权代码;基于与第一系统相关联的私钥对加密的授权代码进行解密,从而产生授权代码;基于私钥对授权代码进行数字签名,从而产生数字签名的授权代码;将数字签名的授权代码发送到授权系统;并且从授权系统接收访问令牌,所述访问令牌被配置成授权用户使用第一系统。
15.将在以下编号条款中阐述其它非限制性实施例或方面:
16.条款1:一种计算机实施的方法,包括:用至少一个处理器生成授权代码;用至少一个处理器通过与第一系统相关联的公钥对所述授权代码进行加密,从而产生加密的授权代码;将所述加密的授权代码发送到所述第一系统;从所述第一系统接收由所述第一系统基于所述授权代码和对应于与所述第一系统相关联的所述公钥的私钥而生成的数字签名的授权代码;用至少一个处理器基于所述公钥和所述授权代码验证所述数字签名的授权代码;以及响应于验证所述数字签名的授权代码,将访问令牌发送到所述第一系统,其中所述访问令牌被配置成授权用户使用所述第一系统。
17.条款2:根据条款1所述的计算机实施的方法,还包括从第二系统接收包括与所述用户相关联的用户标识符和至少一个许可的访问许可数据,其中响应于接收到所述访问许可数据而生成和/或加密所述授权代码。
18.条款3:根据条款1或2所述的计算机实施的方法,其中将所述加密的授权代码发送到所述第一系统包括将所述加密的授权代码发送到第二系统,其中所述第二系统将所述加密的授权代码提供到所述第一系统。
19.条款4:根据条款1-3中任一项所述的计算机实施的方法,还包括:通过与所述第一系统相关联的第一网站接收请求,所述请求由所述用户通过计算装置发起;将所述用户的所述计算装置从与所述第一系统相关联的所述第一网站重定向到与第二系统相关联的第二网站,其中所述第二网站被配置成接收与所述用户相关联的凭证;以及从所述第二系统接收对所述授权代码的请求。
20.条款5:根据条款1-4中任一项所述的计算机实施的方法,还包括:从所述第一系统接收由所述第一系统基于所述访问令牌和所述私钥而生成的数字签名的访问令牌;用至少一个处理器基于所述公钥和所述访问令牌验证所述数字签名的访问令牌;以及响应于验证
所述数字签名的访问令牌,授权所述用户使用所述第二系统。
21.条款6:一种系统,包括至少一个处理器,所述至少一个处理器被编程或配置成:生成授权代码;用与第一系统相关联的公钥对所述授权代码进行加密,从而产生加密的授权代码;将所述加密的授权代码发送到所述第一系统;从所述第一系统接收由所述第一系统基于所述授权代码和对应于与所述第一系统相关联的所述公钥的私钥而生成的数字签名的授权代码;基于所述公钥和所述授权代码来验证所述数字签名的授权代码;并且响应于验证所述数字签名的授权代码,将访问令牌发送到所述第一系统,其中所述访问令牌被配置成授权用户使用所述第一系统。
22.条款7:根据条款6所述的系统,其中所述至少一个处理器被进一步编程或配置成从第二系统接收包括与所述用户相关联的用户标识符和至少一个许可的访问许可数据,其中响应于接收到所述访问许可数据而生成和/或加密所述授权代码。
23.条款8:根据条款6或7所述的系统,其中将所述加密的授权代码发送到所述第一系统包括将所述加密的授权代码发送到第二系统,其中所述第二系统将所述加密的授权代码提供到所述第一系统。
24.条款9:根据条款6-8中任一项所述的系统,其中所述至少一个处理器被进一步编程或配置成:通过与所述第一系统相关联的第一网站接收请求,所述请求由所述用户通过计算装置发起;将所述用户的所述计算装置从与所述第一系统相关联的所述第一网站重定向到与第二系统相关联的第二网站,其中所述第二网站被配置成接收与所述用户相关联的凭证;并且从所述第二系统接收对所述授权代码的请求。
25.条款10:根据条款6-9中任一项所述的系统,其中所述至少一个处理器被进一步编程或配置成:从所述第一系统接收由所述第一系统基于所述访问令牌和所述私钥而生成的数字签名的访问令牌;用至少一个处理器基于所述公钥和所述访问令牌验证所述数字签名的访问令牌;并且响应于验证所述数字签名的访问令牌,授权所述用户使用所述第二系统。
26.条款11:一种包括至少一个非瞬态计算机可读介质的计算机程序产品,所述至少一个非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:生成授权代码;通过与第一系统相关联的公钥对所述授权代码进行加密,从而产生加密的授权代码;将所述加密的授权代码发送到所述第一系统;从所述第一系统接收由所述第一系统基于所述授权代码和对应于与所述第一系统相关联的所述公钥的私钥而生成的数字签名的授权代码;基于所述公钥和所述授权代码验证所述数字签名的授权代码;并且响应于验证所述数字签名的授权代码,将访问令牌发送到所述第一系统,其中所述访问令牌被配置成授权用户使用所述第一系统。
27.条款12:一种计算机实施的方法,包括:用第一系统的至少一个处理器从授权系统接收加密的授权代码;用所述至少一个处理器基于与所述第一系统相关联的私钥对所述加密的授权代码进行解密,从而产生授权代码;用所述至少一个处理器基于所述私钥对所述授权代码进行数字签名,从而产生数字签名的授权代码;将所述数字签名的授权代码发送到所述授权系统;以及用所述至少一个处理器从所述授权系统接收访问令牌,所述访问令牌被配置成授权用户使用所述第一系统。
28.条款13:根据条款12所述的计算机实施的方法,还包括:用至少一个处理器基于所述私钥对所述访问令牌进行数字签名,从而产生数字签名的访问令牌;以及将所述数字签
名的访问令牌发送到所述授权系统。
29.条款14:根据条款12或13所述的计算机实施的方法,还包括:通过与所述第一系统相关联的第一网站接收由所述用户发起的请求;以及将所述用户的计算装置从与所述第一系统相关联的所述第一网站重定向到与第二系统相关联的第二网站,其中所述第二网站被配置成接收与所述用户相关联的凭证。
30.条款15:根据条款12-14中任一项所述的计算机实施的方法,其中从所述授权系统接收所述加密的授权代码包括从第二系统接收所述加密的授权代码,其中所述第二系统从所述授权系统接收所述加密的授权代码。
31.条款16:一种系统,包括至少一个处理器,所述至少一个处理器被编程或配置成:从授权系统接收加密的授权代码;基于与所述第一系统相关联的私钥对所述加密的授权代码进行解密,从而产生授权代码;基于所述私钥对所述授权代码进行数字签名,从而产生数字签名的授权代码;将所述数字签名的授权代码发送到所述授权系统;并且从所述授权系统接收访问令牌,所述访问令牌被配置成授权用户使用所述第一系统。
32.条款17:根据条款16所述的系统,其中所述至少一个处理器被进一步编程或配置成:基于所述私钥对所述访问令牌进行数字签名,从而产生数字签名的访问令牌;并且将所述数字签名的访问令牌发送到所述授权系统。
33.条款18:根据条款16或17所述的系统,其中所述至少一个处理器被进一步编程或配置成:通过与所述第一系统相关联的第一网站接收由所述用户发起的请求;并且将所述用户的计算装置从与所述第一系统相关联的所述第一网站重定向到与第二系统相关联的第二网站,其中所述第二网站被配置成接收与所述用户相关联的凭证。
34.条款19:根据条款16-18中任一项所述的系统,其中从所述授权系统接收所述加密的授权代码包括从第二系统接收所述加密的授权代码,其中所述第二系统从所述授权系统接收所述加密的授权代码。
35.条款20:一种包括至少一个非瞬态计算机可读介质的计算机程序产品,所述至少一个非瞬态计算机可读介质包括程序指令,所述程序指令在由至少一个处理器执行时使所述至少一个处理器:从授权系统接收加密的授权代码;基于与所述第一系统相关联的私钥对所述加密的授权代码进行解密,从而产生授权代码;基于所述私钥对所述授权代码进行数字签名,从而产生数字签名的授权代码;将所述数字签名的授权代码发送到所述授权系统;并且从所述授权系统接收访问令牌,所述访问令牌被配置成授权用户使用所述第一系统。
36.条款21:根据条款1-5中任一项所述的计算机实施的方法,还包括:用至少一个处理器验证对所述第一系统的授权是活动的;以及响应于验证对所述第一系统的所述授权和所述数字签名的访问令牌,授权所述用户使用所述第二系统。
37.在参考附图考虑以下描述和所附权利要求书时,本公开的这些和其它特征和特性以及相关结构元件和各部分的组合的操作方法和功能以及制造经济性将变得更加显而易见,所有附图形成本说明书的部分,其中相似附图标号在各图中标示对应部分。然而,应明确地理解,图式仅出于说明和描述的目的,并非旨在作为本发明的限制的定义。
附图说明
38.下文参考示意性附图中示出的非限制性、示例性实施例更详细地解释额外优势和细节,在附图中:
39.图1是根据非限制性实施例的用于第三方授权的系统的示意图;
40.图2是根据非限制性实施例的用于第三方授权的系统的序列图;
41.图3是根据非限制性实施例的用于第三方授权的系统的另一序列图;并且
42.图4示出结合非限制性实施例使用的装置的示例组件。
具体实施方式
43.为了进行以下描述,术语“端”、“上”、“下”、“右”、“左”、“竖直”、“水平”、“顶部”、“底部”、“橫向”、“纵向”和其派生词应与实施例在附图中的定向相关。然而,应理解,实施例可采用各种替代变化和步骤顺序,除了明确指定为相反的情况之外。还应理解,附图中所示的以及在以下说明书中描述的特定装置和过程仅仅是本发明的示例性实施例或方面。因此,与本文公开的实施例或方面有关的特定尺寸和其它物理特性不应被视为限制。
44.本文所使用的方面、组件、元件、结构、动作、步骤、功能、指令等都不应当被理解为关键的或必要的,除非明确地如此描述。并且,如本文中所使用,冠词“一”希望包括一个或多个项目,且可与“一个或多个”和“至少一个”互换使用。此外,如本文中所使用,术语“集合”希望包括一个或多个项目(例如,相关项目、不相关项目、相关项目与不相关项目的组合等),并且可与“一个或多个”或“至少一个”互换使用。在希望仅有一个项目的情况下,使用术语“一个”或类似语言。且,如本文中所使用,术语“具有”等希望是开放式术语。另外,除非另外明确陈述,否则短语“基于”希望意味着“至少部分地基于”。
45.如本文中所使用,术语“通信”可以指数据(例如,信息、信号、消息、指令、命令等)的接收、接纳、发送、传送、提供等。一个单元(例如,装置、系统、装置或系统的组件、其组合等)与另一单元通信意味着所述一个单元能够直接或间接地从所述另一单元接收信息和/或向所述另一单元发送信息。这可指在本质上有线和/或无线的直接或间接连接(例如,直接通信连接、间接通信连接等)。另外,尽管所发送的信息可以在第一单元与第二单元之间被修改、处理、中继和/或路由,但这两个单元也可以彼此通信。例如,即使第一单元被动地接收信息且不会主动地将信息发送到第二单元,第一单元也可以与第二单元通信。作为另一示例,如果至少一个中间单元处理从第一单元接收的信息且将处理后的信息传送到第二单元,那么第一单元可以与第二单元通信。
46.如本文中所使用,术语“计算装置”可以指被配置成处理数据的一个或多个电子装置。在一些示例中,计算装置可以包括接收、处理和输出数据的必要组件,例如处理器、显示器、存储器、输入装置、网络接口等。计算装置可以是移动装置。作为示例,移动装置可以包括蜂窝电话(例如,智能电话或标准蜂窝电话)、便携式计算机、可穿戴装置(例如,手表、眼镜、镜片、衣物等)、个人数字助理(pda)和/或其它类似装置。计算装置还可以是台式计算机或其它形式的非移动计算机。
47.如本文中所使用,术语“服务器”可以指或包括由互联网等网络环境中的多方操作或促进所述多方的通信和处理的一个或多个计算装置,但应了解,可通过一个或多个公共或专用网络环境促进通信,并且可能有各种其它布置。此外,在网络环境中直接或间接通信
的多个计算装置(例如服务器、销售点(pos)装置、移动装置等可构成“系统”。如本文中所使用,对“服务器”或“处理器”的提及可以指陈述为执行先前步骤或功能的先前所述服务器和/或处理器、不同的服务器和/或处理器,和/或服务器和/或处理器的组合。例如,如在说明书和权利要求书中所使用,陈述为实施第一步骤或功能的第一服务器和/或第一处理器可指代陈述为实施第二步骤或功能的相同或不同服务器和/或处理器。
48.如本文中所使用,术语“应用程序编程接口”(api)可以指允许不同系统或(硬件和/或软件)系统组件之间的通信的计算机代码。例如,api可以包括可由其它系统或其它(硬件和/或软件)系统组件使用和/或访问的功能调用、功能、子例程、通信协议、字段等。
49.如本文中所使用,术语“用户界面”或“图形用户界面”(gui)是指生成的显示,例如用户可以直接或间接(例如,通过键盘、鼠标、触摸屏等)与其交互的一个或多个gui。
50.在非限制性实施例中,提供用于使第一系统能够基于由另一系统提供的授权来提供用户访问的系统和方法。例如,一些非限制性实施例可以实施为对开放授权(oauth)协议的增强。然而,应了解,非限制性实施例也可以不同于oauth,并且可以与任何现有标准和/或协议一起实施或分开实施。
51.本文所描述的系统和方法为由第一系统代表用户通过第二系统进行的动作(例如,允许第一系统代表用户进行支付)提供增强的安全性。增强的安全性可以通过本文所描述的特征来实现,所述特征包括但不限于特别允许用户撤销对第一系统代表用户采取动作的授权以及允许由第一系统对访问令牌、刷新令牌和/或授权代码进行数字签名的布置。目前,oauth协议不允许撤销授权。通过允许撤销,用户可以更好地控制对第一系统的授权。用户能够更主动地对可能需要在令牌的正常到期之前撤销授权的事件,例如对已知的安全漏洞作出反应。此外,使用数字签名的令牌和授权代码可以确保发送到第二系统的请求实际上来自第一系统,而不是由冒名顶替者发送,从而增加了安全性。数字签名的令牌允许这种增加的安全性,而无需用户针对第一系统采取的每个动作进行额外动作,从而减少网络通信量。
52.图1描绘根据非限制性实施例的用于第三方授权的系统1000。系统1000包括与授权数据库110和第二系统106通信的授权系统102。第二系统106还可以与由用户100操作的用户装置104通信。用户装置104可包括计算装置。第二系统106可以是用户100和/或用户装置104已经注册的系统,例如运行一个或多个软件程序的一个或多个计算装置。例如,第二系统106可以是社交网络、论坛(例如,消息板、媒体托管服务等)、零售商、电子邮件提供商服务、媒体流服务等。用户100可具有第二系统106的账户,所述账户通过与第二系统106通信的账户数据库112中的账户数据表示。账户数据库112中的账户数据可包括与注册到第二系统106的多个用户中的每个注册用户相关联的用户凭证,例如用户名、密码、pin等。
53.仍参考图1,在非限制性实施例中,第二系统106可以注册到授权系统102,以针对第一系统108和/或关于用户100和/或用户装置104以及其它用户和/或用户装置的其它系统提供授权服务。例如,第二系统106可以通过由授权系统102预批准而注册到授权系统102,使得授权系统102将第二系统106识别为有效。授权系统102可包括服务器,并且可以由第二系统106、用户100或第三方操作(例如,由其控制)。第三方可以与用户100相关联。用户100可以是第三方的员工、授权用户、客户、顾客、承包商等。第三方可以是用户100的客户、承包商等。授权系统102可包括服务器。第一系统108可包括用户100和/或用户装置104寻求
与之交互的服务提供商、社交网络、商家系统等。因此,在非限制性实施例中,用户100可以基于用户凭证和/或使用和/或提供到第二系统106的其它账户信息而授权自己使用第一系统108。
54.在非限制性实施例中,并且继续参考图1,用户装置104可以寻求访问由第一系统108操作的网站和/或服务。在用户100通过用户装置104请求访问后,第一系统108将用户装置104重定向到第二系统106(例如,通过将用户装置104上的网页浏览器重定向到由第二系统106提供或托管的网站)。通过第二系统106的网站或服务,用户100可以输入凭证(例如,用户名、密码、pin、账户标识符等)以认证自己。通过第二系统106的网站或服务,在被认证之后,用户100可以选择gui上的一个或多个可选选项以授予第一系统108的访问权限。可供选择的一个或多个可选选项可以根据用户100和/或与第一系统108相关联的实体而不同。例如,可以显示第一系统108的标识符。在一些非限制性实施例中,可以在gui上示出具有可选选项的特定权限,使得用户100可以选择一个或多个可选选项以自定义将授予第一系统108的权限。此类权限可包括个人信息或其子集的共享,例如,此类权限的时限,和/或其它限制和/或参数设置。
55.仍参考图1,第二系统106可以与授权系统102通信以使得授权系统102提供授权代码。例如,第二系统106可以调用一个或多个api以向授权系统102请求授权代码。第二系统106可以将访问许可数据(例如,与用户相关联的用户标识符和至少一个访问许可)发送到授权系统102。访问许可数据可以存储在账户数据库112中。然后,授权系统102可以基于访问许可数据并响应于授权用户而生成授权代码。在一些示例中,授权代码可能已经存在和/或可以从另一系统获得。在一些示例中,授权系统102可以用与由第一系统108持有的私钥相关联的公钥来对授权代码进行加密。授权代码可以在预定量的时间内有效,例如1分钟、5分钟、10分钟、1小时、1天,或直到指定的到期日期和/或时间。授权代码的生成/加密可以响应于接收到访问许可数据和/或授权用户。加密的授权代码被发送到第二系统106,所述第二系统又将加密的授权代码发送到第一系统108。在其它示例中,加密的授权代码可以直接发送到第一系统108。
56.继续参考图1,第一系统108接收加密的授权代码。第一系统108被配置成对授权代码进行解密以获得解密的授权代码(例如,明文授权代码),所述解密的授权代码可以交换为访问令牌(例如,javascript对象表示法(json)网页令牌(jwt)有效负载),以用于授予用户装置104访问第一系统108的权限。解密可以基于与第一系统108相关联的私钥。为了获得访问令牌,第一系统108可以用私钥对授权代码进行数字签名,以生成数字签名的授权代码。然后,可以将数字签名的授权代码发送到授权系统102以请求访问令牌。授权系统102可以使用公钥来验证由第一系统108生成的数字签名,并且响应于验证数字签名的授权代码,可以将访问令牌返回到第一系统108。作为示例,访问令牌可以明文发送,也可以使用公钥进行加密。然后,访问令牌可用于授予访问用户100和/或用户装置104的权限。访问令牌可以在预定时间段内有效,例如15分钟、1小时、1天或直到指定的到期日期或时间。访问令牌的预定有效性时间可以长于授权代码的预定有效性时间。
57.在非限制性实施例中,并且继续参考图1,授权系统102可以在授权数据库110中或其它地方维持撤销列表,使得可以撤销发行的访问令牌以防止继续使用。在授权系统102授予访问第一系统108的权限之前,授权系统102可以检查以确保第一系统仍具有活动授权。
授权系统102可以将每个访问令牌与撤销列表进行比较,以确定令牌是否仍然有效。如果访问令牌无效,则第一系统108将不被授予访问的权限。用户100可以撤回(例如,撤销)对第一系统108的授权。这可以通过第二系统106的网站和/或服务来请求。第二系统106的网站和/或服务可以直接访问,或通过第一系统108的网站或服务访问。然后,用户100可以撤回授予第一系统108的访问(例如,访问权限)。
58.仍参考图1,第一系统108可以被配置成刷新访问令牌。第一系统108可以将刷新令牌传送到授权系统102。刷新令牌可以由第一系统108用与第一系统108相关联的私钥进行数字签名。授权系统102可以使用公钥来验证由第一系统108生成的数字签名,并且响应于验证数字签名的响应令牌,可以将访问令牌返回到第一系统108。授权系统102可以将刷新令牌与撤销列表进行比较。如果对第一系统108的访问权限已经被撤销,则访问令牌可以不返回。刷新令牌可以在预定时间段内有效,例如1小时、1周或1年,和/或直到指定的到期日期和/或时间。
59.刷新令牌的预定有效性时间可以长于访问令牌的预定有效性时间。用户100可以更新刷新令牌。在非限制性实施例中,如果第一系统108在刷新令牌的有效性结束之后尝试完成与第二系统106的交易,则第二系统106可以与用户100通信以确定刷新令牌是否应更新。如果用户100请求更新刷新令牌,则第二系统106将向第一系统108传递新的刷新令牌。
60.参考图2,示出根据非限制性实施例的序列图。图2中所示的示例可以基于用于认证的oauth实施方案。应了解,图2中所示的序列仅出于示例目的,并且可能会有变化。在非限制性实施例中,步骤201-210表示用于将第一系统108登记(例如,注册)到第二系统106以进行授权的登记流程。步骤211表示请求新的访问令牌。步骤212表示将访问令牌发送到授权系统102。步骤213-215表示撤销对第一系统的授权。步骤216表示允许访问第一系统108。
61.在步骤201中,用户100导航到由第一系统108操作的网站或服务258。第一系统(例如,图1中示出的第一系统108)可包括第一系统的网站或服务258和第一系统的服务器268两者。用户可以使用例如计算装置之类的用户装置104导航到第一系统的网站或服务258。用户100可以是实体的授权用户。在非限制性实施例中,实体的任何授权用户可以完成用户100的动作。
62.在步骤202中,第一系统的网站258将用户100重定向到由第二系统操作的网站或服务256以进行认证。用户100可以通过在第一系统的网站258上选择(例如,点击、触摸等)按钮、链接等来重定向到第二系统的网站256(例如,图1中示出的第二系统106的一部分)。例如,按钮可以声明它将授予第一系统的服务器268的访问。
63.在步骤203中,用户100登录第二系统的网站256,并使用用户的凭证进行认证。用户100可以手动输入其凭证,例如通过按下键盘上的按键来输入其凭证。在非限制性实施例中,用户的凭证可以包括用户名、密码、pin、双因素认证、对安全性问题的回答、个人标识信息等。
64.在步骤204中,在第二系统的网站256上向用户100呈现访问许可页面(例如,gui),其中用户100选择一个或多个可选选项以选择一个或多个许可。许可可包括允许访问特定信息和/或允许能够访问第二系统106的服务270的权限或授权。许可可以允许第一系统108能够代表用户100访问服务和/或信息。可供选择的许可可以根据用户100和/或与第一系统108相关联的实体而不同。在非限制性实施例中,第一系统108可以提交许可列表,并且用户
100可以向第一系统108授予由第一系统108提交的所有、一些许可,或不授予所述许可。在非限制性实施例中,用户100可能无法授予由第一系统108提交的许可中的一些,而是可能被要求授予由第一系统108提交的所有许可或不授予所述许可。在用户100做出选择之后,从第二系统的网站256调用授权系统102的api(例如,“登记”api功能)以传送以下数据:a)客户端标识符(例如,正被提供访问的计算装置(客户端)的标识符,所述标识符先前已经注册到第一系统且由此流程之外的客户端标识符接收);b)第一系统标识符(例如,第一系统108的标识符,如商家标识符);以及c)一个或多个许可。
65.在步骤205中,授权系统102将所选择的许可记录在数据库110中,例如记录在授权数据库、账户数据库或单独许可数据库中。数据库110可以由第二系统106或第三方操作。
66.在步骤206中,授权系统102将用第一系统的公钥加密的授权代码返回到第二系统的网站256。
67.在步骤207中,第二系统的网站256将用户100重定向回第一系统的网站258。加密的授权代码也可重定向到第一系统的网站258。
68.在步骤208中,第一系统的网站258将加密的授权代码发送到第一系统108(例如,第一系统108的服务器)。
69.在步骤209中,第一系统的服务器268使用第一系统的私钥对加密的授权代码进行解密。
70.在步骤210中,第一系统的服务器268将用第一系统的私钥数字签名的授权代码传送到授权系统102。第一系统108可以将代码直接或间接地传送到授权系统102。第一系统108可以用授权代码调用授权系统的api功能(例如,“获得令牌(gettoken)”功能调用)。然后,第一系统108接收访问令牌。访问令牌可以授予第一系统108的访问以用于在有限时间段内执行服务(例如,业务交易)。访问令牌可以基于在步骤204中选择的许可,并且可以仅允许第一系统108执行授予第一系统108的动作和/或交易。
71.访问令牌可具有较短有效性时间。如果访问令牌到期,则第一系统108可以请求新的访问令牌。在步骤211中,第一系统108通过第一系统的服务器268向授权系统102请求新的访问令牌。第一系统的服务器268将数字签名的刷新令牌参数发送到授权系统102。第一系统的服务器268可以通过将数字签名的刷新令牌参数传递到授权系统102来调用授权系统的api功能调用(例如,“刷新令牌(refreshtoken)”功能调用)。数字签名的刷新令牌参数可以直接或间接地传递到授权系统102。授权系统102可以验证刷新令牌。然后,授权系统102可以将访问令牌传送到第一系统108。刷新令牌可以有助于完全自主的第三方授权,例如,允许在登记后用户100无需其它额外动作即可授予授权。在非限制性实施例中,刷新令牌不会过期,且可以仅在明确撤销时不再有效。
72.在步骤212中,第一系统108将数字签名的访问令牌发送到授权系统102。第一系统108可以向授权系统102进行api调用以传递数字签名的访问令牌。这不同于现有oauth技术,在所述现有oauth技术中,第二系统106依赖于承载令牌以允许api调用。此处,在非限制性示例中,第二系统106验证令牌源自第二系统106,因为所述第二系统使用第一系统的公钥来验证访问令牌的数字签名。在非限制性实施例中,数字签名的访问令牌可以由授权系统102验证。
73.在涉及oauth或类似实施方案的非限制性实施例中,客户端(例如,oauth客户端)
可以在令牌中包括格式由jwt标准指定的在issued at claim(“iat”)字段。对于使用任何给定刷新令牌的每次调用,iat字段会单调递增。应了解,可以使用各种形式的结构化数据。此外,可以使用各种机制来改变刷新令牌的有效负载。在有效负载中保留每个调用的计数充当对攻击的对策,在所述攻击中,攻击者以某种方式获得令牌,所述令牌包括作为有效负载的刷新令牌和客户端标识符。在这种情境中,攻击者可能重新使用此jwt令牌来获得额外访问令牌,以用于获得刷新令牌的使用期限(其可以约为数月或甚至数年)。然而,如果由客户端创建的令牌具有不断变化的有效负载,例如iat字段中的递增/变化值,则单个令牌不可以重复使用两次。然而,攻击者可能盗取两个或更多个令牌,并且以循环方式使用它们以实现每个请求的有效负载不同于前一有效负载的结果。在这种情况下,使iat字段的值单调递增使先前在协议的此部分中创建的所有令牌不可用。因此,被盗和/或受损令牌将对潜在攻击者没有价值。
74.在非限制性实施例中,刷新令牌可以在预定时间段内有效。预定时间段可以由用户100、第一系统108或第二系统106设置。在刷新令牌到期时,第一系统108无法获得用以发起交易的访问令牌。这使得用户100通过重新进行登记流程(步骤201-210)来重新授予访问第一系统108的权限。在非限制性实施例中,响应于确定刷新令牌已失效,将web服务调用发布到用户100,以使得用户100确定是否应通过更新刷新令牌来延长对第一系统108的许可。在非限制性实施例中,将例如电子邮件、应用程序通知之类的另一通信方法发送到用户100以更新刷新令牌。授权系统102可以通过将新的刷新令牌返回到第一系统108来响应api调用,从而确保第一系统108可以编程方式获得新的刷新令牌而无需人为干预。
75.现有的oauth协议不允许访问令牌在创建后失效,并且不提供飞行中令牌撤销。oauth令牌可以在oauth令牌中指定的并由令牌创建者定义的固定时间之前有效。在非限制性实施例中,访问令牌创建后的失效和飞行中令牌撤销通过以下步骤提供。
76.在步骤213中,用户100可以登录第二系统的网站256并从第一系统108撤回访问。在非限制性实施例中,用户100可以通过第一系统的网站258登录第二系统的网站256。在其它非限制性实施例中,用户100可以直接登录第二系统的网站256。用户100可以撤销对第一系统108的所有许可,或者用户100可以仅撤销对第一系统108的一些许可。
77.在步骤214中,第二系统106用授权系统102记录(例如,日志)访问的撤回(例如,撤销)。
78.在步骤215中,授权系统102在其许可数据库110中记录(例如,日志)访问的撤回。撤回日志可包括列出例如第一系统标识符之类的第一系统的标识,以及例如许可数据库110中的用户标识符之类的用户标识。所述撤回可包括正被撤回的许可的列表。第一系统108可以针对一些用户撤回,但对于其它用户仍然具有许可。
79.对于由第一系统108进行的任何飞行中业务交易,第二系统的网站256的授权系统102检查其许可数据库110,并且响应于确定访问未被撤销,执行步骤216。第二系统的网站256可以通过搜索许可数据库110以获得第一系统标识符和用户标识符来检查许可数据库110。
80.在步骤216中,授权系统102通过准许由第一系统108代表用户100调用第二系统106上可用的服务270(例如,特征、动作、交易和/或访问)来允许访问。如果访问已被撤销,则将不执行步骤216,并且授权系统102将不允许第一系统108调用第二系统106的服务270。
81.现参考图3,示出根据非限制性实施例的序列图。应了解,图3中所示的序列仅出于示例目的,并且可能变化。
82.在步骤301中,实体服务器358将令牌发送到政策执行点(pep)362。pep362可以是例如将规则应用于输入的数据(例如,令牌)的网络装置。令牌可以包括实体标识、用户标识和实体服务器358所允许的许可的范围。
83.在步骤302,pep 362用来自公钥/私钥对的两个密钥中的一个验证令牌,使得另一密钥由实体服务器358持有,所述实体服务器使用此另一密钥对令牌进行签名。
84.在步骤303,pep 362通过查询撤销列表380来检查令牌以确定其是否已被撤销(撤销流程375可独立于运行时令牌且不是oauth协议的一部分)。撤销列表380可包括实体标识的列表。在非限制性实施例中,撤销流程375可以遵循步骤213-215,如图2中所示。在撤销流程375中,用户300可以访问门户388以撤销对实体服务器358的授权。然后,门户388可以用授权服务器382记录撤销。授权服务器382可以用令牌数据库390记录(例如,日志)撤销,并且可以将实体标识和用户标识添加到撤销列表380。
85.在步骤304,一旦令牌被验证,pep 362就允许实体服务器358访问服务370(例如,特征、支付、动作、交易、分析、更新、配置文件等)。在非限制性实施例中,pep 362可以检查请求的服务370,以在允许实体服务器358访问服务370之前确定服务370是否包括在实体服务器358所允许的许可的范围内。
86.现参考图4,示出根据非限制性实施例的装置900的示例组件的图。作为示例,装置900可以对应于图1中的用户装置104、第一系统108、第二系统106和/或授权系统102、图2中的第一系统的服务器268和/或图3中的实体服务器358、pep 362和/或授权服务器382。在一些非限制性实施例中,此类系统或装置可包括至少一个装置900和/或装置900的至少一个组件。所示的组件的数量和布置作为示例提供。在一些非限制性实施例中,与图4中所示的那些相比,装置900可包括额外组件、更少组件、不同组件或以不同方式布置的组件。另外或替代地,装置900的一组组件(例如,一个或多个组件)可以执行被描述为由装置900的另一组组件执行的一个或多个功能。
87.如图4中所示,装置900可包括总线902、处理器904、存储器906、存储组件908、输入组件910、输出组件912和通信接口914。总线902可包括准许装置900的组件之间的通信的组件。在一些非限制性实施例中,处理器904可以硬件、固件,或硬件和软件的组合实施。例如,处理器904可包括处理器(例如中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)等)、微处理器、数字信号处理器(dsp)和/或可被编程以执行功能的任何处理组件(例如现场可编程门阵列(fpga)、专用集成电路(asic)等)。存储器906可包括随机存取存储器(ram)、只读存储器(rom),和/或存储供处理器904使用的信息和/或指令的另一类型的动态或静态存储装置(例如,闪存存储器、磁存储器、光学存储器等)。
88.继续参考图4,存储组件908可以存储与装置900的操作和使用相关的信息和/或软件。例如,存储组件908可包括硬盘(例如,磁盘、光盘、磁光盘、固态磁盘等)和/或另一类型的计算机可读介质。输入组件910可包括准许装置900例如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关、麦克风等)接收信息的组件。另外或替代地,输入组件910可包括用于感测信息的传感器(例如,全球定位系统(gps)组件、加速度计、陀螺仪、致动器等)。输出组件912可包括从装置900提供输出信息的组件(例如,显示器、扬声器、一个或
多个发光二极管(led)等)。通信接口914可包括使装置900能够例如经由有线连接、无线连接或有线和无线连接的组合与其它装置通信的收发器类组件(例如,收发器、单独的接收器和发送器等)。通信接口914可以准许装置900从另一装置接收信息和/或提供信息给另一装置。例如,通信接口914可包括以太网接口、光接口、同轴接口、红外接口、射频(rf)接口、通用串行总线(usb)接口、接口、蜂窝网络接口等。
89.装置900可以执行本文中所描述的一个或多个过程。装置900可以基于处理器904执行由存储器906和/或存储组件908等计算机可读介质存储的软件指令来执行这些过程。计算机可读介质可包括任何非瞬态存储器装置。存储器装置包括位于单个物理存储装置内部的存储器空间或散布于多个物理存储装置上的存储器空间。软件指令可以经由通信接口914从另一计算机可读介质或从另一装置读取到存储器906和/或存储组件908中。在被执行时,存储在存储器906和/或存储组件908中的软件指令可以使处理器904执行本文中所描述的一个或多个过程。另外或替代地,硬接线电路系统可替代软件指令或与软件指令结合使用以执行本文中所描述的一个或多个过程。因此,本文所描述的实施例不限于硬件电路系统和软件的任何特定组合。本文所使用的术语“被编程或配置”是指一个或多个装置上的软件、硬件电路系统或其任何组合的布置。
90.尽管已出于说明的目的详细地描述了实施例,但应理解,此类细节仅用于所述目的,而本公开不限于所公开的实施例,相反,旨在涵盖处于所附权利要求书的精神和范围内的修改和等同布置。例如,应理解,本公开预期,尽可能地,任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献