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

使用OpenID连接管理用多个认证提供者授予的权限对数据进行访问的方法与流程

2022-07-30 00:23:31 来源:中国专利 TAG:

使用openid连接管理用多个认证提供者授予的权限对数据进行访问的方法
技术领域
1.本公开一般而言涉及访问管理系统,并且更特别地涉及与多个认证提供者一起使用的访问管理系统。


背景技术:

2.在现代经济中,只有授权用户才能访问信息对于保护数字资产至关重要。对服务器和网站的授权包括对这些服务器和网站的潜在用户的认证。每个服务器和网站可能都有其自己专有的认证方法,但这会迅速导致认证方法的激增(例如,许多密码)。
3.第三方认证服务可以用于跨多个服务器和网站对用户进行认证。例如,openid是一种识别用户的方法,无论他们访问哪个网站。openid的优点是利用openid的网站不需要一遍又一遍地询问相同的信息。用户仅将密码提供给openid提供者,然后openid提供者向用户正在访问的服务器和/或网站保证用户的身份。除了openid提供者之外,没有任何服务器和/或网站看到用户的密码。因此,用户不必担心危及他/她的身份的不安全的服务器或网站。


技术实现要素:

4.在本公开的实施例中,授权请求的方法包括从客户端接收访问令牌,以及使用从身份提供者的json web令牌(jwt)密钥集获得的密钥来验证访问令牌。该方法还包括检查访问令牌的受众是否有匹配的期望,以及检查访问令牌的每个访问声明是否无效。此外,该方法包括如果访问声明中的任何访问声明无效,那么使授权请求失败,但如果没有找到无效的声明,那么接受授权请求。
附图说明
5.并入本文并形成说明书的一部分的附图图示了本公开的实施例,并且与描述一起进一步解释本公开的原理并使相关领域的技术人员能够做出并使用实施例。
6.图1图示了根据本公开的示例实施例的认证过程的框架。
7.图2图示了根据本公开的其它示例实施例的认证过程的另一个框架。
8.图3图示了根据本公开的示例实施例的认证过程的算法。
9.图4描绘了根据本公开的实施例的示例性计算机系统。
具体实施方式
10.将参考附图描述本公开。在附图中,相同的参考标号指示相同或功能相似的元素。此外,参考标号的最左边的数位标识该参考标号第一次出现的附图。
11.下面的具体实施方式参考附图图示了与本公开一致的示例性实施例。具体实施方式中对“一个示例性实施例”、“示例性实施例”、“示例示例性实施例”等的引用指示所描述
的示例性实施例可以包括特定的特征、结构或特性,但每个示例性实施例不一定必须包括特定的特征、结构或特性。此外,这些短语不一定指相同的示例性实施例。另外,当本公开结合示例性实施例描述特定的特征、结构或特性时,相关领域的技术人员将知道如何结合其它示例性实施例来影响这样的特征、结构或特性,无论是否被明确描述。
12.本文描述的示例性实施例提供说明性示例而不是限制性的。其它示例性实施例是可能的,并且可以在本公开的精神和范围内对示例性实施例进行修改。因此,具体实施方式并不限制本发明。相反,仅以下权利要求及其等同形式定义了本公开的范围。
13.硬件(例如,电路)、固件、软件或它们的任何组合可以用于实现实施例。实施例还可以被实现为存储在机器可读介质上并由一个或多个处理器读取和执行的指令。机器可读介质包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何机制。例如,在一些实施例中,机器可读介质包括只读存储器(rom);随机存取存储器(ram);磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)等。另外,固件、软件、例程、指令可以在本文中被描述为执行某些动作。但是,应该认识到的是,这样的描述仅仅是为了方便,并且动作是由执行固件、软件、例程和/或指令的计算设备、处理器、控制器或其它设备产生的。
14.对术语“模块”的任何引用应理解为包括软件、固件和硬件(诸如,一个或多个电路、微芯片或设备或其任何组合)及其任何组合中的至少一种。此外,相关领域的技术人员将理解,每个模块在实际设备内可以包括一个或多个组件,并且形成所描述的模块的一部分的每个组件可以协同或独立于形成模块的一部分的任何其它组件工作。相反,本文描述的多个模块可以表示实际设备内的单个组件。另外,模块内的组件可以在单个设备中或以有线或无线方式分布在多个设备中。
15.示例性实施例的以下具体实施方式将充分揭示本公开的一般性质,以便其它人可以通过应用相关领域技术人员的知识,容易地修改和/或定制这些示例性实施例的各种应用,而不会过度实验和脱离本公开的精神和范围。因此,这些修改落入基于本文所呈现的教导和指导的示例性实施例的含义和多个等同形式内。这里,短语或术语用于描述而非限制性目的,使得本说明书的术语或短语应由相关领域的技术人员根据本文的教导来解释。
16.如上所述,只有授权用户才能访问信息对于保护数字资产至关重要。云服务提供者是适当的授权和认证对其尤为重要的数字服务提供者的示例。在云服务提供者中,可以代表多个组织存储数据。虽然这些单独组织中的每一个都控制其自己的个人用户,但这些组织中的每一个都希望在不将每个组织的用户数据库暴露给云服务提供者的情况下授予对云服务中某些数据元素的访问权限。
17.如上所述,由第三方供给身份的一种方法是通过openid。在部署openid的标准方式中,为特定应用配置了一个或有限数量的可信身份提供者。这意味着所有认证令牌可以通过使用身份提供者(或有限数量的可信身份提供者)的众所周知的配置,通过使用令牌中的颁发者(issuer)字段查找它们来被核实。
18.但是,并非特定服务提供者的所有用户都希望使用相同的身份提供者。特别地,用户可能需要向多个身份提供者注册。例如,用户可能需要向多个身份提供者注册,即使在使用同一个服务提供者时也是如此。例如,当服务提供者向其中每个环境使用不同的身份提供者的多个环境提供服务时,就会出现这种情况。这种情况的示例是服务提供者为多个设
施提供实时定位服务。特定用户可以访问两个或更多个设施(例如,医院、大学校园)并寻求在两个或更多个设施中的每一个处被识别,以便接收实时定位服务。当前的openid连接方法不允许与一个或多个用户相关联的多种身份提供者与单个服务提供者一起工作。
19.认识到识别空间中的这个问题,发明人设计了一种方法来允许多个用户使用不止一个身份提供者,同时仍然能够从特定服务提供者获得期望的服务。在本方法的特定实施例中,期望的服务是基于实时定位的服务,当每个用户在多个设施处被识别时,使得该服务在这些设施处可用。在随后的讨论中,使用基于实时定位的服务作为实施例,但是本领域普通技术人员将认识到相同的方法可以用于其它服务和相关联的服务提供者。
20.在设计允许多个用户使用其自己的身份提供者,同时仍然能够获得期望服务的方法时,该方法需要提供一种手段来知道应该针对哪个身份提供者核实令牌。这是通过要求在令牌中包含额外的声明,然后使用该声明来查找用于令牌核实的身份提供者来完成的。此外,该方法需要核实访问的数据元素与令牌中使用的身份提供者相关联。
21.图1图示了根据本公开的示例实施例的认证过程的框架。用户110尝试登录到服务提供者120,或安全访问来自服务提供者120的服务。服务提供者120要求用户110的身份核实。为了实现这一点,服务提供者120将用户110重定向到身份提供者130。用户110将其核实信息输入到身份提供者130中,如果正确,那么向服务提供者120认证用户110。用户110然后从服务提供者120获得期望的服务。这是本公开的实施例的简单图示,具有一个用户和一个身份提供者,但是本领域的普通技术人员将理解,多于一个用户也落入本公开的范围内。
22.图2提供了根据本公开的示例实施例的具有多个用户和多个身份提供者的认证过程的另一个图示。应当注意的是,不需要两个或更多个身份提供者来收到本公开的各个方面的益处。在该图示中,有两个用户210a、210b。用户210a尝试登录到服务提供者220,或安全访问来自服务提供者220的服务。服务提供者220要求用户210a的身份核实。为了实现这一点,服务提供者220将用户210a重定向到身份提供者230a,身份提供者230a是用户210a使用的身份提供者。用户210a将其核实信息输入到身份提供者230a中,如果正确,那么向服务提供者220认证用户210a。用户210a然后从服务提供者220获得期望的服务。类似地,也可以识别用户210b以从服务提供者220接收服务。用户210b尝试登录到服务提供者220,或安全访问服务提供者220的服务。服务提供者220要求用户210b的身份核实。为了实现这一点,服务提供者220将用户210b重定向到身份提供者230b,身份提供者230b是用户210b使用的身份提供者。用户210b将其核实信息输入到身份提供者230b中,如果正确,那么向服务提供者220认证用户210b。用户210b然后从服务提供者220获得期望的服务。虚线显示连接身份提供者230a、230b和服务提供者220,因为连接是隐式连接(基于先前信任),而不是在认证时执行的实际数据连接。
23.每个数据元素都与一个或多个身份提供者相关联。身份提供者是openid连接提供者或颁发者,并且由颁发者uri识别,该颁发者uri又是指向授权服务器的指针。授权服务器的要求包括:
24.1./.well-known/openid-configuration必须是针对授权服务器的支持的提供者配置端点(即,如果颁发者uri是https://idp.example.com/,那么https://idp.example.com/.well-known/openid-configuration必须是有效的端点)。
25.2.授权服务器必须能够发出“bearer”oauth访问令牌类型的json web令牌(jwt)
令牌。
26.访问令牌要求包括:
27.1.访问令牌必须是jwt bearer oauth访问令牌类型。
28.2.访问令牌必须包含以下声明:
[0029][0030]
下面提供了带有行号的示例性代码实现:
[0031]
[0032][0033]
对上述示例性代码实现的行的备注如下:
[0034]
第8行表明该令牌由使用5747976207073280数字标识符注册的认证提供者颁发。
[0035]
第9行表明主体auth0|5c545a0b75eb02096fdc3606可以访问由组织56315271拥有的所有数据元素。
[0036]
第10-12行表明主体auth0|5c545a0b75eb02096fdc3606可以访问数据元素562949、563650和563853。
[0037]
用于核实访问权限的示例性算法如下。当从客户端接收令牌时,将完成以下核实:
[0038]
1.声明“https://www.service_provider.com/idp”的值用作数据库中的键,以查找已颁发令牌的身份提供者。
[0039]
2.使用从身份提供者的jwt密钥集中获得的密钥进行验证访问令牌的真实性和完
整性。
[0040]
3.检查令牌的受众以查看它是否符合预期。
[0041]
4.如下检查访问声明:
[0042]
a.所有组织声明均针对idp有权授予访问权限的组织;
[0043]
b.所有数据元素声明均针对idp有权授予访问权限的数据元素;
[0044]
c.如果没有找到无效声明,那么接受令牌并将其用于进一步的访问决策(标准jwt处理);以及
[0045]
d.如果找到无效声明,那么授权失败并且不会授予对资源的访问权项。
[0046]
如以上示例所示,可以以不同的粒度级别提供访问。例如,声明元素https://www.service_prov.com/access提供通配(wild card)访问,即对允许认证提供者授予访问权限的所有数据元素的访问。另一个声明元素可以提供低粒度级别,因为仅提供对“dataelementid”的访问。此外,另一个声明元素可以提供中间粒度级别,因为提供对由给定组织(例如,organizationid)拥有的所有数据元素的访问。这种访问层次结构可以用于避免冗长的令牌,否则将须描述由给定组织拥有的每个访问权限。例如,这样的层次结构在由一个安全公司提供服务的多企业园区(例如,租用园区的不同部分的两个或更多个公司)中是有用的。安保人员可能会被授予访问整个园区的权限,而一家公司的员工可能只能访问该公司租用的建筑物。第二家公司的员工可能只能访问他们单独的建筑物,但不能访问由第一家公司租用的建筑物。最后,在第一家公司中,角色有限的员工可能只能访问建筑物中的与其雇用角色相称的一个建筑物。
[0047]
图3图示了认证过程的上述示例性方法300。方法300开始于步骤310。在步骤310中,声明元素被用作数据库中的键以找到颁发令牌的身份提供者。在上面的示例中,声明“https://www.service_provider.com/idp”。
[0048]
在步骤320中,使用身份提供者的jwt密钥集中的密钥来验证访问令牌的真实性和完整性。
[0049]
在步骤330处,检查访问声明。针对idp有权授予访问权限的组织检查所有组织声明。针对idp有权授予访问权限的数据元素检查所有数据元素声明。
[0050]
基于步骤330中的检查,在步骤340中,如果没有找到无效声明,那么接受令牌并将其用于进一步的访问决策(标准jwt处理)。
[0051]
基于步骤330中的检查,在步骤350中,如果找到无效声明,那么授权失败并且不授予对资源的访问权。在替代实施例中,基于已授予访问权限的那些访问声明来提供选择性访问。
[0052]
例如,可以使用一个或多个计算机系统,诸如图4中所示的计算机系统400,来实现各种实施例。例如,计算机系统400可以用于实现图1-3中描述的系统和过程。计算机系统400可以是能够执行本文描述的功能的任何计算机。
[0053]
计算机系统400可以是能够执行本文描述的功能的任何众所周知的计算机。
[0054]
计算机系统400包括一个或多个处理器(也称为中央处理单元或cpu),诸如处理器404。处理器404连接到通信基础设施或总线406。
[0055]
一个或多个处理器404可以各自是图形处理单元(gpu)。在实施例中,gpu是处理器,它是专门设计为处理数学密集型应用的电子电路。gpu可以具有并行结构,这种结构对
于大数据块,诸如计算机图形应用、图像、视频等常见的数学密集型数据的并行处理是高效的。
[0056]
计算机系统400还包括通过(一个或多个)用户输入/输出接口402与通信基础设施406通信的(一个或多个)用户输入/输出设备403,诸如监视器、键盘、定点设备等。
[0057]
计算机系统400还包括主存储器或主要存储器408,诸如随机存取存储器(ram)。主存储器408可以包括一级或多级高速缓存。主存储器408在其中已存储控制逻辑(即,计算机软件)和/或数据。
[0058]
计算机系统400还可以包括一个或多个辅助存储设备或存储器410。辅助存储器410可以包括例如硬盘驱动器412和/或可移动存储设备或驱动器414。可移动存储驱动器414可以是软盘驱动器、磁带驱动器、光盘驱动器、光存储设备、带备份设备和/或任何其它存储设备/驱动器。
[0059]
可移动存储驱动器414可以与可移动存储单元418交互。可移动存储单元418包括其上存储有计算机软件(控制逻辑)和/或数据的计算机可用或可读存储设备。可移动存储单元418可以是软盘、磁带、光盘、dvd、光存储盘和/任何其它计算机数据存储设备。可移动存储驱动器414以众所周知的方式从可移动存储单元418读取和/或写入到可移动存储单元418。
[0060]
根据示例性实施例,辅助存储器410可以包括用于允许计算机程序和/或其它指令和/或数据被计算机系统400访问的其它部件、工具或其它方法。这样的部件、工具或其它方法可以包括例如可移动存储单元422和接口420。可移动存储单元422和接口420的示例可以包括程序盒和盒接口(诸如,在视频游戏设备中找到的)、可移动存储器芯片(诸如,eprom或prom)和相关联的插槽、记忆棒和usb端口、存储卡和相关联的存储卡插槽,和/或任何其它可移动存储单元和相关联的接口。
[0061]
计算机系统400还可以包括通信或网络接口424。通信接口424使计算机系统400能够与远程设备、远程网络、远程实体等的任何组合(单独地和共同地由参考标号428引用)进行通信和交互。例如,通信接口424可以允许计算机系统400通过通信路径426与远程设备428通信,通信路径426可以是有线和/或无线的,并且可以包括lan、wan、互联网等的任何组合。控制逻辑和/或数据可以经由通信路径426传输到计算机系统400和从计算机系统400传输。
[0062]
在实施例中,包括其上存储有控制逻辑(软件)的有形计算机可用或可读介质的有形装置或制品在本文中也称为计算机程序产品或程序存储设备。这包括但不限于计算机系统400、主存储器408、辅助存储器410和可移动存储单元418和422,以及实施上述任何组合的有形制品。当由一个或多个数据处理设备(诸如,计算机系统400)执行时,这种控制逻辑使这种数据处理设备如本文所述那样操作。
[0063]
基于包含在本公开中的教导,对于(一个或多个)相关领域的技术人员来说,如何使用除图4中所示之外的数据处理设备、计算机系统和/或计算机体系架构来制作和使用本公开的实施例将是清楚的。特别地,实施例可以使用除本文描述的那些之外的软件、硬件和/或操作系统实现来操作。
[0064]
本文讨论的技术涉及服务器、数据库、软件应用和其它基于计算机的系统,以及所采取的动作和发送到这些系统和从这些系统发送的信息。本领域的普通技术人员将认识
到,基于计算机的系统的固有灵活性允许在组件之间和组件当中对任务和功能进行多种可能的配置、组合和划分。例如,本文讨论的服务器处理可以使用单个服务器或组合工作的多个服务器来实现。数据库和应用可以在单个系统上实现或分布在多个系统上。分布式组件可以按顺序或并行操作。
[0065]
虽然本主题已针对其具体示例实施例进行了详细描述,但应认识的,本领域的技术人员在获得对前述内容的理解后,可容易地产生对此类实施例的替代、变化和等效形式。因而,本公开的范围是示例性的而不是限制性的,并且本公开不排除包括对本主题的此类修改、变化和/或添加,如对于本领域普通技术人员来说将清楚的。
再多了解一些

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

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

相关文献