CN112118214B - 在多租户框架内控制对微服务的访问 - Google Patents
在多租户框架内控制对微服务的访问 Download PDFInfo
- Publication number
- CN112118214B CN112118214B CN201910904392.7A CN201910904392A CN112118214B CN 112118214 B CN112118214 B CN 112118214B CN 201910904392 A CN201910904392 A CN 201910904392A CN 112118214 B CN112118214 B CN 112118214B
- Authority
- CN
- China
- Prior art keywords
- entity
- entities
- indication
- access
- owner
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/104—Grouping of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例涉及在多租户框架内控制对微服务的访问。在一些示例中,一种系统包括被服务供应方管理的网络,该网络被配置为向租户集提供对一个或多个对象的访问,每一个租户都具有一个或多个用户,服务供应方和租户集是形成层级结构的实体集的一部分,并且控制器具有对网络的访问权。控制器被配置为获取指示参数集的数据,其中指示参数集的数据与实体集中的所有者实体相关联,生成合并参数集的规则,该规则使控制器能够控制对一个或多个对象中的对象的访问,并且将规则添加到规则数据库,其中规则数据库可被控制器访问。
Description
技术领域
本公开涉及计算机网络。
背景技术
计算机网络是可以交换数据和共享资源的互连计算设备的集,并且与网络相关联的安全策略可限制用户在计算机网络内执行动作的能力。在一些示例中,计算机网络可要求用户名和密码来访问网络,并且计算机网络可基于用户的用户名或其他登录证书来跟踪和限制对计算机网络的一些对象和服务的访问。
Keystone是用于云计算的OpenStackTM开源软件平台的组件。一般来说,Keystone是开源软件,其能够在计算机网络内实现认证(authN)和高级授权(authZ)。更具体地,Keystone支持基于令牌的authN和用户服务授权。Keystone可以在计算机网络内跟踪特定用户的动作,并且Keystone可附加地基于分配给用户的“角色”或一组角色来限制用户的动作。此外,计算机网络内用户的特定动作或特权可以称为“能力”。
网络服务供应方提供服务,诸如通过网络核心(VPN服务)或订阅者将客户站点链接到服务、安全、通道、虚拟专用网络、过滤、负载平衡、VoIP/多媒体处理以及针对进入数据包的各种类型的应用程序代理(HTTP、XML、WAP等)。服务供应方还提供内容特定的服务,用于提高用户体验的质量,例如视频流和高速缓存。服务供应方可管理计算机网络,并且服务供应方网络内的一个或多个应用程序可使用Keystone来控制对与计算机网络交互的多个租户的用户可用的服务。在一些情况下,多个租户中的每个租户都可以包括计算机网络的一个或多个用户。
发明内容
一般地,本公开的目的在于提供用于在多租户框架内控制访问对象(例如,微服务、服务、设备、系统、容器和应用程序)的设备、系统和技术。例如,网络可包括服务供应方和租户集,并且服务供应方和租户集包括在网络的“实体”集中。实体集可以层级结构来组织,使得实体集中的每个实体与实体集的父实体和一个或多个子实体中的至少一个相关联。控制器可基于存储在规则数据库中的一个或多个规则授予实体集对对象的访问权。例如,为了获取对对象的访问权,实体集中的实体可以向控制器发送服务请求,并且控制器可基于存储在规则数据库中的一个或多个规则授予或不授予实体对对象的访问权。在一些情况下,每个对象可与存储在规则数据库中的规则相关联,其中相应的规则包括指示被允许访问对象的实体的信息。以这种方式,控制器可基于与对象相关联的相应规则来确定实体是否被授予对对象的访问权。
在一些示例中,可以将实体集中的每个实体配置为创建对象并创建规则,该规则管理在网络内对对象的访问。创建对象的实体在本文可称为对象的“所有者”实体。所有者实体可与层级结构中的父实体和子实体集相关联。此外,所有者实体的父实体可与另一个相应的父实体和另一个相应的子实体集相关联。在一些情况下,与所有者实体相关联的子实体集中的每个子实体可与另一个相应的子实体集关联。以这种方式,层级结构可被建模为“家族树”,其中一些实体“起源于”其他实体,并且一些实体是其他实体的“祖先”。在一些示例中,该层级结构可用作所有者实体指定对由所有者实体创建的相应对象访问的工具。例如,所有者实体可以向控制器发送消息以创建对象,指定对象与实体集中的至少一个其他实体共享。在一些情况下,实体可基于其他实体在层级结构中相对于所有者实体的位置来指定该对象与其他实体共享。在一个示例中,所有者实体可指定要与所有者实体的父实体共享的对象。控制器可基于所有者实体提供的指示创建规则,并将规则保存在规则数据库中。
本公开的技术可以提供一个或多个优点。例如,通过使所有者实体能够基于其他实体在层级结构中相对于所有者实体的位置,指定将被提供访问对象的实体,控制器可以向所有者实体提供更多粒度的控制。换言之,控制器可使所有者实体指定将被允许访问由控制器实体创建的对象的非常特定的实体组,由此提供控制对网络内对象的访问的有效方式。
在一些示例中,一种系统包括被服务供应方管理的网络,该网络被配置为向租户集提供对一个或多个对象的访问,每一个租户都具有一个或多个用户,服务供应方和租户集是形成层级结构的实体集的一部分,其中形成层级结构的实体集中的每个实体与实体集的父实体和实体集的一个或多个子实体中的至少一个实体相关联,并且系统包括控制器,其具有对网络的访问权。控制器被配置为获取指示参数集的数据,其中指示参数集的数据与实体集的所有者实体相关联,生成合并参数集的规则,其中规则使控制器能够控制对一个或多个对象中的对象的访问,并将规则添加到规则数据库,其中控制器可访问规则数据库。
在一些示例中,一种方法包括:通过具有对网络的访问权的控制器获取指示参数集的数据,其中网络被服务供应方管理并且被配置为向租户集提供对一个或多个对象的访问,每一个租户都具有一个或多个用户,服务供应方和租户集是形成层级结构的实体集的一部分,其中形成层级结构的实体集中的每个实体与实体集的父实体和实体集的一个或多个子实体中的至少一个相关联,并且其中指示参数集的数据与实体集中的所有者实体相关联。此外,该方法包括:生成合并参数集的规则,其中规则使控制器能够控制对一个或多个对象中的对象的访问,并将规则添加到规则数据库,其中控制器可访问规则数据库。
在一些示例中,一种非暂态计算机可读介质包括用于使一个或多个处理器执行以下操作的指令:获取指示参数集的数据,其中网络被服务供应方管理并且被配置为向租户集提供对一个或多个对象的访问,每一个租户都具有一个或多个用户,服务供应方和租户集是形成层级结构的实体集的一部分,其中形成层级结构的实体集中的每个实体与实体集的父实体和实体集的一个或多个子实体中的至少一个相关联,并且其中指示参数集的数据与实体集中的所有者实体相关联;生成合并参数集的规则,规则使控制器能够控制对一个或多个对象中的对象的访问;并将规则添加到规则数据库,其中控制器可访问规则数据库。
本发明内容部分用于提供本公开所述主题的概述。其并不用于提供以下附图和说明中详细描述的系统、设备和方法的排他性或详尽的说明。本公开的一个或多个示例的进一步细节在附图和以下描述中阐述。从说明书、附图和权利要求书中可以明白其他特征、对象和优点。
附图说明
图1示出了根据本文描述的一种或多种技术的示例网络系统。
图2是示出根据本文描述的一个或多个技术的服务供应方、租户集的层级结构的框图。
图3是示出根据本公开的一种或多种技术的用于生成规则以管理对对象的访问以及控制对对象的访问的示例操作的流程图。
图4是示出根据本公开的一种或多种技术的用于生成与实体集中的实体相对应的项目的示例操作的流程图。
具体实施方式
图1示出了根据本文描述的一种或多种技术的示例性网络系统。图1的示例网络系统包括被服务供应方12管理的服务供应方网络2,其向服务供应方12和/或租户16A-16N(统称为“租户16”)提供微服务。以这种方式,控制器25可以向服务供应方12的“用户”和租户16(统称为“实体12、16”)提供网络服务。即,服务供应方网络2为实体12、16的用户提供认证和网络访问的建立,使得实体12、16可以获取对对象30A-30N(统称为“对象30”)的访问。在一些示例中,对象30可以包括可相关于本公开的一个或多个方面而适合使用的数据、信息集、应用程序、设备和/或系统或者任何其他项目、事物或概念。
尽管针对操作服务供应方网络2的服务供应方12进行了描述,但在一些示例中,服务供应方网络2可表示由大型企业管理的企业网络。因此,对“服务供应方”或“供应方”的引用可以类似地表示“企业管理者”、“网络管理者”或“运营商”。此外,尽管主要针对意味着服务供应方网络服务的最终用户的“租户”进行描述,但本文描述的技术可类似地应用于服务供应方的“客户”和客户设备,诸如手机信号塔、多租户单元(MTU)、住宅聚集点等。客户的示例可以包括大学、企业、零售商或者任何其他购买、租赁或以其他方式使用服务供应方网络2提供的服务的实体。
在一些示例中,服务供应方网络2实施多租户框架,用于提供与实体12、16对应的对象级访问控制。例如,服务供应方网络2的控制器20可维持对应于对象30的集的规则集,规则集管理每个实体12、16对对象30的访问级别。在一些示例中,服务供应方网络2使用OpenStackTM开源软件平台内的Keystone身份服务组件,以方便提供对象级访问控制。Keystone是提供身份访问服务的开源软件。在一些情况下,服务供应方网络2通过利用Keystone来构建面向业务的访问控制服务可能是有益的,因为Keystone与文档齐全的应用程序编程接口(API)、强大的社区支持和基于插件的架构相关联。在一些情况下,Keystone包括以下概念:资源、身份和角色分配。
在一些示例中,Keystone资源包括域和项目。在一些情况下,Keystone域可与一个或多个Keystone项目相关联,并且每个Keystone项目可与另一个或多个Keystone项目相关联。以这种方式,Keystone域和相应的Keystone项目可形成层级结构,其中所有的Keystone项目都“起源于”Keystone域。此外,层级结构可包括级集,其中Keystone域代表层级结构的第一级,与Keystone域相关联的Keystone项目集代表层级结构的第二级,并且与Keystone项目集中的每个对应的Keystone项目相关联的附加Keystone项目代表层级结构的第三级,依此类推。在一些情况下,Keystone身份可包括用户和组。用户可在Keystone项目或Keystone域中具有角色。组可以是与特定用户相关联的资源集合。另外,在Keystone中,角色分配可以是资源和身份之间的关联。例如,角色分配可以是用户与项目之间的关联,由此使用户能够访问对象30中可用于项目的一个或多个对象。
服务供应方网络2可使用全限定名来唯一地标识资源。在一些示例中,全限定名可包括资源集合路径。在一些示例中,设备可以在项目下建模,其中项目在域下建模。这种示例的全限定名可以是[‘sp-domain’,‘coke’,‘device’],其中,‘sp domain’表示域的名称,‘coke’表示项目的名称,以及‘device’表示设备的名称。如此,与设备相关联的全限定名可包括项目之间的父子关系和/或域与项目之间的父子关系。此外,全限定名可包括用于执行完整性检查的参考边缘。全限定名中的嵌入信息可用于多租户框架。在一些示例中,服务供应方网络2可实施编制。“编制”通常是指为编制平台可用的主机服务器提供、安排和管理虚拟执行元件和/或在这种虚拟执行元件上执行的应用程序和服务。具体地,容器编制允许容器协调,并且涉及通过容器编制平台将例如容器部署、管理、缩放和配置到主机服务器。编制平台的示例包括Kubernetes、Docker swarm、Mesos/Marathon、OpenShift、OpenStack、VMware和Amazon ECS。
为了在OpenStackTM开源软件平台内实施Keystone身份服务组件,服务供应方网络2可将实体12、16组织为域和项目的层级结构。例如,服务供应方12可表示为Keystone域或Keystone项目。此外,租户16中的每个租户可表示为Keystone项目。以这种方式,服务供应方12和租户16可形成层级结构。
用户接口14和18A-18N中的每一个(统称为“用户接口14、18”)可以是用于与一个或多个用户交互和/或管理交互、输入和/或输出的设备或设备集或者是它们的一部分。因此,用户接口14、18可包括用于这种交互的任何现在已知的或以后开发的设备(例如,键盘,指向设备,触摸屏设备,按钮,小键盘,灯,用于语音命令、响应和/或其他交互的麦克风和/或音频扬声器,显示设备,触摸屏设备或任何它们的组合)。如果包括在用户接口14、18的用户接口内,则显示器可包括液晶显示器(LCD)、发光二极管(LED)或有机发光二极管(OLED)的任何组合。在一些示例中,显示器可包括触摸屏或者其他物理或直接交互设备。用户接口14、18中的每一个可对应于实体12、16的用户或租户(即,可被用户或租户访问或操作)。例如,用户接口14可对应于服务供应方12,用户接口18A可对应于租户16A,用户接口18B可对应于租户16B,以及用户接口18N可对应于租户16N。
用户接口14、18可被配置为显示或呈现与规则角色、能力、服务供应方12、租户16、对象30相关的信息或其它信息。在一些情况下,用户接口14、18可接收用户输入。例如,用户输入的形式可以是在键盘上按下按钮或从触摸屏选择图标。在一些示例中,用户接口18A的用户输入可包括与租户16A相关联的用户的登录证书。基于登录证书,服务供应方网络2可以对用户进行认证,并生成指示用户的认证状态和与用户相关联的属性的断言。在一些情况下,属性可包括关于租户、角色和与用户关联的访问的信息。
在一些示例中,计算机程序可包含被设计为相互交互的对象。以这种方式,由服务供应方网络2提供的服务可包括多个对象,其中至少一些对象配置有API,能够与多个对象中的其他对象交互。服务供应方网络2的一些对象可包括RBAC控制的表述性状态转移(REST)应用编程接口(API)。如此,对服务供应方网络2内的对象的访问可以是RBAC控制的。REST API可确定用户在服务供应方网络2内的访问。在一些示例中,RBAC可基于与用户相关联的能力为用户显示或隐藏导航屏幕。在一些示例中,REST API可以是RBAC控制的,使得用户对屏幕具有只读访问权,但是不允许用户创建/或修改屏幕上呈现的对象。在一些示例中,由于用户接口布局可随着时间而改变,或者显示或呈现用户接口屏幕所需的REST API可以改变,因此将用户接口能力动态映射到REST API可以是有益的。
在一些示例中,服务供应方网络2可包括服务于业务的网络。至少一些租户16可表示业务内的业务单元,每个业务单元都具有一个或多个雇员。在一些情况下,每个雇员可代表用户。如果会计业务单元的初级会计雇员登录到与会计业务单元相关联的对应租户(例如,租户16A),则初级会计雇员可根据与初级会计雇员相关联的规则、特权和限制来访问服务供应方网络2。规则、特权和限制可表现为存储在控制器20的存储设备22中的规则集。例如,初级会计雇员能够访问初级会计雇员被限制查看和编辑的特权财务文档。在一些情况下,与租户16A相关联的高级会计雇员可被分配与初级会计雇员不同的访问级别,为高级会计雇员提供初级会计员工未被授予的特权。此外,如果产品开发业务单元的设计雇员登录到与产品开发业务单元相关联的相应租户(例如,租户16B),则设计雇员能够访问包括尚未发布产品的机密设计图的文档。例如,初级会计雇员和高级会计雇员无法访问设计图。
在其他示例中,服务供应方网络2可以被向客户提供基于订阅的程序的服务供应方来管理。在这种示例中,租户16的用户可以是服务供应方网络2的客户。存储设备22可包括规则集,其确定对这种客户约定的对象30的访问级别(例如,基于用户同意向服务供应方支付订阅服务费用)。例如,规则集可定义第一访问集和第二访问集。在一些情况下,如果第二用户订阅比第一用户更高的服务级别,则与第一访问级别提供给第一用户的访问权相比,第二访问级别为第二用户提供对服务供应方网络2更大的访问权。可代替地或者另外地,如果第二用户与第一用户相比订阅不同级别的服务,则与第一访问级别为第一用户所提供的相比,第二访问级别在一些情况下为第二用户提供服务供应方网络2的不同访问或能力。
在图1的示例中,服务供应方网络2包括接入网络6(“access network 6”),其经由服务供应方核心网络7提供到控制器20和对象30的连接。服务供应方核心网络7提供可供服务供应方12和/或租户16请求和使用的基于分组的服务。作为示例,核心网络7可提供例如批量数据传送、互联网协议电话(VoIP)、互联网协议电视(IPTV)、短消息服务(SMS)、无线应用协议(WAP)服务、特定于客户的应用服务或者任何其他现在已知或以后开发的基于网络的服务。例如,服务供应方核心网络7可包括局域网(LAN)、广域网(WAN)、互联网、虚拟LAN(VLAN)、企业LAN、层3虚拟专用网(VPN)、由操作接入网络6的服务供应方操作的互联网协议(IP)内联网、企业IP网络或它们的一些组合。在各种实施例中,服务供应方核心网络7连接至公共WAN、互联网或其它网络。在一些示例中,服务供应方核心网络7可执行一个或多个分组数据协议(PDP)(诸如IP(IPv4和/或IPv6)、X.25或点对点协议(PPP))以使能基于分组的服务传输。
接入网络6可包括到服务供应方网络2的入口,这允许服务供应方12和/或租户16与服务供应方网络2交换信息。服务供应方12的用户可以是服务供应方网络2的管理员。租户16的用户可以是例如代表企业、住宅用户或移动用户的订户(subscriber)。服务供应方12和租户16经由包括有线和/或无线通信链路的访问链路连接到接入网络6。如本文所使用的,术语“通信链路”包括任何形式的有线或无线的传输介质,并且可以包括诸如网络设备的中间节点。例如,每个访问链路可包括不对称DSL网络、WiMAX、T-1线路、综合业务数字网(ISDN)、有线以太网或蜂窝无线链路的方面。
网络服务供应方(例如,服务供应方12)可以操作或者在一些情况下可以租赁接入网络6的元件,以使对象30能够向服务供应方12和/或租户16提供服务。由此,接入网络6可表示聚合来自用于传输的一个或多个订户和/或来自服务供应方的服务供应方核心网络7的数据流量。接入网络6可包括耦合至服务供应方拥有或租用的聚合段和/或回程网络的多个“接入”段。接入网络的接入节点耦合到客户驻地设备(CPE)以处理层2(L2)或更高层处的订户分组。接入节点可包括数字订户线接入多路复用器(DSLAM)、MTU、无源光网络(PON)光线路终端设备(诸如具有微机电系统(MEMS)和硅上液晶(LCoS)的可重新配置光学分接多路复用器(ROADM))、基站侧网关(CSG)、eNode Bs、LTE/GSM/UMTS控制器、微波以及分布式基站上的虚拟多输入多输出(MIMO)。在有线网络运营商(多系统运营商(MSO))领域,有线电缆数据服务接口规范(DOCSIS)3.x标准指定信道连接和动态频率分配的方式。宽带电缆接入网络节点可包括电缆调制解调器终端系统(CMTS)和电缆调制解调器,例如作为聚合电缆接入平台(CCAP)解决方案的一部分。
接入网络6包括执行通信协议以传输控制和用户数据来促进服务供应方12、租户16、控制器20和对象30的任意组合之间的通信的网络节点。接入网络6可包括宽带接入网络、网络、无线LAN、公共交换电话网络(PSTN)或其它类型的接入网络,并且可以包括或以其它方式提供用于蜂窝接入网络(诸如无线接入网络(RAN))的连接。接入网络6的示例还可以包括符合通用移动电信系统(UMTS)架构的网络、称为长期演进(LTE)的UMTS演进、由互联网工程任务组(IETF)标准化的移动IP以及由第三代合作伙伴项目(3GPP)、第三代合作伙伴项目2(3GPP/2)和全球微波接入互操作性(WiMAX)论坛提出的其它标准。
接入网络6的传输节点将接入节点连接到启用区域间数据传输的边界节点。在一些示例中,边界节点包括区域边界路由器和自治系统边界路由器(ASBR)。边界节点(未示出)可以将接入网络6耦合到核心网络7。
服务供应方核心网络7(以下简称“核心网络7”)向附接至接入网络6的服务供应方12和租户16提供连通性,以与控制器20和对象30通信。核心网络7可表示由服务供应方拥有和操作以互连可包括接入网络6的多个网络的公共网络。核心网络7可实施多协议标签交换(MPLS)转发,并且在这种情况下可称为MPLS网络或MPLS骨干。在一些情况下,核心网络7表示提供来自一个或多个服务供应方的服务的多个相互连接的自治系统,诸如互联网。
接入网络6和核心网络7可以包括向订户应用服务的服务节点。服务节点示例包括L2供应方边缘(PE)或L3 PE路由器、宽带网络网关(BNG)、对等路由器、内容服务器、媒体网关、基站控制器等。所示网关8包括服务节点的示例。
管理至少部分服务供应方网络2的网络服务供应方通常向与访问服务供应方网络的设备相关联的订户提供服务。例如,所提供的服务可以包括传统互联网接入、VoIP、视频和多媒体服务、安全服务,并且使用点对点以太网服务、多点对多点以太网服务、点对多点以太网服务、全网格L3VPN和轴辐式L3VPN中的一种通过核心网络7链接客户站点。如上面关于接入网络6所描述的,核心网络7可支持连接到服务供应方网络接入网关以提供对所提供服务的访问的多种类型的接入网络基础设施。
在一个示例中,控制器20可包括处理电路(图1中未示出),其被配置为实施用于在服务供应方网络2内执行的功能性和/或处理指令。例如,控制器20可包括微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或等效的离散或集成逻辑电路或者任何前述设备或电路的组合。在一些示例中,控制器20生成规则集,其控制对对象30A-30N(统称为“对象30”)中的至少一个的访问。在一些情况下,对象30可表示控制器20管理访问的数据集、应用程序或信息集。例如,控制器20可根据规则集控制实体12、16对对象30的访问。
在图1所示的示例中,控制器20包括存储设备22、处理单元24和API服务器26。存储设备22可被配置为在操作期间在控制器20内存储信息。存储设备22可包括计算机可读存储介质或计算机可读存储设备。在一些示例中,存储设备22包括短期存储器或长期存储器中的一个或多个。例如,存储设备22可包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、磁盘、光盘、闪存或者电可编程存储器(EPROM)或电可擦可编程存储器(EEPROM)的形式。在一些示例中,存储设备22用于存储程序指令以供控制器20执行。存储设备22可以被控制器20上运行的软件或应用程序使用,来在程序执行期间临时存储信息。处理单元24可被配置为处理由控制器20接收或生成的数据。
API服务器26包括由控制器20执行的代码。API服务器26可以是一个或多个计算机处理器。例如,API服务器26验证和配置用于对象(例如,对象30)的数据,诸如虚拟执行元件(例如,容器的资料库系统规则(pods))、服务和复制控制器。服务可以是定义资料库系统规则的逻辑集和用于访问资料库系统规则的策略的抽象。基于服务定义,选择实施服务的资料库系统规则集。服务可部分实施为负载均衡器,或者包括负载均衡器。API服务器26可实施表述性状态转移(REST)接口来处理REST操作,并且将前端提供给存储设备22中存储的对应集群的共享状态。API服务器26可认证和授权请求。API服务器26与其他组件通信以在服务供应方网络2中实例化虚拟执行元件。API服务器26可表示Kubernetes API服务器。
在一些示例中,控制器20可生成代表实体12、16中的每一个的Kubernetes项目和/或Kubernetes域。例如,API服务器26可向处理单元24发送消息,该消息包括将要生成的项目的名称和将要生成的项目的父项目的标识,其中父项目在层级结构中比将要生成的项目“高”一级。随后,处理单元24可生成项目并向API服务器26输出消息,该消息包括由处理单元24生成的项目的标识和父项目的标识。API服务器26可将项目保存到存储设备22,并且存储设备22可向API服务器26返回项目被保存的确认。
在一些示例中,可基于服务需要预先配置策略文件。策略文件的预配置可以包括两部分:规则定义和资源-规则关联。在微服务启动阶段期间,为每种资源类型配置的规则将被加载到资源类中,并且其将在资源创建阶段期间被转换相应的访问细节并注入权限结构。例如,对象30可表示资源。控制器20可基于存储在存储设备22中的规则来控制对对象30的访问,其中规则与对象30中的每个对象相关联。如果租户(例如,租户16A)希望访问对象(例如,对象30A),则租户16A可以向控制器20发送超文本传输协议(HTTP)请求,请求访问对象30A。在一些示例中,控制器20A可评估HTTP请求,以确定租户16A是否将被授权访问对象30A。例如,当HTTP请求表示资源操作请求(诸如GET、PUT、DELETE)时,可以提取目标资源规则的权限,并基于用户令牌信息进行评估。
在一些情况下,控制器20可以确定:(1)令牌项目ID是否与资源权限的所有者匹配,(2)令牌项目范围是否包括在共享项目作用范围的列表中,(3)令牌项目ID是否在共享项目的列表中,(4)在资源与子项目共享时,令牌项目是否是资源所有者的子项目(在一些情况下,子项目表示域/项目层级结构中的所有者项目的第一级后代),(4)在资源与后代项目共享时,令牌项目是否是资源所有者的后代项目(后代项目包括所有者项目的后代项目的所有级别),以及(6)资源是否全局共享。在一些示例中,如果规则(1)-(6)中存在匹配,则根据请求操作(即,GET/PUT/DELETE),将评估权限中的RWX配置。在一些示例中,如果通过了部分或全部检查,则可以授予权限。
在一些示例中,控制器20可执行一个或多个软件或程序模块,其与Keystone开源软件程序提供的认证或相关过程相关联的任务交互、增强任务、补充任务或执行任务。在一些示例中,这种软件或程序模块被实施为Keystone或其他认证服务插件,并且可以根据Keystone或相关或类似服务的API来开发。
在一些示例中,服务供应方网络2被服务供应方12管理。例如,服务供应方网络2被配置为向每个都具有一个或多个用户的租户16提供对对象30中的一个或多个对象的访问。服务供应方12和租户16(实体12、16)可形成层级结构,其中,形成层级结构的实体12、16中的每个实体都与实体12、16的父实体和实体12、16的一个或多个子实体中的至少一个相关联。控制器20可访问服务供应方网络2。控制器20可被配置为获取指示参数集的数据,其中指示参数集的数据与实体12、16的所有者实体相关联,并生成合并参数集的规则,其中规则使控制器20能够控制对对象30中的对象(例如,对象30A)的访问。在一些示例中,处理单元24可生成规则。以这种方式,由控制器20生成的规则可与对象30A相关联,合并到规则中的一个或多个参数确定是否允许租户16中的相应租户访问对象30A。控制器20可将规则添加到规则数据库,其中规则数据库存储在被配置为与处理单元24通信的存储设备22中。
例如,由控制器20获取的用于创建与对象30A相关联的规则的参数集可以包括与规则相关联的实体12、16的所有者实体的指示。在一个示例中,租户16A可以是对象30A的所有者实体。如此,租户16A可表示对象30A的创建者。因此,与对象30A相关联的所有者实体可以向控制器20提供参数集,以影响对对象30A的访问的控制。此外,参数集可以包括对对象30A的所有者实体可用的对象30A访问级别的指示、使与规则对应的对象30A与实体12、16中的实体的至少一个子集共享的指示以及是否使对象30A与实体12、16中的所有实体共享的指示。
在一些示例中,对对象30A的所有者实体可用的对象30A的“访问级别”可包括在可表示Unix/Linux文件权限的参数集中。例如,对对象30A的所有者实体可用的对象30A的访问级别的指示包括所有者实体被允许读取对象30A的指示、所有者实体被允许写入对象30A的指示、所有者实体被允许执行对象30A的指示或者任何它们的组合。所有者实体被允许读取对象30A的指示使所有者实体能够查看与对象30A关联的数据。所有者实体被允许写入对象30A的指示使所有者实体能够编辑与对象30A关联的数据。此外,所有者实体被允许执行对象30A的指示使所有者实体能够接收与对象30A相关联的服务。由于指示可包括读取权限、写入权限和执行权限中的任何一个或任意组合,因此访问级别的指示可包括所有者实体被允许读取对象30A和写入对象30A的指示、所有者实体被允许读取对象30A和执行对象30A的指示、所有者实体被允许写入对象30A和执行对象30A的指示或者所有者实体被允许读取对象30A、写入对象30A和执行对象30A的指示。此外,访问级别可表示所有者实体不被允许读取对象30A、写入对象30A和执行对象30A的指示。
在一些情况下,与实体12、16中的至少一个实体的子集共享对象30A的指示包括:与这样的实体子集共享对象30A的指示,该实体子集包括与对象30A的所有者实体相关联的直接父实体。在一些示例中,对象30A的所有者实体是租户16A,租户16A的直接父实体是服务供应方12。如此,与包括与对象30A的所有者实体相关联的直接父实体的实体的子集共享对象30A的指示可以是与服务供应方12共享对象30A的指示,使得服务供应方12能够访问对象30A。在一些情况下,与实体12、16中的实体的至少一个子集共享对象30A的指示包括:与实体12、16的实体子集(包括与对象30A的所有者实体相关联的一个或多个直接子实体)共享对象30A的指示。在一些示例中,直接子实体可以是实体12、16的层级结构中的所有者实体的“第一级”后代。此外,在一些情况下,与实体12、16中的实体的至少一个子集共享对象30A的指示包括与实体子集(包括实体12、16中源于实体12、16的层级结构中的对象30A的所有者实体的所有实体,包括所有者实体的“第一级”后代和所有者实体的第一级后代的所有后代)共享对象30A的指示。与实体12、16中的实体的至少一个子集共享对象30A的指示还可以包括全局共享对象30A的指示,即,与实体12、16中的所有实体共享对象30A。
在一些示例中,实体12、16中的每个实体都与范围集的相应范围相关联。在一些情况下,与实体12、16中的实体的至少一个子集共享对象30A的指示可包括与实体子集(包括与范围集的范围相关联的实体集的所有实体)共享对象30A的指示。
控制器20可被配置为从实体12、16的请求实体(例如,租户16N)接收请求访问对象30中的对象(例如,对象30N)的令牌,其中令牌包括指示请求实体的身份的数据。此外,处理单元24可被配置为在存储设备22中存储的规则数据库中标识与对象30N相对应的规则。换句话说,处理单元24可被配置为标识管理对对象30N的访问的规则,规则包括指示一个或多个实体被允许访问对象30N。以这种方式,处理单元24可被配置为基于由与对象30N相关联的规则所合并的参数集和基于请求实体的身份来确定请求实体是否被授权访问对象。换句话说,处理单元24可被配置为基于与对象30N相关联的规则来确定租户16N是否被列为具有对对象30N的访问权的实体。在一些示例中,由与对象30N相关联的规则指示的参数集包括与实体12、16中的实体的至少一个子集共享对象30N的指示,为了确定是否授权租户16N访问对象30N,处理单元24可被配置为:如果实体的至少一个子集包括租户16M,则确定授权租户16N访问对象30N;或者如果实体的至少一个子集不包括租户16M,则确定不授权租户16M访问对象30N。
控制器20可实施多租户策略语法,以生成、标识和强化存储在存储设备22中的规则。在一些示例中,多租户包括定义多租户规则以及为微服务在规则和资源(例如,对象30)之间建立关系。例如,多租户规则语法可以包括规则定义(例如,“r:owner_rwx”)和规则关联(例如,“customer”:“r:owner_rwx”)。规则定义可包括语法r:[rule_name],其中“r:”对应于用于标识该规则的解析器。语法“rule_name”可以是由规则的创建者定义的任何字符串,只要理解它即可。每个规则定义可以包括4项:(1)所有者、(2)所有者访问(owner_access)、(3)共享、(4)全局访问(global_access)。项目(1)-(4)可对应于控制器20获取的数据中包括的参数集。如此,控制器20可被配置为获取对象的所有者实体的指示、对所有者实体可用的对象的访问级别的指示、与实体12、16中的实体的至少一个子集共享对象的指示以及是否与实体12、16的所有实体共享对象的指示。
控制器20可以各种不同的方式获取所有者实体的指示。在一些示例中,服务供应方用户可登录到名为‘sp’的项目,其中项目的ID为‘sp111’。随后,服务供应方用户可输入Pop。Pop的所有权将是项目IP‘sp111’,与服务供应方用户登录的项目相对应。在一些示例中,服务供应方用户可使用用户名、密码、生物特征信息和其他登录信息的任意组合在用户接口14处登陆到‘sp111’项目。此外,在一些示例中,用户可创建模板、设备配置文件或服务级别协议(SLA)配置文件对象。这些对象可以在与全限定名‘[domain,project,objname]’关联的项目下建模为子对象。多租户框架(例如,控制器20)可以从全限定名的[domain,project]部分得到UUID,并将UUID关联为对应对象的所有者。
在一些示例中,如果在对象POST/PUT期间提供了权限负载,则可以从权限中接受所有者。多租户框架可能不会派生任何权限,多租户框架可定制对对象的访问。此外,在一些示例中,控制器20可从对象的全限定项目权限中复制值。例如,在资源以1-1映射建模的微服务中,从权限中复制值可使对对象的访问在两种资源类型之间保持一致。
在一些示例中,与实体12、16中的实体的至少一个子集共享对象的指示可包括参考共享和父-子共享中的一个或两个。在参考共享的情况下,多租户框架可设置对被参考对象的共享访问。如果具有权限在开始时未启用但仅在发生特定动作时才启用的使用实例,则该选项可适用于您。参考共享规则可具有以下语法:‘reference_resource_type:[reference_share_option,reference_share_access]’,其中,‘reference_resource_type’是在Yet Another Next Generation(YANG)中建模的对象类型‘object_type’。此外,‘reference_share_option’允许值为[1,2],其中‘1’将共享限制到特定项目,并且‘2’将改变全局共享。在一些示例中,授予实体的访问级别可称为‘共享访问’,其中共享访问表示Unix RWX访问。例如,在Unix RWX访问中,‘1’是x,‘2’是w,‘3’是xw,‘4’是r,‘5’是rx,‘6’是rw,以及‘7’是rwx。
在一些示例中,为了执行参考共享,服务供应方12创建nfv服务配置文件,防止客户在将nfv服务配置文件分配给客户之前查看nfv服务配置文件。例如,控制器20可创建具有以下语法的规则:“r:share_to_a_customer”:{“owner”:1,“owner_access”:7,“share”:{“customer”:[1,5]},global_access:0}。以这种方式,规则指示控制器20可从令牌中得到所有者实体的身份,规则指示所有者实体可用的所有者访问是“RWX”(即,读、写和执行),并且规则指示对象(例如,nfv服务配置文件(nfv-service-profile))与客户分享。此外,规则指示对象不是全局共享的。控制器20可使用以下语法将规则与nfv服务配置文件关联:“nfv-service-profile”:“r:share_to_a_customer”。此外,在一些示例中,为了执行参考共享,服务供应方12创建nfv服务配置文件作为仅对服务供应方12可见的私有配置文件。如果服务供应方12将配置文件拖至全局nfv服务配置文件,则服务供应方12可使所有客户都能看到配置文件。例如,控制器20可创建具有以下语法的规则:“r:share_to_global”:{“owner”:1,“owner_access”:7,“share”:{“global-nfv-service-profile”:[1,5]},global_access:0}。以这种方式,规则指示控制器20可从令牌得到所有者实体的身份,规则指示所有者实体可用的所有者访问是“RWX”(即,读、写和执行),并且规则指示对象(例如,nfv服务配置文件)与服务供应方12的所有客户共享。控制器20可使用以下语法将规则与nfv服务配置文件关联:“nfv-service-profile”:“r:share_to_global”。
在使用父-子共享的示例中,多租户框架可将对象30自动共享到父项目、子项目、祖先项目、后代项目或任何它们的组合。在一些情况下,父-子共享规则具有以下语法:parent_child_share_type:[parent_child_share_option,share_access]。此外,在一些情况下,父-子共享规则具有以下语法:parent_child_share_type:supports value in[share.child_projects,share.parent_project,share.descendant_projects,share.parent_projects]。父子共享选项可包括与第一级子项目共享的‘share.child_projects’、与第一级父项目共享的‘share.parent_project’、与所有级别的后代项目共享的‘share.descendant_projects’、与所有级别的祖先项目共享的‘share.parent_projects’、与具有服务供应方范围的所有租户共享的‘share.project_scope.sp’、与具有OpCo范围的所有租户共享的‘share.project_scope.opco’以及与具有企业范围的所有租户共享的‘share.project_scope.enterprise’中的任何一个或多个。另外,‘share_access’表示unix RWX访问,其中,‘1’是x,‘2’是w,‘3’是xw,‘4’是r,‘5’是rx,‘6’是rw,以及‘7’是rwx。
在一些情况下,对于‘share.child_projects’选项,只允许值‘1’,使得控制器20不区分所有者项目的子项目,并将规则应用于所有子项目。在一些情况下,对于‘share.parent_projects’选项,允许[1、2、4]的任何值,其中,‘1’使控制器20从令牌得到父项目信息,‘2’使控制器20从相应对象的全限定名中得到父项目信息,‘4’使控制器20在默认项目ID中填写为父项目。在一些示例中,对于
‘share.descendant_projects’选项,只允许值‘1’,使得控制器20不区分所有者项目的子项目。在一些情况下,对于
‘share.parent_projects’选项,允许值‘1’和‘2’,其中,‘1’使控制器20从令牌中得到父项目信息,而‘2’使控制器20从相应对象的全限定名中得到父项目信息。
在一些示例中,在父-子共享中,服务供应方用户创建模板集,并将模板集共享给服务供应方的租户(例如,服务供应方12与所有租户16共享模板集),使租户能够参考模板集来创建抽象配置并部署抽象配置。在一些这样的示例中,控制器20创建与模板集相关联的规则。规则可被定义为:“r:share_wlth_child_rx”:{“owner”:2,“owner_access”:7,“share”:{“share.child_projects”:[1,5]},“global_access”:0}。如此,规则指示控制器20可从相应对象(例如,模板集)的全限定名中得到所有者实体,所有者实体可用的所有者访问是“RWX”(即,读、写和执行),并且对象与所有者实体的第一代子实体共享。如此,如果所有者实体是服务供应方12,则对象可与服务供应方12的子实体(例如,租户16A-16C)共享。此外,规则指示对象不是全局共享的。控制器20可使用以下语法将规则与对象(例如,“template”)关联:“template”:“r:share_with_parent_r”。
此外,在租户用户(例如,租户16A的用户)创建模板集并与服务供应方12共享模板集以使服务供应方12可访问模板集中的变量的示例中,控制器20可生成具有以下语法的规则:“r:share_wlth_parent_r”:{“owner”:2,“owner_access”:7,“share”:{“share.parent_project”:[1,4]},“global_access”:0}。如此,规则指示控制器20可以从相应对象(例如,模板集)的全限定名中得到所有者实体,所有者实体可用的所有者访问是“RWX”(即,读、写和执行),并且该对象与所有者实体的第一级父实体共享。如此,如果所有者实体是租户16A,则对象(例如,模板集)可与租户16A的父实体(例如,服务供应方12)共享。
在一些示例中,全局访问(语法:“global_access”)可确定对象30中的对象是全局共享(例如,值‘1’)还是非全局共享(例如,值‘0’)。Unix RWX应用于全局访问。多租户权限可影响用于HTTP资源请求的LIST API。默认地,LIST API可列出请求者可见的所有资源。
关于本公开的各个方面和本文所述技术的更多细节可在2018年12月28日提交的标题为“在计算机网络中创建角色和控制访问(CREATING ROLES AND CONTROLLING ACCESSWITHIN A COMPUTER NETWORK)”的美国专利申请第16/235,739号中获取,该申请的全部内容通过引用并入本文。此外,关于本公开的各个方面和本文所述技术的进一步细节可在2018年12月28日提交的标题为“基于用户属性的计算机网络中用户群的动态配置(DYNAMICPROVISIONING OF USER GROUPS WITHIN COMPUTER NETWORKS BASED ON USERATTRIBUTES)”的美国专利申请第16/235,647号中获取,该申请的全部内容通过引用并入本文。
图2是示出根据本文所述的一种或多种技术的服务供应方12和租户16(实体12、16)的层级结构40的框图。如图2所示,层级结构40可表示“树”,其中,实体12、16中的一些可源于实体12、16的其他实体,并且一些实体12、16可以是实体12、16的其他实体的祖先。在一些示例中,在层级结构40上“较高”的实体(例如,更多的后代实体和更少的祖先实体)可在服务供应方网络2中比在层级结构40上“较低”的实体具有更多的特权。在一些示例中,服务供应方12表示层级结构40的第一代。在一些示例中,租户16A、租户16B和租户16C表示层级结构40的第二代。此外,在一些示例中,租户16D、租户16E、租户16F、租户16G、租户16H和租户16I表示层级结构40的第三代。
实体12、16中的实体在本文中相对于层级结构40的其他实体可描述为“父实体”、“子实体”、“后代实体”和“祖先实体”。父实体可以是所讨论的实体的第一级祖先。例如,服务供应方12是租户16A的父实体。子实体可以是所讨论的实体的第一级后代。例如,租户16G是租户16B的子实体。后代实体可表示所讨论的实体的任何级别的后代。例如,租户16E可表示服务供应方12的后代实体。然而,租户16E不可以表示服务供应方12的子实体,因为租户16E是服务供应方12的第二级后代而不是第一级后代。祖先实体可表示所讨论的实体的任何级别的祖先。例如,服务供应方12可以是租户16F的祖先实体,因为服务供应方12是租户16F的第二级祖先。然而,服务供应方12不可以代表租户16F的父实体,因为服务供应方12不是租户16F的第一级祖先。
在一些示例中,控制器20可将层级结构40的表示存储在存储设备22中。例如,控制器20可使用Kubernetes域和Kubernetes项目来记录父实体、子实体、祖先实体和后代实体之间的关系。Kubernetes域可具有一个或多个从属Kubernetes项目。反过来,Kubernetes项目可具有一个或多个附加的从属Kubernetes项目。以这种方式,如果租户(例如,租户16I)加入服务供应方网络2,则控制器20可根据代表租户16C(租户10I的父实体)的另一Kubernetes项目来创建代表租户16I的Kubernetes项目。
层级结构40可表示多租户框架,其中可基于层级结构40限制对微服务(例如,对象30)的访问。例如,服务供应方12可以向控制器20输出消息,该消息指示创建对象的请求并基于参数集生成与对象对应的规则。服务供应方12可以向控制器20提供参数集,使得控制器20可生成规则。在一些示例中,参数集包括被允许访问对象的实体12、16中的实体的子集的指示。在一些示例中,实体子集的指示可包括服务供应方12的子实体(即,租户16A-16C)被允许访问对象的指示。在一些这样的例示例,租户16D-16I不被允许访问对象,因为租户16D-16I是服务供应方12的第二级后代实体,因此不是服务供应方12的子实体。此外,在一些示例中,实体子集的指示可包括服务供应方12的所有子实体(即,租户16A-16I)被允许访问对象的指示。
在一些示例中,租户16D可以向控制器20输出消息,该消息指示创建对象的请求并基于参数集生成与对象对应的规则。租户16D可以向控制器20提供参数集,使得控制器20可生成规则。在一些示例中,参数集包括被允许访问对象的实体12、16中的实体的子集的指示。在一些示例中,实体子集的指示可包括租户16D的父实体(即,租户16A)被允许访问对象的指示。在一些这样的例子中,服务供应方12不被允许访问对象,因为服务供应方12是租户16D的第二级祖先实体,因此不是租户16D的父实体。此外,在一些示例中,实体子集的指示可包括租户16D的所有祖先实体(即,租户16A和服务供应方12)被允许访问对象的指示。
尽管图2示出了层级结构40包括三个层级的实体,但在图2未示出的其他示例中,层级结构40可包括三个层级以上或者少于三个层级的实体。此外,层级结构40中的实体不限于特定数量的子实体。实体可具有任意数量的子实体。
图3是示出根据本公开的一种或多种技术的用于生成规则以管理对对象的访问和/或控制对对象的访问的示例操作的流程图。为了方便,参照图1的实体12、16、控制器20和对象30来描述图3。然而,
图3的技术可通过实体12、16、控制器20和对象30的不同组件或通过附加或替代设备来执行。
实体12、16中的实体(例如,租户16A)向控制器20发送消息以生成规则(302)。在一些示例中,生成规则的消息与生成规则的请求相关联,以管理对对象30中的对象(例如,对象30A)的访问。另外,在一些示例中,租户16A可表示与对象30A对应的所有者实体。控制器20可接收消息(304)。响应于接收到消息来生成规则,控制器20可获取参数集(306),参数集与所有者实体、租户16A相关联。在一些示例中,参数集包括所有者实体的指示(即,指示租户16A是所有者实体)、对租户16A可用的对象的访问级别的指示、与实体12、16中的实体的至少一个子集共享对象30A的指示以及是否与实体集的所有实体共享对象30A的指示。基于参数集,控制器20被配置为生成规则(308),以利于控制对对象30A的访问。控制器20将规则保存到存储设备22中存储的规则数据库(310)。在一些示例中,规则数据库包括对应于对象30中的每个对象的规则。以这种方式,可通过控制器20来咨询规则数据库,以控制对对象30的访问。控制器20发送生成规则的确认(312),并且实体12、16接收确认(314)。
在已经创建使控制器20能够控制对对象30A的访问的规则之后,实体12、16可请求访问对象30A,并且控制器20可确定请求实体是否被允许访问对象30A。例如,实体(诸如图2的租户16D)可以向控制器20发送访问对象30A的请求(316)。控制器20可接收请求(318),并基于该请求确定请求实体的身份(320)。例如,控制器20可确定租户16D发送了访问对象30A的请求。随后,控制器20标识存储在存储设备22中与对象30A相对应的规则数据库中的规则(322)。在一些情况下,该规则可包括规则对应于对象30A的指示符,使得控制器20可标识与对象30A相对应的规则。基于该规则,控制器20可确定是否授权请求实体访问(324)对象30A。由于控制器20可在框320中确定租户16D是请求实体,所以控制器20可将规则中包括的被允许实体与租户16D的身份交叉引用,以确定租户16D是否被允许访问对象30A。随后,控制器20可发送消息(326),指示控制器20做出了是否授权租户16A访问对象30A的确定。对象30A可接收消息(328),并且实体12、16可接收消息(330)。租户16D可以向对象30A发送服务请求(332)。对象30A可接收服务请求(334)。如果由对象30A接收的消息包括租户16D被允许访问对象30A的指示,则对象30A可以向租户16D提供服务(336),并且租户16D可以接收服务(338)。
图4是示出根据本公开的一种或多种技术的用于创建或生成与实体12、16中的实体相对应的项目的示例操作的流程图。为了方便,参照图1的实体12、16、控制器20、存储设备22、处理单元24、API服务器26和对象30来描述图4。然而,图4的技术可通过实体12、16、控制器20、存储设备22、处理单元24、API服务器26和对象30的不同组件或者通过附加或替代设备来执行。
API服务器26可以向处理单元24输出HTTP POST消息(402),POST消息包括将被生成的项目的名称和将被生成的项目的父项目的名称。随后,处理单元24可生成项目。处理单元24可以向API服务器26输出消息,包括项目的标识、父项目的标识和新创建项目的所有祖先项目的标识(404)。API服务器26可以向存储设备22输出POST消息,以将新创建的项目存储在项目数据库中(406),POST消息包括项目的全限定名(fq_name)、新生成项目的通用唯一标识符(UUID)和父项目的UUID。存储设备22可返回包括新生成项目的UUID的消息(408),以确认项目存储在项目数据库中。在一些示例中,处理单元24可生成项目以保持实体12、16的层级结构的表示,使得控制器20可基于层级结构控制对对象30的访问。
本文描述的技术可以硬件、软件、固件或任何它们的组合来实施。描述为模块、单元或组件的各种特征可以在集成逻辑设备中一起实施,或者单独实施为离散但可互操作的逻辑设备或其他硬件设备。在一些情况下,电子电路的各种特征性可实施为一个或多个集成电路设备,诸如集成电路芯片或芯片组。
如果以硬件实施,则本公开可针对诸如处理器或集成电路设备的设备,诸如集成电路芯片或芯片组。可代替地或另外地,如果以软件或固件实施,则这些技术可至少部分地通过计算机可读数据存储介质实现,计算机可读数据存储介质包括在执行时使处理器执行上述一种或多种方法的指令。例如,计算机可读数据存储介质可存储这样的指令以供处理器执行。
计算机可读介质可形成计算机程序产品的一部分,其可以包括封装材料。计算机可读介质可包括计算机数据存储介质,诸如RAM、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、EEPROM、闪存、磁性或光学数据存储介质等。在一些示例中,制造品可包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可包括非暂态介质。术语“非暂态”可表示存储介质不以载波或传播信号来具体化。在特定示例中,非暂态存储介质可存储可随时间变化的数据(例如,在RAM或高速缓存中)。
代码或指令可以是通过处理电路执行的软件和/或固件,处理电路包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或离散逻辑电路。因此,本文所使用的术语“处理器”可表示前述结构中的任何一个或者适合于实施本文所述技术的任何其它结构。此外,在一些方面,可以在软件模块或硬件模块中提供本公开中描述的功能。
Claims (18)
1.一种在多租户框架内控制访问一个或多个对象的系统,其中所述系统包括:
网络,被服务供应方管理并且被配置为向租户集提供对一个或多个对象的访问,每个所述租户都具有一个或多个用户,所述服务供应方和所述租户集是形成层级结构的实体集的一部分,其中形成所述层级结构的所述实体集中的每个实体与所述实体集的父实体和所述实体集的一个或多个子实体中的至少一个相关联;以及
控制器,具有对所述网络的访问,其中,所述控制器被配置为:
从所述实体集的所有者实体获取指示参数集的数据,其中,指示所述参数集的所述数据与来自所述所有者实体的请求相关联,以控制对所述一个或多个对象中的对象的访问,所述对象由所述所有者实体创建;
生成合并所述参数集的规则,其中,所述规则使所述控制器能够根据来自所述所有者实体的所述请求控制对所述一个或多个对象中的所述对象的访问;并且
将所述规则添加至规则数据库,其中,所述控制器可访问所述规则数据库,
其中所述参数集包括:
与所述规则相关联的所述所有者实体的指示;
对所述所有者实体可用的所述对象的访问级别的指示;
与所述实体集中的实体的至少一个子集共享对应于所述规则的所述对象的指示,其中共享所述对象的指示指示与包括所述所有者实体的第一级祖先的所述租户集中的租户共享对象、并且不与包括所述所有者实体的第二级祖先的服务提供者共享对象;以及
是否与所述实体集中的所有实体共享所述对象的指示。
2.根据权利要求1所述的系统,其中,所述控制器被配置为:
从所述实体集中的请求实体接收请求访问所述对象的令牌,其中,所述令牌包括指示所述请求实体的身份的数据;
基于被存储在所述规则数据库中的信息,标识与所述对象相对应的所述规则;以及
基于由所述规则合并的所述参数集并且基于所述请求实体的所述身份,确定所述请求实体是否被授权访问所述对象。
3.根据权利要求2所述的系统,其中为了确定所述请求实体是否被授权访问所述对象,所述控制器被配置为:
如果实体的所述至少一个子集包括所述请求实体,则确定所述请求实体被授权访问所述对象;或者
如果实体的所述至少一个子集不包括所述请求实体,则确定所述请求实体未被授权访问所述对象。
4.根据权利要求2所述的系统,其中,为了确定所述请求实体是否被授权访问所述对象,所述控制器被配置为:
如果所述请求实体不是所述所有者实体,则在实体的所述至少一个子集包括所述请求实体的情况下、或者在所述参数集包括与所述实体集中的所有实体共享所述对象的指示的情况下,确定所述请求实体被授权访问所述对象;或者
如果所述请求实体不是所述所有者实体,则在实体的所述至少一个子集不包括所述请求实体的情况下、或者在所述参数集包括不与所述实体集中的所有实体共享所述对象的指示的情况下,确定所述请求实体未被授权访问所述对象。
5.根据权利要求2所述的系统,其中,为了确定所述请求实体是否被授权访问所述对象,所述控制器被配置为:
如果所述请求实体是所述所有者实体,则基于对所述所有者实体可用的所述对象的所述访问级别的指示,确定所述请求实体是否被授权访问所述对象。
6.根据权利要求1所述的系统,其中,对所述所有者实体可用的所述对象的所述访问级别的所述指示包括:
所述所有者实体被允许读取所述对象的指示,其中,所述所有者实体被允许读取所述对象的指示使所述所有者实体能够查看与所述对象相关联的数据;
所述所有者实体被允许写入所述对象的指示,其中,所述所有者实体被允许写入所述对象的指示使所述所有者实体能够编辑与所述对象相关联的数据;
所述所有者实体被允许执行所述对象的指示,其中,所述所有者实体被允许执行所述对象的指示使所述所有者实体能够接收与所述对象相关联的服务;
所述所有者实体被允许读取所述对象和写入所述对象的指示;
所述所有者实体被允许读取所述对象和执行所述对象的指示;
所述所有者实体被允许写入所述对象和执行所述对象的指示;
所述所有者实体被允许读取所述对象、写入所述对象和执行所述对象的指示;或者
所述所有者实体不被允许读取所述对象、写入所述对象和执行所述对象的指示。
7.根据权利要求1所述的系统,其中,与所述实体集中的实体的所述至少一个子集共享所述对象的指示包括以下指示中的至少一个:
与包括与所述所有者实体相关联的直接父实体的实体子集共享所述对象的指示;
与包括与所述所有者实体相关联的一个或多个直接子实体的实体子集共享所述对象的指示;
与包括源于所述层级结构中的所述所有者实体的实体集中的所有实体的实体子集共享所述对象的指示;以及
与包括先于所述层级结构中的所述所有者实体的实体集中的所有祖先实体的实体子集共享所述对象的指示。
8.根据权利要求1所述的系统,其中,所述实体集中的每个实体都与范围集中的相应范围相关联,并且其中与所述实体集中的实体的至少一个子集共享所述对象的指示包括:
与包括与所述范围集的范围相关联的实体集中的所有实体的实体子集共享所述对象的指示。
9.根据权利要求1至8中任一项所述的系统,其中,所述控制器还被配置为:
从形成所述层级结构的所述实体集的创建实体并且经由应用编程接口API接收指示创建新实体的请求的消息;
基于所述消息,创建所述新实体,使得所述新实体的父实体是所述创建实体,并且所述创建实体的子实体是所述新实体;以及
向所述API输出消息,所述消息包括所述新实体的身份的指示和所述新实体的所述父实体的身份的指示。
10.根据权利要求9所述的系统,其中,所述系统还包括所述API和存储设备,并且其中所述API被配置为:
接收包括所述新实体的身份的指示和所述新实体的所述父实体的身份的指示的消息;
响应于接收到包括所述新实体的身份的指示和所述新实体的所述父实体的身份的指示的消息,发送命令所述存储设备在层级结构数据库中保存所述新实体的消息;以及
从所述存储设备接收所述新实体被保存至所述层级结构数据库的确认。
11.一种用于在多租户框架内控制访问对象的方法,其中所述方法包括:
通过具有对网络的访问的控制器从实体集的所有者实体获取指示参数集的数据,其中,所述网络被服务供应方管理并且被配置为向租户集提供对一个或多个对象的访问,每个所述租户都具有一个或多个用户,所述服务供应方和所述租户集是形成层级结构的实体集的一部分,其中,形成所述层级结构的所述实体集中的每个实体与所述实体集的父实体和所述实体集的一个或多个子实体中的至少一个相关联,并且其中指示所述参数集的所述数据与来自所述所有者实体的请求相关联,以控制对所述一个或多个对象中的对象的访问,所述对象由所述所有者实体创建;
生成合并所述参数集的规则,其中,所述规则使所述控制器能够根据来自所述所有者实体的所述请求控制对所述一个或多个对象中的所述对象的访问;并且
将所述规则添加至规则数据库,其中,所述控制器可访问所述规则数据库,
其中所述参数集包括:
与所述规则相关联的所述所有者实体的指示;
对所述所有者实体可用的所述对象的访问级别的指示;
与所述实体集中的实体的至少一个子集共享对应于所述规则的所述对象的指示,其中共享所述对象的指示指示与包括所述所有者实体的第一级祖先的所述租户集中的租户共享对象、并且不与包括所述所有者实体的第二级祖先的服务提供者共享对象;以及
是否与所述实体集中的所有实体共享所述对象的指示。
12.根据权利要求11所述的方法,还包括:
从所述实体集中的请求实体接收请求访问所述对象的令牌,其中,所述令牌包括指示所述请求实体的身份的数据;
基于被存储在所述规则数据库中的信息,标识与所述对象相对应的所述规则;以及
基于由所述规则合并的所述参数集并且基于所述请求实体的所述身份,确定所述请求实体是否被授权访问所述对象。
13.根据权利要求12所述的方法,其中确定所述请求实体是否被授权访问所述对象包括:
如果实体的所述至少一个子集包括所述请求实体,则确定所述请求实体被授权访问所述对象;或者
如果实体的所述至少一个子集不包括所述请求实体,则确定所述请求实体未被授权访问所述对象。
14.根据权利要求12所述的方法,其中,确定所述请求实体是否被授权访问所述对象包括:
如果所述请求实体不是所述所有者实体,则在实体的所述至少一个子集包括所述请求实体的情况下、或者在所述参数集包括与所述实体集中的所有实体共享所述对象的指示的情况下,确定所述请求实体被授权访问所述对象;或者
如果所述请求实体不是所述所有者实体,则在实体的所述至少一个子集不包括所述请求实体的情况下、或者在所述参数集包括不与所述实体集中的所有实体共享所述对象的指示的情况下,确定所述请求实体未被授权访问所述对象。
15.根据权利要求12所述的方法,其中,确定所述请求实体是否被授权访问所述对象包括:
如果所述请求实体是所述所有者实体,则基于对所述所有者实体可用的所述对象的所述访问级别的指示,确定所述请求实体是否被授权访问所述对象。
16.根据权利要求11至15中任一项所述的方法,还包括:
从形成所述层级结构的所述实体集的创建实体并且经由应用编程接口API接收指示创建新实体的请求的消息;
基于所述消息,创建所述新实体,使得所述新实体的父实体是所述创建实体,并且所述创建实体的子实体是所述新实体;以及
向所述API输出消息,所述消息包括所述新实体的身份的指示和所述新实体的所述父实体的身份的指示。
17.根据权利要求16所述的方法,其中,所述控制器还包括所述API和存储设备,并且其中所述方法还包括:
通过所述API接收包括所述新实体的身份的指示和所述新实体的所述父实体的身份的指示的消息;
通过所述API并且响应于接收到包括所述新实体的身份的指示和所述新实体的所述父实体的身份的指示的消息,发送命令所述存储设备在层级结构数据库中保存所述新实体的消息;以及
通过所述API并且从所述存储设备接收所述新实体被保存至所述层级结构数据库的确认。
18.一种非暂态计算机可读介质,包括指令,所述指令用于使一个或多个处理器:
从实体集的所有者实体获取指示参数集的数据,其中,网络被服务供应方管理并且被配置为向租户集提供对一个或多个对象的访问,每个所述租户都具有一个或多个用户,所述服务供应方和所述租户集是形成层级结构的实体集的一部分,其中形成所述层级结构的所述实体集中的每个实体与所述实体集的父实体和所述实体集的一个或多个子实体中的至少一个相关联,并且其中指示所述参数集的数据与来自所述所有者实体的请求相关联,以控制对所述一个或多个对象中的对象的访问,所述对象由所述所有者实体创建;
生成合并所述参数集的规则,其中,所述规则使控制器能够根据来自所述所有者实体的所述请求控制对所述一个或多个对象中的所述对象的访问;并且
将所述规则添加至规则数据库,其中,所述控制器可访问所述规则数据库,
其中所述参数集包括:
与所述规则相关联的所述所有者实体的指示;
对所述所有者实体可用的所述对象的访问级别的指示;
与所述实体集中的实体的至少一个子集共享对应于所述规则的所述对象的指示,其中共享所述对象的指示指示与包括所述所有者实体的第一级祖先的所述租户集中的租户共享对象、并且不与包括所述所有者实体的第二级祖先的服务提供者共享对象;以及
是否与所述实体集中的所有实体共享所述对象的指示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/447,733 US11516254B2 (en) | 2019-06-20 | 2019-06-20 | Controlling access to microservices within a multi-tenancy framework |
US16/447,733 | 2019-06-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112118214A CN112118214A (zh) | 2020-12-22 |
CN112118214B true CN112118214B (zh) | 2023-09-01 |
Family
ID=68109118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910904392.7A Active CN112118214B (zh) | 2019-06-20 | 2019-09-24 | 在多租户框架内控制对微服务的访问 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11516254B2 (zh) |
EP (1) | EP3754932B1 (zh) |
CN (1) | CN112118214B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11695559B2 (en) * | 2019-09-30 | 2023-07-04 | Salesforce, Inc. | Nested tenancy that permits a hierarchy having a plurality of levels |
CN114385126B (zh) * | 2022-03-24 | 2022-06-21 | 山东省计算中心(国家超级计算济南中心) | 一种基于K8s的多租户深度学习模型研发系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5941947A (en) * | 1995-08-18 | 1999-08-24 | Microsoft Corporation | System and method for controlling access to data entities in a computer network |
CN104255007A (zh) * | 2011-09-29 | 2014-12-31 | 甲骨文国际公司 | Oauth框架 |
CN108322472A (zh) * | 2016-05-11 | 2018-07-24 | 甲骨文国际公司 | 多租户身份和数据安全性管理云服务 |
US10044723B1 (en) * | 2015-06-30 | 2018-08-07 | EMC IP Holding Company LLC | Principal/user operation in the context of a tenant infrastructure |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7533264B2 (en) | 2003-08-20 | 2009-05-12 | Microsoft Corporation | Custom security tokens |
US7509497B2 (en) | 2004-06-23 | 2009-03-24 | Microsoft Corporation | System and method for providing security to an application |
US8336089B1 (en) | 2007-12-21 | 2012-12-18 | Emc Corporation | Method and apparatus for providing authentication and encryption services by a software as a service platform |
US8782748B2 (en) | 2010-06-22 | 2014-07-15 | Microsoft Corporation | Online service access controls using scale out directory features |
US9811673B2 (en) * | 2011-01-11 | 2017-11-07 | International Business Machines Corporation | Content object encapsulating content items for accessing content and access authorization information |
US10277601B1 (en) * | 2015-05-11 | 2019-04-30 | Google Llc | System and method for recursive propagating application access control |
US9774586B1 (en) * | 2015-08-31 | 2017-09-26 | EMC IP Holding Company LLC | Dynamic authorization of users in a multi-tenant environment using tenant authorization profiles |
US10410008B2 (en) | 2016-03-08 | 2019-09-10 | Oracle International Corporation | Thick client policy caching |
US10666657B1 (en) | 2016-12-07 | 2020-05-26 | Amazon Technologies, Inc. | Token-based access control and grouping |
US10713378B2 (en) * | 2017-12-19 | 2020-07-14 | Dropbox, Inc. | Techniques for eventually consistent inheritance propagation for nested content item namespaces |
-
2019
- 2019-06-20 US US16/447,733 patent/US11516254B2/en active Active
- 2019-09-24 CN CN201910904392.7A patent/CN112118214B/zh active Active
- 2019-09-30 EP EP19200339.0A patent/EP3754932B1/en active Active
-
2022
- 2022-11-18 US US18/057,057 patent/US20230079770A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5941947A (en) * | 1995-08-18 | 1999-08-24 | Microsoft Corporation | System and method for controlling access to data entities in a computer network |
CN104255007A (zh) * | 2011-09-29 | 2014-12-31 | 甲骨文国际公司 | Oauth框架 |
US10044723B1 (en) * | 2015-06-30 | 2018-08-07 | EMC IP Holding Company LLC | Principal/user operation in the context of a tenant infrastructure |
CN108322472A (zh) * | 2016-05-11 | 2018-07-24 | 甲骨文国际公司 | 多租户身份和数据安全性管理云服务 |
Also Published As
Publication number | Publication date |
---|---|
EP3754932A1 (en) | 2020-12-23 |
US20230079770A1 (en) | 2023-03-16 |
US20200404021A1 (en) | 2020-12-24 |
US11516254B2 (en) | 2022-11-29 |
EP3754932B1 (en) | 2023-02-15 |
CN112118214A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019200821B2 (en) | Interconnection platform for real-time configuration and management of a cloud-based services exchange | |
CN107409089B (zh) | 一种在网络引擎中实施的方法及虚拟网络功能控制器 | |
Chatras et al. | NFV enabling network slicing for 5G | |
WO2018095416A1 (zh) | 信息处理方法、装置及系统 | |
JP6263537B2 (ja) | Ldapベースのマルチテナント・インクラウド・アイデンティティ管理システム | |
EP2798784B1 (en) | System and method for management of network-based services | |
US20230079770A1 (en) | Controlling access to microservices within a multi-tenancy framework | |
US11632364B1 (en) | Dynamic provisioning of user groups within computer networks based on user attributes | |
JP2011081809A (ja) | ネットワークリソース管理装置 | |
US11700260B2 (en) | Method and apparatus for native authentication to cloud services with identity management of on-premise applications from the cloud | |
Mechtri et al. | Inter and intra Cloud Networking Gateway as a service | |
US20170118127A1 (en) | Systems and Methods of Virtualized Services | |
US20230061080A1 (en) | Creating roles and controlling access within a computer network | |
WO2016131171A1 (zh) | 一种针对vnf包进行操作的方法及装置 | |
US10785056B1 (en) | Sharing a subnet of a logically isolated network between client accounts of a provider network | |
Kotulski et al. | New security architecture of access control in 5G MEC | |
Celesti et al. | Federated networking services in multiple openstack clouds | |
Mechtri et al. | Inter-cloud networking gateway architecture | |
WO2018004407A1 (en) | Systems and methods for service access control | |
Toseef et al. | Implementation of the FELIX SDN experimental facility | |
US20240163162A1 (en) | System and method for zero trust orchestration of an edge gateway within a cloud or multi-cloud network | |
RV | An Experimental Study on Network Security Group Policy for Virtual Instances | |
Neretljak | Security and Authorization Management in modern telecommunication systems | |
Castoldi et al. | Challenges for enabling Cloud Computing over optical networks | |
Ngoh et al. | Policy-based orchestration of Web/IMS services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |