CN106462717B - 用于在多租户应用服务器环境中支持安全性的系统和方法 - Google Patents

用于在多租户应用服务器环境中支持安全性的系统和方法 Download PDF

Info

Publication number
CN106462717B
CN106462717B CN201580032647.5A CN201580032647A CN106462717B CN 106462717 B CN106462717 B CN 106462717B CN 201580032647 A CN201580032647 A CN 201580032647A CN 106462717 B CN106462717 B CN 106462717B
Authority
CN
China
Prior art keywords
subregion
tenant
resource
user
domain
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
Application number
CN201580032647.5A
Other languages
English (en)
Other versions
CN106462717A (zh
Inventor
W·霍普金斯
C·普瑞
D·盖
P·鲍尔
J·李
J·谭希尔
K·斯瑞拉玛德斯肯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN106462717A publication Critical patent/CN106462717A/zh
Application granted granted Critical
Publication of CN106462717B publication Critical patent/CN106462717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

根据实施例,本文描述了用于在多租户应用服务器环境中提供安全性的系统和方法。根据实施例,每分区的安全性配置包括:每分区的安全性领域(包括用于认证、授权、凭证映射、审核、密码验证、证书验证以及用户锁定的配置);SSL配置,包括密钥、证书以及其他配置属性;以及用于分区资源和全局资源的访问控制。管理员可以经由角色的授予将一个或更多分区用户指派为分区管理员。

Description

用于在多租户应用服务器环境中支持安全性的系统和方法
版权声明
本专利文档的公开内容的一部分包含受版权保护的材料。版权所有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现的那样进行传真复制,但是除此之外在任何情况下都保留所有版权。
技术领域
本发明的实施例一般而言涉及应用服务器和云环境,并且具体地涉及用于在多租户应用服务器环境中提供安全性的系统和方法。
背景技术
软件应用服务器(其示例包括Oracle WebLogic Server(WLS)与Glassfish)通常提供用于运行企业软件应用的受管控的环境。近来,允许用户或者租户在云环境中开发和运行它们的应用以及利用环境所提供的分布式资源的技术也已经被研发,以用于在云环境中使用。
发明内容
根据实施例,本文描述了用于在多租户应用服务器环境中提供安全性的系统和方法。根据实施例,每分区的安全性配置包括:每分区的安全性领域(包括用于认证、授权、凭证映射、审核、密码验证、证书验证以及用户锁定的配置);SSL配置,包括密钥、证书以及其他配置属性;以及用于分区资源和全局资源的访问控制。管理员可以经由角色的授予将一个或更多分区用户指派为分区管理员。
附图说明
图1示出了根据实施例的用于在应用服务器、云或者其他环境中支持多租赁的系统。
图2进一步示出了根据实施例的用于在应用服务器、云或者其他环境中支持多租赁的系统。
图3进一步示出了根据实施例的用于在应用服务器、云或者其他环境中支持多租赁的系统。
图4示出了根据实施例的资源组模板的示例性使用。
图5示出了根据实施例的示例性多租户环境。
图6示出了根据实施例的用于在多租户环境中支持安全性的系统和方法的一般功能。
图7示出了根据实施例的被配置用于多领域的使用的多租户环境。
图8示出了根据实施例的在具有多个身份域的多租户环境中由登录模块实现的认证方法。
图9示出了根据实施例的在具有多个身份域的多租户环境中实现的授权子系统。
具体实施方式
根据实施例,本发明提供安全性服务的每分区配置,包括用在多租户服务器环境中的认证、授权、凭证映射、审核、密码验证、证书验证以及用户锁定的配置。本发明的实施例也提供用于分区资源和全局资源的访问控制,使得部署到具体分区的应用只能被该具体分区的用户访问;用于具体分区的分区配置只对该具体分区的管理员(以及WebLogic管理员)可用;并且分区管理员对全局可见的资源和配置只能够只读访问。图1-5与附随的文本描述多租户应用服务器环境。图6-8与附随的文本描述用于在诸如例如就图1-5所描述的多租户服务器环境中支持安全性的系统和方法。
在以下描述中,本发明将在附图的图形中以示例的方式而非限制的方式被示出。此公开中对各种实施例的引用并非必然是对同一实施例,并且这些引用意味着至少一个。尽管讨论了特定的实施方案,但是应当理解这只是为了示意性的目的而提供的。相关领域的技术人员将认识到在不脱离本发明的范围和精神的情况下可以使用其他的部件和配置。
此外,在某些实例中,将阐述若干特定的细节以提供本发明的完整描述。然而,对本领域技术人员显而易见的是,本发明可以在不具有这些特定的细节的情况下实施。在其他实例中,未如此详细地描述公知的特征,以免使本发明变得模糊。
整个附图和具体实施方式中共同的引用标号被用来指示相同的元素;因此,如果元素在其他地方被描述,则图中所使用的引用标号在特定于该图的具体实施方式中可能被引用或者可能未被引用。三位引用标号中的首位指示元素首次出现于其中的图系列。
应用服务器(例如多租户(MT))环境
图1示出了根据实施例的用于在应用服务器、云或者其他环境中支持多租赁的系统。
如图1中所示,根据实施例,应用服务器(例如多租户(MT))环境100或者启用软件应用的部署和执行的其他计算环境可以被配置为包括在运行时被用来定义应用服务器域的域配置102以及根据域配置102来操作。
根据实施例,应用服务器可以包括被定义用于在运行时使用的一个或更多分区104。每个分区可以与全局唯一的分区标识符(ID)以及分区配置关联,并且可以进一步包括和对资源组模板的引用126一起的一个或更多资源组124,和/或分区特定(partition-specific)的应用或资源128。域级别的资源组、应用和/或资源140也可以在域级别上被定义,可选地具有对资源组模板的引用。
每个资源组模板160可以定义一个或更多应用A 162、B 164、资源A 166、B 168和/或其他可部署应用或资源170,并且可以被资源组引用。例如,如图1中所示,分区104中的资源组124可以引用(190)资源组模板160。
通常,系统管理员可以定义分区、域级别的资源组和资源组模板,以及安全性领域;而分区管理员可以定义其自己分区的方面,例如通过创建分区级别资源组、部署应用到该分区、或者引用用于该分区的特定的领域。
图2进一步示出了根据实施例的用于在应用服务器、云或者其他环境中支持多租赁的系统。
如图2中所示,根据实施例,分区202可以包括:例如,包括对资源组模板210的引用206的资源组205,虚拟目标(例如虚拟主机)信息207,以及可插拔的数据库(PDB)信息208。资源组模板(例如210)可以定义例如多个应用A 211和B 212,以及诸如Java MessageServer(JMS)服务器213、存储并转发(SAF)中介215、邮件会话组件216或者Java DatabaseConnectivity(JDBC)资源217的资源。
图2中示出的资源组模板是以示例的方式提供的;根据实施例,可以提供不同类型的资源组模板和元素。
根据实施例,当分区(例如202)内的资源组引用(220)具体资源组模板(例如210)时,与具体分区关联的信息可以结合被引用的资源组模板使用,以指示分区特定的信息230,例如分区特定的PDB信息。分区特定的信息可以随后被应用服务器使用以配置资源(例如PDB资源)用于被该分区使用。例如,与分区202关联的分区特定的PDB信息可以被应用服务器使用来配置(232)具有适当的PDB 238的容器数据库(CDB)236以被该分区使用。
类似地,根据实施例,与具体分区关联的虚拟目标信息可以被用来定义(239)分区特定的虚拟目标240(例如,baylandurgentcare.com)以被该分区使用,该虚拟目标240随后可以被置为可以经由统一资源定位符(URL)(例如http://baylandurgentcare.com)访问。
图3进一步示出了根据实施例的用于在应用服务器、云或者其他环境中支持多租赁的系统。
根据实施例,诸如config.xml配置文件的系统配置被用于定义分区,该系统配置包括用于与该分区关联的资源组的配置元素和/或其他分区特性。可以使用特性名/值对来每个分区地指定值。
根据实施例,在受管控的服务器/集群242或者类似的环境内可以执行多个分区,该多个分区可以提供对CDB 243的访问并可以经由网络层244访问。这允许例如域或分区与(CDB中的)PDB中的一个或更多个关联。
根据实施例,多个分区中的每个分区(在此示例中是分区A 250和分区B 260)可以被配置为包括与该分区关联的多个资源。例如,分区A可以被配置为包括资源组251,资源组251包含应用A1 252、应用A2 254和JMS A 256,以及与PDB A 259关联的数据源A 257,其中该分区可经由虚拟目标A 258访问。类似地,分区B 260可以被配置为包括资源组261,资源组261包含应用B1 262、应用B2 264和JMS B 266,以及与PDB B 269关联的数据源B 267,其中该分区可经由虚拟目标B 268访问。
尽管上述示例中的一些示出了CDB和PDB的使用,但根据其他实施例,其他类型的多租户数据库或者非多租户数据库也能够被支持,其中可以例如通过模式的使用或者不同数据库的使用来为每个分区提供具体配置。
资源
根据实施例,资源是可以被部署到环境的域的系统资源、应用或者其他资源或对象。例如,根据实施例,资源可以是可以被部署到服务器、集群或者其他应用服务器目标的应用、JMS、JDBC、JavaMail、WLDF、数据源、或者其他系统资源或其他类型的对象。
分区
根据实施例,分区是可以与分区标识符(ID)及配置关联的、并且可以包含应用和/或通过资源组和资源组模板的使用来引用(refer to)域范围的资源的、域的运行时和管理性细分或片段。
通常,分区可以包含它自己的应用、经由资源组模板引用域范围的应用、以及具有它自己的配置。可分区的实体可以包括例如JMS、JDBC、JavaMail、WLDF资源的资源,和诸如JNDI命名空间、网络流量、工作管控器以及安全性策略和领域的其他部件。在多租户环境的上下文中,系统可以被配置为向租户提供对与租户关联的分区的管理性和运行时方面的访问。
根据实施例,分区内的每个资源组可以可选地引用资源组模板。分区可以具有多个资源组,并且它们中的每一个可以引用资源组模板。每个分区可以定义用于在该分区的资源组所引用的资源组模板中未指定的配置数据的特性。这使得分区能够充当在资源组模板中定义的可部署资源到用于该分区的特定的值的绑定。在一些情况下,分区可以覆盖由资源组模板指定的配置信息。
根据实施例,分区配置(如例如通过config.xml配置文件定义的)可以包括多个配置元素,例如:“分区”,包含定义分区的属性和子元素;“资源组”,包含部署到分区的应用和资源;“资源组模板”,包含由该模板定义的应用和资源;“JDBC系统资源覆盖”,包含数据库特定的服务名称、用户名以及密码;以及“分区特性”,包含可以被用于资源组模板中的宏替换的特性键值。
在启动时,系统可以使用由配置文件提供的信息以为来自资源组模板的每个资源生成分区特定的配置元素。
资源组
根据实施例,资源组是可部署资源的已命名的、完全限定的集合,资源组可以定义在或者域级别或者分区级别上,并且可以引用资源组模板。资源组中的资源被认为是完全限定的,因为管理员已经提供了启动或者连接到这些资源的全部信息,例如用于连接到数据源的凭证、或者用于应用的定位信息。
系统管理员可以在域级别上或在分区级别上声明资源组。在域级别上,资源组提供了组织相关资源的便利方式。系统可以与未组织的资源同样地管控域级别的资源组中的已声明的资源,使得资源可以在系统启动期间启动,并在系统关闭期间停止。管理员也可以分别地停止、启动或者移除组中的资源,并且可以通过对组进行操作而隐式地作用在组中的全部资源上。例如,停止资源组停止组中全部尚未停止的资源;启动资源组启动组中尚未启动的任意资源;而移除资源组移除组中包含的全部资源。
在分区级别上,受控于任意安全性制约,系统管理员或者分区管理员可以在分区中配置零个或者更多个资源组。例如,在使用SaaS情况下,各种分区级别的资源组可以引用域级别的资源组模板;而在使用PaaS情况下,可以创建不引用资源组模板而是表示要被置为只在该分区内可用的应用及其相关资源的、分区级别的资源组。
根据实施例,资源分组可以被用来将应用和它们使用的资源分组到一起作为域内有区别的管理性单元。例如,在以下描述的医疗记录(MedRec)应用中,资源分组定义MedRec应用及其资源。多个分区可以运行同一MedRec资源组,每个分区使用分区特定的配置信息,使得作为每个MedRec实例的部分的应用被置为特定于每个分区。
资源组模板
根据实施例,资源组模板是可以从资源组被引用的、在域级别上定义的可部署资源的集合,并且激活其资源所要求的信息中的一些可以不作为模板本身的部分而存储,使得它支持分区级别配置的指定。域可以包含任意数量的资源组模板,其中每个资源组模板可以包括例如一个或更多相关的Java应用以及这些应用所依赖的资源。关于这些资源的信息中的一些可以是跨全部分区相同的,而其他信息可以从一个分区到下一个分区变化。并非所有配置都需要在域级别上指定——相反可以通过宏的使用或者特性名/值对在资源组模板中指定分区级别的配置。
根据实施例,具体资源组模板可以被一个或更多资源组引用。通常,在任意给定的分区内,在一个时刻资源组模板可以被一个资源组引用,即不是被同一分区内的多个资源组同时引用;然而,它可以在同一时刻被不同分区中的另一个资源组引用。包含资源组的对象(例如域或者分区)可以使用特性名/值分配来设置资源组模板中任意令牌的值。当系统使用引用资源组来激活资源组模板时,它可以使用在资源组的包含对象中设置的值来替换这些令牌。在一些情况下,系统也可以使用静态配置的资源组模板和分区来生成用于每个分区/模板组合的运行时配置。
例如,在使用SaaS情况下,系统可以多次激活同一应用和资源,包括为使用它们的每个分区激活一次。当管理员定义资源组模板时,它们可以使用令牌来表示将在其他地方被提供的信息。例如,要用在连接到CRM相关的数据资源中的用户名在资源组模板中可以被指示为\${CRMDataUsername}。
租户
根据实施例,在诸如多租户(MT)应用服务器环境的多租户环境中,租户是能够被一个或更多分区和/或一个或更多感知租户的应用所表示的实体、或者以其他方式与一个或更多分区和/或一个或更多感知租户的应用关联的实体。
例如,租户可以表示有区别的用户组织,诸如不同的外部公司,或者具体企业内不同的部门(例如,HR和Finance部门),其中每一个用户组织可以与不同的分区关联。租户全局唯一身份(租户ID)是在时间中的具体瞬间具体用户与具体租户的关联。系统可以例如通过引用用户身份存储来从用户身份推知具体用户属于哪一个租户。用户身份使得系统能够实施用户被授权执行的那些动作,包括但不限于用户可以属于哪一个租户。
根据实施例,系统启用不同租户相互间的管理和运行时隔离。例如,租户可以配置其应用的一些行为,以及配置它们能够访问的资源。系统可以确保具体租户不能管理属于另一个租户的产物(artifact);并且可以确保在运行时代表具体租户工作的应用只引用与该租户关联的资源,而不引用与其他租户关联的资源。
根据实施例,不感知租户的应用是不包含显式地处理租户的逻辑的应用,使得无论什么用户提交了该应用响应的请求,应用所使用的任何资源都可以被访问。相反地,感知租户的应用包括显式地处理租户的逻辑。例如,基于用户的身份,应用可以推知用户所属的租户并且可以使用该信息来访问租户特定的资源。
根据实施例,系统使得用户能够部署被显式地写为感知租户的使得应用开发者可以获得当前租户的租户ID的应用。感知租户的应用然后可以使用租户ID来处置正在使用应用的单个实例的多个租户。
例如,支持单个医生的办公室或者医院的MedRec应用可以暴露于两个不同的分区或者租户(例如Bayland Urgent Care租户以及Valley Health租户),其中的每一个能够在不改变底层应用代码的情况下访问单独的租户特定的资源,诸如单独的PDB。
示例性域配置与多租户环境
根据实施例,应用可以被部署到在域级别上的资源组模板,或者被部署到受分区限制的或受域限制的资源组。可以使用每应用或每分区地指定的部署计划来覆盖应用配置。部署计划也可以作为资源组的部分被指定。
图4示出了根据实施例的用于示例性多租户环境的域配置。
根据实施例,当系统启动分区时,它根据所提供的配置创建虚拟目标(例如,虚拟主机)和到各自数据库实例的连接池,对每个分区包括一个。
典型地,每个组员组模板可以包括一个或更多相关的应用以及这些应用所依赖的资源。每个分区可以通过提供资源组模板中的可部署资源到与该分区关联的特定值的绑定,来提供在它所引用的资源组模板中未指定的配置数据;在一些情况下,包括覆盖由资源组模板指定的某些配置信息。这使得系统能够使用每个分区已经定义的特性值来为每个分区不同地激活由资源组模板表示的应用。
在一些实例中,分区可以包含不引用资源组模板的或者直接定义其自己的受分区限制的可部署资源的资源组。在分区内定义的应用和数据源通常只对该分区可用。可以部署资源,使得可以通过使用partition:<partitionName>/<resource JNDI name>或者domain:<resource JNDI name>来从跨分区访问它们。
例如,MedRec应用可以包括多个Java应用、数据源、JMS服务器以及邮件会话。为了为多个租户运行MedRec应用,系统管理员可以定义单个MedRec资源组模板286,同时在模板中声明那些可部署资源。
与域级别的可部署资源相比,在资源组模板中声明的可部署资源可能在模板中未完全配置或者不能原样激活,因为它们缺少一些配置信息。
例如,MedRec资源组模板可以声明被应用使用的数据源,但是它可能未指定用于连接到数据库的URL。与不同租户关联的分区,例如分区BUC-A 290(Bayland Urgent Care,BUC)和分区VH-A 292(Valley Health,VH),可以通过各自包括引用(296、297)MedRec资源组模板的MedRec资源组293、294来引用一个或更多资源组模板。该引用然后可以被用来为每个租户创建(302、306)虚拟目标/虚拟主机,包括与BUC-A分区关联的、用于被BaylandUrgent Care租户使用的虚拟主机baylandurgentcare.com 304;以及与VH-A分区关联的、用于被Valley Health租户使用的虚拟主机valleyhealth.com 308。
图5进一步示出了根据实施例的示例性多租户环境。如图5中所示,并且继续来自以上的示例(其中两个分区引用MedRec资源组模板),根据实施例,小服务程序(servlet)引擎310可以被用来支持多个租户环境,在此示例中是Bayland Urgent Care Physician租户环境320和Valley Health Physician租户环境330。
根据实施例,每个分区321、331可以定义不同的虚拟目标,以在其上接受用于该租户环境的入流量,并且可以定义用于连接到分区及其资源324、334(在本示例中分别包括或者Bayland Urgent Care数据库或者Valley Health数据库)的不同的URL 322、332。数据库实例可以使用兼容模式,因为同一应用代码将针对两种数据库执行。当系统启动分区时,它可以创建虚拟目标和到各自数据库实例的连接池。
分区安全性
以上所描述的分区特征提供了各个分区之间的隔离,以及分区与包含它们的多租户系统之间的隔离。如以上所描述的,每个分区可以包含它们自己的应用、经由资源组模板引用域范围的应用、以及具有它自己的配置。可分区的实体可以包括例如JMS、JDBC、JavaMail、WLDF资源的资源,以及诸如JNDI命名空间、网络流量、工作管控器的其他部件。期望多租户环境中的安全性功能适当地建模此隔离以及实施访问控制,以便保护分区环境/多租户环境中的应用和系统。根据本发明的实施例,系统可以包括对多租户应用服务器环境中安全性的支持。系统提供支持以上所描述的多租户环境和分区特征的安全性服务。
本发明的实施例提供安全性服务的每分区配置,包括用于认证、授权、凭证映射、审核、密码验证、证书验证以及用户锁定的配置。本发明的实施例也提供用于分区资源和全局资源的访问控制,使得部署到具体分区的应用只能被该具体分区的用户访问;用于具体分区的分区配置只对该具体分区的管理员(以及WebLogic管理员)可用;以及分区管理员对全局可见的资源和配置只能够只读访问。
图6示出了根据实施例的用于在多租户环境中支持安全性的系统和方法的一般功能。如图6中所示,分区A 250和分区B 262中的每一个可以被提供单独的分区安全性配置A650和分区安全性配置B660。分区安全性配置A 650为分区A的用户和管理员提供了对分区A资源251的受保护的访问以及对全局资源140的受限制的访问,同时阻止这些管理员和用户对分区B资源261的访问。域管理员600被允许初始化用于每个域的分区安全性配置以确保用于分区资源和全局资源的访问控制,使得部署到具体分区的应用只能被该具体分区的用户和管理员访问。
本发明的实施例支持并采用增强的可插拔身份管控(Identity Management,IdM)系统,该系统提供系统和分区界限内的或者跨系统和分区界限的、对各个主体、其认证、授权、以及权限控制的管控。本发明的具体实施例也提供管理服务,该管理服务提供将一个或更多分区用户指派为具体分区的分区管理员的能力。
为多租户服务器环境中安全性所提供的支持包括若干特征和行为,主要涉及领域以及基于领域的服务,包括:
·多领域:对多个活动领域的支持通过允许每个分区针对不同领域执行而实现对于基于领域的服务的每分区配置。分区也可以选择共享安全性领域,带来随之而来的关于安全性配置和元数据的独立性和隔离的损失。
·身份域:身份域是用于用户和组的逻辑命名空间,典型地表示物理存储中的用户和组的离散集合。身份域被用来标识与具体分区关联的用户以及用于其他目的。
·感知分区的安全性服务:感知分区的安全性服务理解它们正在其中被执行的分区上下文,所以它们可以基于拥有它的分区例如控制对资源的访问。通过定义,感知分区的服务也是感知身份域的,并且以下描述这些特征和功能区域的进一步细节。
多领域支持
领域或者安全性领域是系统中用于安全性服务的已命名的配置。领域被用来配置认证、授权、角色映射、凭证映射、审核以及用于多租户服务器环境中的其他服务。本发明的实施例提供安全性服务的每分区配置,包括用于认证、授权、凭证映射、审核、密码验证、证书验证以及用户锁定的配置。系统支持多个活动领域。每个活动分区可以与不同的安全性领域关联。因此,在本发明实施例所提供的多租户系统中,可以有与多个领域运行时对应并且与多个不同分区对应的多个活动配置。
系统所提供的安全性服务可以被描绘为“基于领域的”或者“非基于领域的”。基于领域的服务是为安全性“领域”配置的服务,如在配置中由领域对象表示。基于领域的服务包括认证、授权、凭证映射、审核以及若干其他服务。非基于领域的服务是未被配置在领域对象上的那些服务。它们包括域范围的服务和被配置在安全性配置对象(域对象的子体、用于领域对象的父容器)上的设置,以及各种其他服务。
图7显示了配置用于多个领域的使用的多租户环境。分区安全性采用安全性服务支持多个活动领域。多个领域对象实例被作为安全性配置对象上的数组属性管控。如图7中所示,安全性配置对象700包括3个领域对象:领域A 750、默认领域702以及领域B 760。默认领域702表示被域/全局运行时使用的领域。然而,领域A 750和领域B760在运行时也是活动的。默认领域也可以被指代为“管理员领域”,因为它被用于执行用于系统和管理性资源以及用于其他管理性目的的授权检查。
每个分区安全性配置具有引用配置在域配置的安全性配置对象上的领域之一的领域属性。因此分区安全性配置A 650包括引用领域A 750的领域属性752,而分区安全性配置A 660包括引用领域B 760的领域属性762。方法被添加到分区资源以支持为该分区配置安全性领域。每个分区安全性配置必须具有有效的领域引用(这也意味着如果领域被分区引用则它不能被删除)。只有系统管理员600能够改变分区的领域引用——分区管理员不能。在分区的领域引用可以被改变之前,必须停止该分区。
分区到领域的映射是完全灵活的。每一个分区可以引用不同的领域,所有分区可以共享同一领域,或者一些分区可以引用不同领域而其他分区共享领域。任意的组合是可能的。为各个分区配置单独的领域为分区提供了最大的独立性和隔离。在多个分区之间共享领域可以简化配置,并且对于互相信任并且具有类似的安全性配置要求的相关分区可能是好选择。然而独立性和隔离被降低,并且一个分区的管理员可能采取影响其他共享分区的动作。共享默认/管理员领域是允许的,但是不推荐。如果默认领域被共享,则必须小心避免被分区管理员进行权限升级/对分区管理员进行权限升级,因为默认策略将允许它们修改默认领域中的角色映射和授权策略。
领域在表示它的领域对象被系统管理员实例化并且添加到安全性配置对象中的领域数组时被创建。新领域的创建可以或者在线发生或者离线发生。无论何时改变被保存/激活,或者对于离线改变当服务器启动(boot)时,领域配置都被验证。为了服务器启动,默认领域必须被配置并且是有效的。创建领域触发对管控领域的运行时生命周期必要的运行时对象的创建。一旦被创建,领域就可用于使用。它可以被分区引用,或者被域/全局运行时引用,并且运行时代码可以请求它的服务。响应于用法模式以及配置改变,已创建的领域可以被任意次数地启动、停止或者重启。
当领域被需要来服务请求或者用于管控目的时,领域按需启动。具体而言,当启动分区时,(如果分区的领域不是已经在运行)分区的领域也被启动。只要领域存在,即使跨领域重启,对领域服务的运行时引用也必须保持有效。尝试为不存在的领域获得或者调用服务将导致错误或者异常。尝试为存在的领域获得或者调用服务应当总是成功,即使该领域必须启动以满足请求,或者即使在获得了服务引用之后该领域被启动、停止或者重启。
在分区环境中,可以有多个活动领域。因此,在请求领域服务时总是指定领域名称。所指定的领域名称可以标识具体领域或者默认领域。领域名称参数是标识请求服务的领域的字符串值。对于大多数服务调用,要使用的正确的领域取决于调用者的分区上下文、被调用的服务和方法、以及该调用的参数。在指定默认领域的地方,逻辑被评估每个调用的上下文、确定要委托的正确的领域以及调用该领域中适当的服务的“服务代理”应用来选择正确的领域。以这种方式封装领域选择避免了调用代码实现复杂逻辑或者缓存来自多个领域的服务的引用的需要。运行时代码从安全性服务管控者(Security Service Manager)获得对基于领域的安全性服务的引用。大多数调用者在它们初始化时获得用于它们需要一次的服务的引用,并且只要它们被需要就保持那些引用。
安全性服务管控者(Security Service Manager)返回服务代理而不是对领域服务的直接引用。服务代理行为将基于请求服务时给定的领域名称而变化。当现有领域的实际名称被指定时,所返回的代理将被硬连线以委托给该特定的领域。硬连线的代理服务将全部请求委托给已配置的领域。下面的代码段示出了调用者可以如何获取对PrincipalAuthenticator服务的引用。
import weblogic.security.service.PrincipalAuthenticator;
import weblogic.security.service.SecurityServiceManager;
PrincipalAuthenticator pa=SecurityServiceManager.getPrincipalAuthenticator(kernelID,realmName);
如所示出的,调用者向Principal Authenticator服务请求已标识的领域名称。系统安全性服务返回取决于所指定的领域的领域服务代理引用。
当在安全性服务请求中指定“默认”领域时,所返回的用于服务的代理将提供上下文敏感的(context-sensitive)(或者“自动选择”的)行为,以便选择要返回的正确的代理。自动选择的代理服务将一些请求委托给为当前分区配置的领域,同时将其他请求委托给默认/管理员领域。认证服务总是本地的,并且总是被委托给当前分区的领域。授权服务有时是本地的并且被委托给当前分区的领域,例如对于诸如小服务程序或者EJB资源的分区。授权服务有时是全局的并且被委托给默认/管理员领域,例如对于诸如系统资源的(例如JMX和Admin资源)全局资源。审核服务总是本地的并且被委托给当前分区的领域。领域服务使用来自其自己领域的审核服务来审核它们自身。凭证映射服务、证书建立/验证、密码验证、以及用户锁定总是本地的并且被委托给当前分区的领域。
身份域
身份域(Identity Domain,IDD)是用于用户和组的逻辑命名空间。身份域被用来标识和区分用户的不同集合。身份域可以表示来自具体公司(例如“Acme Corp”IDD)或者来自公司内的部门(例如"HR Dept"IDD)的用户。在云环境中,身份域可以将系统管理员与客户服务代表区分开,并且将两者与租户用户区分开。身份域对于区分来自不同分区的用户以及对于归属资源的所有权是必要的。因此它们是用于可以区分一个分区和另一个分区的角色映射和授权策略的使能技术,以及用于必须区分来自不同分区的用户或者资源的其他服务的使能技术。因此,身份域旨在用于基本上所有分区环境中。
由身份域所表示的逻辑命名空间在对应的用户存储的结构/拓扑中具有物理表现。身份域的物理表示可以是被目标用户存储技术所支持的任何东西——例如,用于每个身份域的单独的LDAP实例、或者添加到数据库中的用户记录的身份域字段。在共享的IdM/Oracle Public Cloud(OPC)情况下,身份域被表示为单个Oracle Internet Directory(OID)实例的Users和Groups层次结构中有区别的子树。
在多租户服务器环境中,身份域充当“租户”与“分区”之间的连接点/对齐点。单个身份域表示租户的用户(即在租户和身份域之间存在一一映射)。这意味着如果具体分区被配置为使用与租户关联的身份域,则它可以实质上被“分配到”租户或者被租户“拥有”。也就是说,该租户的用户将能够访问该分区,而其他租户的用户将不能。
分区主身份域——在分区环境中,身份域服务于若干目的。首先,它们区分与不同分区关联的用户。每个分区被配置为具有标识与分区关联的用户的集合的主身份域(Primary Identity Domain,PIDD)。默认访问策略允许这些用户——但不是来自其他身份域的用户——访问该分区。多个分区配置相同的主身份域是可能的;然而,这样做的效果是去除了这些分区的用户之间的任何区别。来自共享的身份域的用户将能够访问所有的共享分区。主身份域也用来以便于写角色映射以及授权策略的形式来指示分区的资源的“所有权”。将分区的资源看作它们是被分区的身份域所“拥有”的,允许用户的身份域和资源的身份域之间的简单比较。当身份域在使用中时,一个身份域必须被指派为域的管理性身份域(Administrative Identity Domain,AIDD)。这实际上是域的主身份域。它是系统管理员所属的身份域,并且是系统和管理性资源的“所有权”所归属于的身份域。
图7显示了身份域在使用中的多租户服务器环境100。如图7中所示,分区A 250的配置650包括主身份域PIDD A 754的标识。PIDD A 754与LDAP A 756关联。分区B 260的配置660包括主身份域PIDD B 764的标识。PIDD B 764与LDAP B 766关联。域级别的安全性配置引用管理性身份域AIDD 704。AIDD 704与LDAP 706关联。注意,尽管在图7中示出使用独立的LDAP路径,但是用于每个身份域的用户存储是可配置的。取决于租户需要或者租户提供的现有的用户存储,用户存储可以在多租户环境100的内部或者外部。可替代地,PIDDA754和PIDD B 766可以例如指代LDAP 706的单独的子树,或者指代添加到数据库中用户记录的身份域字段。主身份域引用允许可插拔接口的配置,该接口处置对与主身份域关联的用户存储的无论什么的调用。不同分区可以使用不同类型的用户存储。
如果在多租户服务器环境中至少一个身份域被配置,则身份域被认为在“使用中”。当身份域在使用中时,从主体总是携带身份域字段的意义上,身份域总是“启用的”,并且认证提供者可以总是创建带有非null/非空身份域值的主体。身份域在安全性配置对象的管理性身份域(Administrative Identity Domain)属性、系统中每个分区对象的主身份域(Primary Identity Domain)属性、以及系统中配置的感知身份域的认证提供者的身份域(Identity Domain)属性中被配置。如果任何这些属性被设为非null、非空值,则认为身份域在使用中。
如果身份域在使用中,则:管理性身份域必须被设置(被配置验证检查)并且每个分区必须配置主身份域(被配置验证检查)。对于任何领域,系统中配置的所有角色映射、授权、凭证映射以及审核提供者必须实现感知身份域的提供者(Identity Domain AwareProvider)标记接口(在领域启动时被检查)。可以认证来自适当身份域的用户(这不被配置验证检查)的认证提供者在默认/管理员领域中以及每个分区的领域中被配置。因此,使用图7中所示的示例,领域A 750必须配置能够认证来自PIDD A 754的用户的认证提供者,并且领域B 760必须配置能够认证来自PIDD B 764的用户的认证提供者。类似地默认领域702必须配置能够认证来自AIDD 704的用户的认证提供者。
也可以通过设置安全性配置对象的感知身份域的提供者要求的(IdentityDomain Aware Providers Required)属性来强制使用感知身份域的提供者。将此属性设为真将强制全部角色映射、授权、凭证映射以及审核提供者支持感知身份域的提供者(Identity Domain Aware Provider)接口,即使在系统中没有配置身份域。
安全性提供者接口(Security Provider Interface,SSPI)提供者应当是感知身份域的,以在分区环境中——或者更确切地,在身份域被配置到系统中的环境中——正确地作用。例如,不能理解身份域的授权提供者不能在具有相同名称但具有不同身份域的两个用户之间正确地进行区分,并且因此不能做出有效的授权决定。当身份域在使用中时,或者感知身份域的提供者要求的(Identity Domain Aware Providers Required)属性被设置为真时,则以下类型的所有提供者必须是感知身份域的并且实现标记接口:
·角色映射
·授权
·凭证
·映射审核
与实现标记接口一起,感知身份域的提供者在用户主体和组主体携带身份域值时恰当地处置用户主体和组主体,包括在测试平等性时考虑身份域、以及构造考虑身份域的映射密钥。感知身份域也必须如在以下授权部分中所描述的那样恰当地考虑资源所有权。
认证
如以上所描述的,身份域(Identity Domain,IDD)是用于用户和组的逻辑命名空间。身份域被用来标识和区分用户的不同集合。身份域对于区分来自不同分区的用户以及对于归属资源的所有权是必要的。因此它们是用于可以区分一个分区和另一个分区的角色映射和授权策略的使能技术,以及用于必须区分来自不同分区的用户或者资源的其他服务的使能技术。相应地,当用户被认证时,它们就具体身份域被认证是必要的。作为示例,认证机制必须区分分区A的用户John Smith与分区B的用户John Smith。因此,用户是就用户名以及用户所属的身份域而被认证的。
系统所提供的安全性服务可以被描绘为“基于领域的”或者“非基于领域的”。基于领域的服务是为安全性“领域”配置的服务,如在配置中由安全性领域对象表示。认证是配置在领域对象上的基于领域的安全性服务。
在本发明的实施例中,提供了系统以在采用身份域的多租户环境中提供主体的认证。恰当地表示身份域的基础类型(回调、主体)被提供。使得容器和应用能够指定用户的身份域的应用编程接口被提供。附加地,服务和提供者包括支持针对身份域的认证的特征,以及对得到的主题和主体的恰当处置。
在采用身份域的多租户环境中,主体是通过注册用户所使用的用户名以及身份域来定义的。接口标识出携带身份域信息的主体,并且声明获取关联的身份域的方法。类被用来实现此接口以及携带身份域信息。主体的名称和身份域两者均被用在比较中。主体签名涵盖名称和身份域字段两者。主体工厂(Principal Factory)类支持创建具有身份域值的用户主体和组主体。
分别允许使用关联的身份域表示用户名和各自使用关联的身份域表示组名的集合的两个回调Identity Domain Use Callback与Identity Domain Group Callback被提供。回调处置者(Callback Handlers)被提供来支持处置新的回调。合在一起,回调和回调处置者允许应用和容器指定它们正在认证的用户的身份域,并且允许认证服务和提供者在认证期间访问用户的身份域信息。
将用户凭证当作Callback Handler的应用编程接口可以使用能够处置允许使用关联的身份域表示用户名的Identity Domain User Callback的回调处置者来容易地支持身份域。使用用户名字符串而非回调的遗留认证API被修改,使得它们可以使用CallbackHandler程序参数以便支持Identity Domain Use Callback与Identity Domain GroupCallback。
小服务程序容器的(见图3)表格登录实施方案被拓展为支持新的身份域参数,使得登录表格可以收集(或者以其他方式确定)用户的身份域,并将它随标准的用户和密码一起传递至容器。因此,例如,访问租户A环境320的用户将被提供要求用户ID和密码的登录表格。小服务程序容器提供默认值(即当前分区的主身份域值)。因此,例如,因为在租户A环境320中提供了登录表格,所以登录数据将自动地与分区A 250(见图7)的PIDD A 754关联。用户将不会被要求指定身份域。然而,如果指定不同的身份域值,则它覆盖由容器提供的默认值——然而,分区A中的登录表格可以不被配置为允许选择除分区的默认身份域之外的身份域。
接受字符串用户名参数的若干应用认证接口和容器认证在分区环境中被调用时自动地提供身份域。此行为依赖于为分区设置的主身份域值,并且确保遗留应用在分区中运行时能够正确地认证。不要求对应用的改变。为了使默认身份域行为恰当地工作,对于所有的协议/容器,直到分区被鉴别并且可用于执行上下文时才可以尝试容器认证。
在采用身份域的多租户环境中用于认证主题的处理模型与传统的认证功能类似。因此,传统认证系统和方法可以与附加特征组合采用,以确保认证提供者是感知身份域的。认证提供者必须感知它们能够认证的身份域,并且忽略对其他身份域进行认证的请求。例如,配置来对“Acme”身份域进行认证的提供者应当只响应于认证Acme用户的请求,同时忽略来自其他身份域的用户。典型地,受支持的身份域的列表将来自于提供者的配置——使得管理员具有对系统可见的身份域的控制——但是这不是处理模型的要求。如果可以这样做并且被配置为这样做,则单个提供者可以对一个身份域或者很多身份域进行认证,并且也可以认证不具有身份域的用户。可以配置多个认证提供者,每一个认证提供者对一个或更多身份域进行认证。
参考图7,例如,领域A 750、领域B 760以及默认领域702中的每一者可以配置它们自己的认证提供者。如所示的,领域A 750配置认证提供者Auth A 758,领域B配置认证提供者Auth B 768,而默认领域702配置认证提供者Auth 708。或者,例如可以配置接收并使用身份域信息来确保用户就正确的身份域被认证的单个认证提供者。
诸如Auth A 758和Auth B 768的认证提供者标识出它们支持的身份域。认证提供者对每个已配置的认证提供者实例只支持一个身份域。SSPI实例——身份域认证者(Identity Domain Authenticator)——允许每个认证提供者配置/声明它们支持的身份域。能够认证身份域用户的认证提供者实现接口并且处置身份域回调。
可以采用Java认证与授权服务(Java Authentication and AuthorizationService,JAAS)处理模型来实现认证提供者。JAAS可以被用于两个目的:对于用户的认证,用于可靠地和安全地确定谁当前在执行Java代码,无论代码是作为应用、小程序、bean组件还是小服务程序在运行;而对于用户的授权,用于确保它们具有做出被执行的动作所要求的访问控制权限(许可)。JAAS认证以可插拔的方式被执行。这容许Java应用保持独立于底层认证技术。在不要求对应用本身的修改的情况下可以插入新的技术或者更新后的技术。用于要被使用的具体认证技术的实施方案在运行时被确定。实施方案在登录配置文件中被指定。
认证提供者以在领域上配置的顺序被调用,并且与为每个认证提供者设置的JAAS控制标志一致。给定以上所描述的处理模型,用于身份域认证者的最适当的配置一般是每个提供者:a)处置身份域的离散的、不重叠的集合;以及,b)被配置为带有"SUFFICIENT"JAAS控制标志。其他配置是允许的,但是必须仔细考虑JAAS控制标志与可以基于目标身份域来选择处置或忽略认证请求的认证提供者之间的交互。
图8示出了根据实施例的在具有多个身份域的多租户环境中由登录模块实现的方法。使用图8中所示的方法,在具有多个身份域的多租户服务器环境中的认证提供者的登录模块确定是否通过尝试处置回调来处置认证请求。在步骤810处,向配置在领域上的第一认证提供者提供Callback。在步骤812处,认证提供者尝试处置Identity Domain UserCallback。在步骤814处,如果返回Identity Domain User Callback,则认证提供者从它获取用户的身份域。在步骤816处,如果用户的身份域被此认证者处置,则认证该用户。Password Callback被用来获得用户的密码。在步骤818处,如果用户的身份域不是被此认证者处置,则返回“false”以忽略该请求。在步骤820处,如果认证提供者被配置来处置不带有身份域的用户,则认证提供者尝试处置Name Call back。在步骤822处,如果未发现名称,则返回“false”以忽略该请求。在步骤824处,如果发现了名称,则认证该用户。PasswordCallback被用来获得用户的密码。在步骤826处,如果认证提供者不能认证该用户,则系统尝试配置在领域上的下一个认证提供者(如果有的话)。如果第一登录模块忽略请求,则该请求随后被继续传递到尝试处置该请求的另一个登录模块。认证提供者以在领域上配置的顺序被调用,直到请求被处置或者失败。
身份断言提供者(identity assertion providers)是基于令牌或者凭证而非用户名和密码来认证用户的认证提供者;例如,SAML断言、Kerberos票据、或者基于cookie的会话令牌。它们不处置回调。相反,它们通过验证用户的令牌并检验其内容来确定用户的身份——用户名、组成员身份等等。所获得的用户信息以Callback Handler的形式返回,它最终被传递到登录模块链以向用户的主题填充适当的主体。
与其他认证提供者一样,在分区环境中使用的身份断言提供者被配置为感知身份域的,并且实现适当的身份域认证者(Identity Domain Authenticator)接口以声明它们的身份域支持。从配置或者从已断言的令牌,它们可以确定为用户(以及,潜在地为任何已断言的组)断言什么身份域。当断言具有身份域的用户时,返回的Callback Handler被配置为处置Identity Domain User Callback以及可选地处置Identity Domain GroupCallback。
登录模块优选地使用主体工厂(Principal Factory)来创建主体。该工厂提供创建具有身份域信息的主体的方法。如果直接实例化主体,则必须使用适当的构造器或者设置器方法来提供身份域。主体验证服务在认证时对所有主体签名(sign),并且验证进入系统中的主体的签名以确保它们是原始地被本地域认证的。实际的签名/验证被委托给主体验证者(Principal Validator)提供者。
主体验证是基于领域的服务,这意味着不同的领域可以不同地验证主体。这样做将允许被一个领域认证的主体与被不同的领域认证的主体区分开来。尽管此行为可以潜在地用在许多场景中,但它不是必不可少的。例如,多租户系统可以使用在域上配置并且因此在范围上是域范围的单个签名密钥——“域凭证”。因此,无论哪个领域认证了主体,主体都是被用同一密钥签名的。在替代性实施例中,相反地,不同的签名密钥可以被不同的领域采用。
主体与身份断言缓存(Principal and Identity Assertion Caches)。每个领域维护主体缓存和身份断言缓存。前者是被签名的主体的缓存,被用于避免重复地签名同一主体,因为签名是相对开销大的操作。缓存键优选地是用户名和身份域,使得来自不同身份域的主体不被混淆。后者是从身份断言得到的主题的缓存。此缓存被实现来避免在同一用户身份被重复断言时重复地查询LDAP(或者其他用户存储)以取得用户信息(组成员身份等等)。如同主体缓存,缓存键优选地是用户的名称和用户的身份域,使得来自不同身份域的主体不被混淆。
授权
在实施例中,多租户服务器环境实现基于角色的访问控制(RBAC)模型,该模型受由角色映射服务和授权服务两者组成的授权子系统支持。这两种服务在很大程度上是独立的,但是在就具体已标识的资源做出授权决定时,授权服务调用角色映射服务来确定用户的角色。角色映射服务和授权服务两者都委托给提供实际角色映射功能和授权功能的安全性支持提供者。
由系统提供的安全性服务可以被描绘为“基于领域的”或者“非基于领域的”。基于领域的服务是为安全性“领域”配置的服务,如在配置中由安全性领域对象表示。授权是配置在领域对象上的基于领域的安全性服务。
安全性支持提供者实现可以在角色映射和授权规则中使用的若干策略“谓词”。如果满足具体条件(例如如果主题中的主体与特定的用户名或者特定的组名匹配,或者请求来源于特定的IP地址),则这些谓词授予角色或直接授予对资源的访问。可以使用逻辑AND、OR或者NOT语义来组合谓词。对RBAC的支持是由角色谓词提供的,角色谓词被用在如果用户具有指定的角色则授予访问的授权规则中。在RBAC模型中,访问的主要决定因素是用户是否具有或者不具有给定的角色。
对于角色映射,最经常使用的谓词是组谓词,组谓词基于在具体组中的成员身份授予角色。WebLogic管理性角色映射使用此谓词,从而将例如“Admin”角色授予“Administrator”组的成员。(匹配特定的用户名的)用户谓词的使用较为少见。诸如IP地址以及一天中的时间的附加谓词典型地被用于基于上下文进一步约束角色。例如,“BankTeller”角色可以被授予“Tellers”组的成员,但只在银行开门营业的时间期间。
在分区环境中,访问控制采取附加的维度。用户、组以及资源现在与分区关联,并且访问决定在除用户的身份和角色之外还考虑用户的身份域以及资源所属的分区两者。两个新特征/行为启用感知分区的访问控制。首先,考虑身份域来比较用户和组的新谓词被提供。其次,身份域被用来表示资源的分区所有权。因此,用户和资源两者均与身份域关联。因此,可以通过授权提供者来做出授权决定,该决定确定具体用户是否具有正确身份域中的正确角色来访问与身份域关联的资源。
资源实际上属于分区,而不是属于在例如图3中所示的身份域。然而,将资源所有权表示为身份域是有益的,因为它提供了在做出授权决定时资源身份域与用户/组身份域之间的直接比较。简单的字符串比较可以确定两个身份域是否匹配。将分区与身份域比较来确定“匹配”的手段将要求制约性的命名约定、映射表或者两者,并且在运行时将是更低效率的。用于分区的身份域映射被配置在分区对象的主身份域(Primary IdentityDomain)属性上,例如图7的PIDD A 754和PIDD B 764。使用身份域来表示资源所有权的更多益处是它不将模型捆绑到分区——因此身份域也可以被用于在非分区环境中的资源授权的控制。
以下谓词提供了对感知身份域的用户和组匹配的支持。谓词可用于角色映射和授权规则两者,但是期望与WebLogic的RBAC模型一致,主要用于角色映射。
图9示出了根据实施例在具有多个身份域的多租户环境中实现的授权子系统。如图9中所示,与身份域912关联的用户910尝试访问与身份域916关联的资源914。包装器类被用来指定这些值。如果必要,包装器类将确定当前分区,以及将所提供的所有权值转换成资源身份域值以用于被角色映射/授权提供者使用。包装器也确保提供正确的资源身份域值。对资源的访问被包括角色映射服务920和授权服务930的授权子系统900控制。角色映射服务920和授权服务930委托给提供实际角色映射功能和授权功能的安全性支持提供者940。安全性支持提供者940实现谓词942,谓词942提供允许不仅确定用户是否在用于访问所调用的资源的角色中、还确定用户IdD 912是否与资源IdD 916匹配的规则。调用资源的进程提供标识对其请求访问的资源的所有权的资源身份域值。因此,使授权提供者能够使用感知身份域的谓词来将用户身份、用户身份域以及用户角色与资源和资源身份域所有权进行比较,以做出授权决定。
分区安全性添加一个新的方法、三个新的Context Handler属性、以及用于授权和角色映射API的Context Handler包装器类。一个新的是Role Manager接口上的User InRole()方法,其允许调用者直接确定用户是否在特定的角色中,从而向查询传递ResourceHandler和Context Handler作为输入。三个新的Context Handler属性允许调用者在调用授权和角色映射API时指定资源的资源所有者信息:RESOURCE_PARTITION(分区名称)指示资源的所属分区。RESOURCE_OWNERSHIP_DEFAULT指示当前分区拥有该资源,如调用者上下文所确定的。RESOURCE_IDENTITY_DOMAIN允许调用者指定分区身份域为资源所有者。新的Context Handler包装器类Resource IDD Context Wrapper,调用者可以使用它来装饰(decorate)具有适当的身份域所有权信息的现有Context Handler实例。
如在多个领域的讨论中所提及的,容器通过在运行时将请求导向正确领域的代理服务来与安全性服务交互。在Authorization Manager与Role Manager的情况下,代理将使用考虑资源类型和所有权的逻辑来选择正确的领域。对于由当前分区所拥有的资源——例如应用资源——“本地”领域将被使用。对于系统资源——例如——默认/全局领域将被使用。随后将取决于资源类型来确定是否为本地分区的领域或者为默认/全局领域调用授权/角色映射服务。
感知身份域的谓词的使用使得受限制的角色——只在特定的身份域的上下文中有效的角色——成为可能。对于拥有请求访问的资源的身份域,使用Owner IDD Group谓词,Partition Admin角色可以被授予给作为Partition Administrators组的成员的用户。(资源是角色查询以及授权查询的参数)。可以以类似的方式授予Tenant Admin角色。以下新的角色策略将被提供给分区域中的领域:注意基于租户的角色映射可以由需要它们的分层部件提供。
根据本公开的教导,使用一个或更多传统通用数字计算机或专用数字计算机、计算设备、机器、或者微处理器(包括已编程的一个或更多处理器、存储器和/或计算机可读存储介质),本发明可以被方便地实现。如软件领域技术人员显而易见的,熟练的编程者基于本公开的教导可以容易地准备适当的软件编码。
在一些实施例中,本发明包括计算机产品,该产品是具有存储于其上/中的指令的非暂态存储介质或者计算机可读介质,该指令可被用来编程计算机以执行本发明的任何处理。存储介质可以包括但不限于任意类型的盘,包括软盘、光盘、DVD、CD-ROM、微驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器设备、磁卡或光学卡、纳米系统(包括分子记忆IC)或者适于存储指令和/或数据的任意类型的介质或设备。
为了示意和描述的目的,已经提供了本发明的以上描述。它不旨在穷举或者限制本发明为所公开的确切形式。对本领域技术人员而言,许多修改和变形是显而易见的。这些修改和变形包括所描述的特性的任意相关组合。实施例是为了最好地解释本发明的原理及其实际应用而选择和描述的,从而使得其他本领域技术人员能够理解各种实施例的本发明以及理解带有适于所预期的具体用途的各种修改的本发明。本发明的范围旨在由以下权利要求及其等价物定义。

Claims (15)

1.一种用于在多租户应用服务器环境中提供安全性的方法,所述多租户应用服务器环境包括多个分区、多个分区资源以及多个全局资源,所述方法包括:
定义多个安全性领域,所述多个安全性领域包括管理员安全性领域、第一安全性领域以及第二安全性领域;
将所述多个分区中的第一分区配置为具有所述多个分区资源中的第一多个分区资源;
将所述多个分区中的第二分区配置为具有所述多个分区资源中的第二多个分区资源;
提供将所述第一分区与所述第一安全性领域关联的第一安全性配置;
提供将所述第二分区与所述第二安全性领域关联的第二安全性配置;
将第一主身份域与所述第一分区关联,其中所述第一主身份域表示与第一租户关联的第一多个用户;
将第二主身份域与所述第二分区关联,其中所述第二主身份域表示与第二租户关联的第二多个用户;
在运行时同时操作所述管理员安全性领域、第一安全性领域以及第二安全性领域中的每一个,以控制用于对所述多个分区资源及所述多个全局资源的访问的认证与授权;
由此,与所述第一租户关联的所述第一多个用户能够访问所述第一分区的所述第一多个分区资源,但不能访问所述第二分区的所述第二多个分区资源;以及
由此,与所述第二租户关联的所述第二多个用户能够访问所述第二分区的所述第二多个分区资源,但不能访问所述第一分区的所述第一多个分区资源。
2.如权利要求1所述的方法,还包括:
将所述第一主身份域配置为引用第一身份存储,所述第一身份存储用于存储与所述第一租户关联的所述第一多个用户的第一表示;以及
将所述第二主身份域配置为引用与所述第一身份存储不同的第二身份存储,所述第二身份存储用于存储与所述第二租户关联的所述第二多个用户的第二表示。
3.如权利要求1所述的方法,还包括:
将所述第一主身份域配置为引用身份存储的第一部分,所述身份存储的第一部分用于存储与所述第一租户关联的所述第一多个用户的第一表示;以及
将所述第二主身份域配置为引用所述身份存储的第二部分,所述身份存储的第二部分用于存储与所述第二租户关联的所述第二多个用户的第二表示。
4.如权利要求1至3中任一项所述的方法,还包括:
将管理员身份域与所述多租户应用服务器环境关联,其中所述管理员身份域表示所述多租户应用服务器环境的多个系统管理员;以及
由此,与所述多租户应用服务器环境关联的所述多个系统管理员能够访问所述多个全局资源。
5.如权利要求1至3中任一项所述的方法,还包括:
提供第一认证服务,所述第一认证服务被配置为认证与所述第一租户关联的所述第一多个用户,以及结合所述第一多个用户中的一个或更多个用户生成标识所述第一主身份域的第一被签名的主体。
6.如权利要求1至3中任一项所述的方法,还包括:
将所述第一多个资源中的每一个资源与所述第一主身份域关联;
将所述第二多个资源中的每一个资源与所述第二主身份域关联;
提供授权服务,所述授权服务响应于接收到来自用户的访问资源的调用,将与所述用户关联的主身份域和与所述资源关联的主身份域进行比较,并且仅当与所述用户关联的主身份域匹配与所述资源关联的主身份域时授权对所述资源的访问。
7.如权利要求1至3中任一项所述的方法,还包括:
提供第一认证服务,所述第一认证服务被配置为认证与所述第一租户关联的所述第一多个用户,以及结合所述第一多个用户中的一个或更多用户生成标识所述第一主身份域的第一被签名的主体;
提供第二认证服务,所述第二认证服务被配置为认证与所述第二租户关联的所述第二多个用户,以及结合所述第二多个用户中的一个或更多用户生成标识所述第二主身份域的第二被签名的主体;
将所述第一多个资源中的每一个资源与所述第一主身份域关联;
将所述第二多个资源中的每一个资源与所述第二主身份域关联;
提供授权服务,所述授权服务响应于接收到与主体关联的访问资源的调用,将在所述主体中标识的主身份域和与所述资源关联的主身份域进行比较,并且仅当与所述主体关联的主身份域匹配与所述资源关联的主身份域时授权对所述资源的访问。
8.一种用于在多租户应用服务器环境中提供安全性的装置,所述多租户应用服务器环境包括多个分区、多个分区资源以及多个全局资源,所述装置包括用于执行如权利要求1至7中任一项所述的方法的步骤的部件。
9.一种包括存储于其上的指令的非暂态计算机可读介质,所述指令用于在包括多个分区的多租户应用服务器环境中提供安全性,所述多租户应用服务器环境具有多个分区资源和多个全局资源,所述指令在被执行时使系统执行以下步骤:
定义包括管理员安全性领域、第一安全性领域以及第二安全性领域的多个安全性领域;
将所述多个分区中的第一分区配置为具有所述多个分区资源中的第一多个分区资源;
将所述多个分区中的第二分区配置为具有所述多个分区资源中的第二多个分区资源;
提供将所述第一分区与所述第一安全性领域关联的第一安全性配置;
提供将所述第二分区与所述第二安全性领域关联的第二安全性配置;
将第一主身份域与所述第一分区关联,其中所述第一主身份域表示与第一租户关联的第一多个用户;
将第二主身份域与所述第二分区关联,其中所述第二主身份域表示与第二租户关联的第二多个用户;
在运行时同时操作所述管理员安全性领域、第一安全性领域以及第二安全性领域中的每一个,以控制用于对所述多个分区资源及所述多个全局资源的访问的认证与授权;
由此,与所述第一租户关联的所述第一多个用户能够访问所述第一分区的所述第一多个分区资源,但不能访问所述第二分区的所述第二多个分区资源;以及
由此,与所述第二租户关联的所述第二多个用户能够访问所述第二分区的所述第二多个分区资源,但不能访问所述第一分区的所述第一多个分区资源。
10.一种多租户应用服务器环境系统,包括:
包括多个微处理器和存储器的应用服务器环境;
配置在所述应用服务器环境上的多个分区;
在所述应用服务器环境中提供的多个分区资源和多个全局资源;
包括配置在所述应用服务器环境中的管理员安全性领域、第一安全性领域以及第二安全性领域的多个安全性领域;
所述多个分区中的第一分区,被配置为具有所述多个分区资源中的第一多个分区资源;
所述多个分区中的第二分区,被配置为具有所述多个分区资源中的第二多个分区资源;
将所述第一分区与所述第一安全性领域关联的第一安全性配置;
将所述第二分区与所述第二安全性领域关联的第二安全性配置;
与所述第一分区关联的第一主身份域,其中所述第一主身份域表示与第一租户关联的第一多个用户;
与所述第二分区关联的第二主身份域,其中所述第二主身份域表示与第二租户关联的第二多个用户;
其中,所述管理员安全性领域、第一安全性领域以及第二安全性领域被配置为在运行时同时操作,以控制用于对所述多个分区资源及所述多个全局资源的访问的认证与授权;
由此,与所述第一租户关联的所述第一多个用户能够访问所述第一分区的所述第一多个分区资源,但不能访问所述第二分区的所述第二多个分区资源;并且
由此,与所述第二租户关联的所述第二多个用户能够访问所述第二分区的所述第二多个分区资源,但不能访问所述第一分区的所述第一多个分区资源。
11.如权利要求10所述的系统,其中:
所述第一主身份域被配置为引用第一身份存储,所述第一身份存储用于存储与所述第一租户关联的所述第一多个用户的第一表示;并且
所述第二主身份域被配置为引用与所述第一身份存储不同的第二身份存储,所述第二身份存储用于存储与所述第二租户关联的所述第二多个用户的第二表示。
12.如权利要求10所述的系统,其中:
所述第一主身份域被配置为引用身份存储的第一部分,所述身份存储的第一部分用于存储与所述第一租户关联的所述第一多个用户的第一表示;并且
所述第二主身份域被配置为引用所述身份存储的第二部分,所述身份存储的第二部分用于存储与所述第二租户关联的所述第二多个用户的第二表示。
13.如权利要求10至12中任一项所述的系统,还包括:
与所述多租户应用服务器环境关联的管理员身份域,其中所述管理员身份域表示所述多租户应用服务器环境的多个系统管理员;以及
由此,与所述多租户应用服务器环境关联的所述多个系统管理员能够访问所述多个全局资源。
14.如权利要求10至12中任一项所述的系统,还包括:
第一认证服务,被配置为认证与所述第一租户关联的所述第一多个用户,以及结合所述第一多个用户中的一个或更多个用户生成标识所述第一主身份域的第一被签名的主体。
15.如权利要求10至12中任一项所述的系统,其中:
所述第一多个资源与所述第一主身份域关联;
所述第二多个资源与所述第二主身份域关联;
所述系统还包括授权服务,所述授权服务响应于接收到来自用户的访问资源的调用,将与所述用户关联的主身份域和与所述资源关联的主身份域进行比较,并且仅当与所述用户关联的主身份域匹配与所述资源关联的主身份域时授权对所述资源的访问。
CN201580032647.5A 2014-06-23 2015-06-23 用于在多租户应用服务器环境中支持安全性的系统和方法 Active CN106462717B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462016058P 2014-06-23 2014-06-23
US62/016,058 2014-06-23
US201462054912P 2014-09-24 2014-09-24
US62/054,912 2014-09-24
PCT/US2015/037270 WO2015200379A1 (en) 2014-06-23 2015-06-23 System and method for supporting security in a multitenant application server environment

Publications (2)

Publication Number Publication Date
CN106462717A CN106462717A (zh) 2017-02-22
CN106462717B true CN106462717B (zh) 2019-06-14

Family

ID=53610997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580032647.5A Active CN106462717B (zh) 2014-06-23 2015-06-23 用于在多租户应用服务器环境中支持安全性的系统和方法

Country Status (6)

Country Link
US (2) US9578009B2 (zh)
EP (1) EP3158494B1 (zh)
JP (1) JP6510568B2 (zh)
KR (1) KR102355480B1 (zh)
CN (1) CN106462717B (zh)
WO (1) WO2015200379A1 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187454B2 (en) 2014-01-21 2019-01-22 Oracle International Corporation System and method for dynamic clustered JMS in an application server environment
US10476938B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for multitenancy store in a multitenant application server environment
US10103946B2 (en) 2014-01-21 2018-10-16 Oracle International Corporation System and method for JMS integration in a multitenant application server environment
US10474998B2 (en) 2014-01-21 2019-11-12 Oracle International Corporation System and method for messaging in a multitenant application server environment
WO2015112614A1 (en) 2014-01-21 2015-07-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
WO2015200379A1 (en) 2014-06-23 2015-12-30 Oracle International Corporation System and method for supporting security in a multitenant application server environment
US10873627B2 (en) 2014-06-23 2020-12-22 Oracle International Corporation System and method for supporting use of an in-memory data grid with a multitenant application server environment
US10027550B2 (en) 2014-06-23 2018-07-17 Oracle International Corporation System and method for multitenant-aware console for use in a multitenant application server environment
US9747137B2 (en) 2014-09-25 2017-08-29 Oracle International Corporation System and method for providing a partition file system in a multitenant application server environment
US10382537B2 (en) 2014-09-25 2019-08-13 Oracle International Corporation System and method for use of a global runtime in a multitenant application server environment
US10469401B2 (en) 2014-09-25 2019-11-05 Oracle International Corporation System and method for supporting lifecycle plugins in a multitenant application server environment
US10348565B2 (en) 2014-09-25 2019-07-09 Oracle International Corporation System and method for rule-based elasticity in a multitenant application server environment
US10091135B2 (en) 2014-09-26 2018-10-02 Oracle International Corporation System and method for multi-tenancy enablement of enterprise java applications using resource proxies and application tenancy context
US10050903B2 (en) 2014-09-26 2018-08-14 Oracle International Corporation System and method for multi-tenancy enablement of enterprise JAVA (TM) applications using resource proxies and application tenancy context
US11057272B2 (en) 2014-09-26 2021-07-06 Oracle International Corporation System and method for transactions in a multitenant application server environment
KR102437664B1 (ko) * 2014-09-26 2022-08-29 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법
JP2016085641A (ja) * 2014-10-27 2016-05-19 キヤノン株式会社 権限移譲システム、権限移譲システムにて実行される方法、およびそのプログラム
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
US9667657B2 (en) * 2015-08-04 2017-05-30 AO Kaspersky Lab System and method of utilizing a dedicated computer security service
US10079693B2 (en) * 2015-12-28 2018-09-18 Netapp, Inc. Storage cluster management proxy
CN107153565B (zh) * 2016-03-03 2020-06-16 华为技术有限公司 配置资源的方法及其网络设备
US10404702B1 (en) * 2016-03-30 2019-09-03 EMC IP Holding Company LLC System and method for tenant network identity-based authentication and authorization for administrative access in a protection storage system
CN107204978B (zh) * 2017-05-24 2019-10-15 北京邮电大学 一种基于多租户云环境的访问控制方法及装置
US20190068572A1 (en) * 2017-08-22 2019-02-28 Salesforce.Com, Inc. Customizable secondary verification in a multi-tenant system
US11075799B2 (en) 2017-08-24 2021-07-27 Oracle International Corporation System and method for provisioning in a multi-tenant application server environment
CN109670312A (zh) * 2017-10-13 2019-04-23 华为技术有限公司 安全控制方法及计算机系统
US10430606B1 (en) 2018-04-30 2019-10-01 Aras Corporation System and method for implementing domain based access control on queries of a self-describing data system
CN108848104B (zh) * 2018-07-02 2021-06-01 北京阿尔山金融科技有限公司 信息管理方法及装置
CN109587151A (zh) * 2018-12-13 2019-04-05 泰康保险集团股份有限公司 访问控制方法、装置、设备及计算机可读存储介质
US11165764B2 (en) * 2019-05-09 2021-11-02 Open Text Sa Ulc Data isolation and two-factor access control
CN110188573B (zh) * 2019-05-27 2024-06-04 深圳前海微众银行股份有限公司 分区授权方法、装置、设备及计算机可读存储介质
US11595378B2 (en) 2019-06-03 2023-02-28 Zuora, Inc. Systems and methods for providing authentication in a microservice system
US11675927B2 (en) * 2019-11-13 2023-06-13 Open Text Sa Ulc System and method for external users in groups of a multitenant system
CN110855714B (zh) * 2019-11-29 2021-09-14 广州鲁邦通物联网科技有限公司 一种多租户设备的安全连接方法和系统
US20210303720A1 (en) * 2020-03-31 2021-09-30 Atlassian Pty Ltd. Access controls for a dedicated database system storing user-generated content input to a multitenant service of a collaborative work environment
CN111488599A (zh) * 2020-04-09 2020-08-04 北京思特奇信息技术股份有限公司 基于附加组使用的赋权方法、装置、电子设备及存储介质
JP2021189675A (ja) * 2020-05-28 2021-12-13 株式会社リコー サービス提供システム、情報処理システム、利用権限割当方法
US11574068B2 (en) * 2020-06-08 2023-02-07 Open Text Sa Ulc Methods and systems for tenancy in a multitenant environment
US11445021B2 (en) * 2020-12-22 2022-09-13 Salesforce.Com, Inc. Sharing objects across namespaces in a container-orchestration system
US20230224304A1 (en) * 2022-01-12 2023-07-13 Vmware Inc. Resource access control in cloud environments
US20230289459A1 (en) * 2022-03-11 2023-09-14 Oracle International Corporation Cardinal method for hierarchical phased secure access to system entities in isolated multi-tenant database for autonomous cloud environments
CN117201046A (zh) * 2022-05-30 2023-12-08 华为技术有限公司 认证方法及通信装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810444A (zh) * 2012-11-15 2014-05-21 中兴通讯股份有限公司 一种云计算平台中多租户应用隔离的方法和系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9197417B2 (en) 2009-04-24 2015-11-24 Microsoft Technology Licensing, Llc Hosted application sandbox model
US8949939B2 (en) * 2010-10-13 2015-02-03 Salesforce.Com, Inc. Methods and systems for provisioning access to customer organization data in a multi-tenant system
US8793286B2 (en) * 2010-12-09 2014-07-29 International Business Machines Corporation Hierarchical multi-tenancy management of system resources in resource groups
JP5930847B2 (ja) * 2011-06-29 2016-06-08 キヤノン株式会社 サーバーシステムおよび制御方法およびプログラム
US8819801B2 (en) * 2011-10-31 2014-08-26 Microsoft Corporation Secure machine enrollment in multi-tenant subscription environment
US9158913B2 (en) * 2012-07-09 2015-10-13 Ca, Inc. Managing virtual machines using owner digital signatures
US9959423B2 (en) * 2012-07-30 2018-05-01 Microsoft Technology Licensing, Llc Security and data isolation for tenants in a business data system
US9838370B2 (en) * 2012-09-07 2017-12-05 Oracle International Corporation Business attribute driven sizing algorithms
US9069979B2 (en) * 2012-09-07 2015-06-30 Oracle International Corporation LDAP-based multi-tenant in-cloud identity management system
US9936020B2 (en) * 2012-10-30 2018-04-03 International Business Machines Corporation Access control of data in a dispersed storage network
WO2015200379A1 (en) 2014-06-23 2015-12-30 Oracle International Corporation System and method for supporting security in a multitenant application server environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810444A (zh) * 2012-11-15 2014-05-21 中兴通讯股份有限公司 一种云计算平台中多租户应用隔离的方法和系统

Also Published As

Publication number Publication date
JP2017526048A (ja) 2017-09-07
US20170126742A1 (en) 2017-05-04
KR20170024014A (ko) 2017-03-06
JP6510568B2 (ja) 2019-05-08
US20150373004A1 (en) 2015-12-24
EP3158494B1 (en) 2020-04-08
EP3158494A1 (en) 2017-04-26
KR102355480B1 (ko) 2022-01-26
WO2015200379A1 (en) 2015-12-30
US9578009B2 (en) 2017-02-21
CN106462717A (zh) 2017-02-22
US10097589B2 (en) 2018-10-09

Similar Documents

Publication Publication Date Title
CN106462717B (zh) 用于在多租户应用服务器环境中支持安全性的系统和方法
US10027716B2 (en) System and method for supporting web services in a multitenant application server environment
CN105900059B (zh) 用于在应用服务器、云或其它环境中支持多租户的系统和方法
JP6681348B2 (ja) マルチテナントアプリケーションサーバ環境においてパーティションをサポートするためのシステム、方法及びコンピュータプログラム
CA2725992C (en) Authenticated database connectivity for unattended applications
CN106575242A (zh) 用于在多租户应用服务器环境中支持命名空间的系统和方法
CN107077383A (zh) 用于在多租户应用服务器环境中确定分区标识符的系统和方法
US11888856B2 (en) Secure resource authorization for external identities using remote principal objects
CN103038778A (zh) 授权控制
US11233800B2 (en) Secure resource authorization for external identities using remote principal objects
US10650387B2 (en) User access to a registry of business entity definitions
US9218200B2 (en) Selective class hiding in open API component architecture system
US11539533B1 (en) Access control using a circle of trust
US20210037058A1 (en) Dynamic access controls using verifiable claims
Fugkeaw et al. A-COLD: access control of web OLAP over multi-data warehouse
Kwiatkowski Security for modern mobile applications
Walters et al. SQL Server Security

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant