CN112166588A - 多租户身份云服务的租户复制自举 - Google Patents

多租户身份云服务的租户复制自举 Download PDF

Info

Publication number
CN112166588A
CN112166588A CN202080003005.3A CN202080003005A CN112166588A CN 112166588 A CN112166588 A CN 112166588A CN 202080003005 A CN202080003005 A CN 202080003005A CN 112166588 A CN112166588 A CN 112166588A
Authority
CN
China
Prior art keywords
data
idcs
client
tenant
cloud
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.)
Granted
Application number
CN202080003005.3A
Other languages
English (en)
Other versions
CN112166588B (zh
Inventor
S·K·斯里尼瓦森
B·巴鲁
V·R·米达姆
史光宇
F·霍
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 CN112166588A publication Critical patent/CN112166588A/zh
Application granted granted Critical
Publication of CN112166588B publication Critical patent/CN112166588B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • 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
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • 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
    • 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
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

实施例操作多租户云系统。在第一数据中心处,实施例对第一客户端进行认证并存储与第一客户端对应的资源,第一数据中心与被配置为对第一客户端进行认证的第二数据中心通信。实施例将资源划分为基础数据和常规数据,其中基础数据是允许资源在第二数据中心处对第一客户端可用所需的最少数据。实施例将基础数据存储在云存储装置上的基础数据导出文件中,并且将常规数据存储在云存储装置上的常规数据导出文件中。实施例将基础数据导出文件导出到第二数据中心,并且当基础数据导出文件的导出完成时,将常规数据导出文件导出到第二数据中心。

Description

多租户身份云服务的租户复制自举
相关申请的交叉引用
本申请要求于2019年2月19日提交的美国临时专利申请序列No.62/807,454的优先权,该申请的公开内容通过引用并入本文。
技术领域
一个实施例一般涉及身份管理,尤其涉及云系统中的身份管理。
背景技术
一般而言,基于云的应用(例如,企业公共云应用、第三方云应用等等)的使用正在飞速发展,其中访问来自各种设备(例如,桌面和移动设备)以及各种用户(例如,员工、合作伙伴、客户等等)。基于云的应用的丰富多样性和可访问性已经导致身份管理和访问安全性成为中心问题。云环境中的典型安全问题是未经授权的访问、账户劫持、恶意的内部人员等等。因而,需要安全地访问基于云的应用或位于任何地方的应用,而不管应用被何种设备类型或何种用户类型访问。
发明内容
实施例操作多租户云系统。在第一数据中心处,实施例对第一客户端进行认证并存储与第一客户端对应的资源,第一数据中心与被配置为对第一客户端进行认证的第二数据中心通信。实施例将资源划分为基础数据和常规数据,其中基础数据是允许资源在第二数据中心处对第一客户端可用所需的最少数据。实施例将云存储装置上的基础数据存储在基础数据导出文件中,并且将云存储装置上的常规数据存储在常规数据导出文件中。实施例将基础数据导出文件导出到第二数据中心,并且当基础数据导出文件的导出完成时,将常规数据导出文件导出到第二数据中心。
附图说明
图1-图5是提供基于云的身份管理的示例实施例的框图。
图6是提供实施例的系统视图的框图。
图6A是提供实施例的功能视图的框图。
图7是实现云门的实施例的框图。
图8图示了在一个实施例中实现多个租户的示例系统。
图9是实施例的网络视图的框图。
图10是一个实施例中的单点登录(“SSO”)功能的系统架构视图的框图。
图11是一个实施例中的SSO功能的消息序列流。
图12图示了一个实施例中的分布式数据网格的实例。
图13图示了根据本发明的实施例的多个部署的数据中心(指定为“DC”),每个数据中心形成“区域”。
图14图示了根据本发明的实施例的在主IDCS部署和副本IDCS部署之间的复制更改事件/日志的处理流程。
图15图示了根据本发明的实施例的在主IDCS部署和副本IDCS部署之间的冲突解决的处理流程。
图16是进一步图示根据本发明的实施例的主IDCS部署和副本IDCS部署的细节的框图。
图17是根据本发明的实施例的响应于复制的冲突解决的流程图。
图18是图示根据实施例的使用租户自举(bootstrap)来复制租户部署的功能的框图和流程图。
图19是图示根据实施例的用于在图18的自举复制期间处理更改日志以考虑进行中的(in-flight)更改的功能的框图和流程图。
具体实施方式
实施例通过将数据划分为基础数据和常规数据将与租户相关的数据从主区域复制到副本区域。基础数据是租户能够从副本区域进行操作所需的最少数据,并且首先以自举方式导出到副本区域。然后,常规数据被导出到副本区域。
实施例提供实现基于微服务的架构的身份云服务,并提供多租户身份和数据安全性管理以及对基于云的应用的安全访问。实施例支持对于混合云部署的安全访问(即,包括公共云和私有云的组合的云部署)。实施例保护云中和内部部署(on-premise)的应用和数据。实施例支持经由web、移动和应用编程接口(“API”)的多信道访问。实施例管理对于不同用户(诸如客户、合作伙伴和员工)的访问。实施例管理、控制和审计跨整个云以及内部部署的访问。实施例与新的和现有的应用和身份集成。实施例是水平可伸缩的。
一个实施例是在无状态中间层环境中实现多个微服务以提供基于云的多租户身份和访问管理服务的系统。在一个实施例中,每个被请求的身份管理服务被分解成实时任务和近实时任务。实时任务由中间层中的微服务处理,而近实时任务被卸载到消息队列。实施例实现由路由层和中间层消耗以强制实施用于访问微服务的安全模型的访问令牌。因而,实施例提供基于多租户、微服务架构的云规模的身份和访问管理(“IAM”)平台。
一个实施例提供了使得组织能够为其新业务计划迅速开发快速、可靠和安全的服务的身份云服务。在一个实施例中,身份云服务提供多个核心服务,每个核心服务解决许多企业面临的独特挑战。在一个实施例中,身份云服务在以下方面支持管理员,例如,初始登入(on-boarding)/导入用户、导入具有用户成员的组、创建/更新/禁用/启用/删除用户、向/从组中分配/取消分配用户、创建/更新/删除组、重置密码、管理策略、发送激活等等。身份云服务还在以下方面支持最终用户,例如,修改简档、设置主要/恢复电子邮件、核实电子邮件、解锁其账户、更改密码、忘记密码时恢复密码等等。
访问的统一安全性
一个实施例保护云环境中以及内部部署环境中的应用和数据。该实施例保护任何人从任何设备对任何应用的访问。由于两个环境之间的安全性不一致会导致较高的风险,因此该实施例提供跨两种环境的保护。例如,这种不一致会使销售人员即使在已经叛逃到竞争对手之后仍能继续访问其客户关系管理(“CRM”)账户。因而,实施例将在内部部署环境中提供的安全性控制扩展到云环境中。例如,如果一个人离开公司,那么实施例确保他们的账户在内部部署和云中都被禁用。
一般而言,用户可以通过许多不同的渠道(诸如web浏览器、台式机、移动电话、平板电脑、智能手表、其它可穿戴设备等等)来访问应用和/或数据。因而,一个实施例提供跨所有这些渠道的安全访问。例如,用户可以使用他们的移动电话完成他们在台式机上开始的事务。
一个实施例还管理对于各种用户(诸如客户、合作伙伴、员工等等)的访问。一般而言,应用和/或数据不仅可以由员工访问,而且可以由客户或第三方访问。虽然许多已知的系统在员工登入时采取安全措施,但是在向客户、第三方、合作伙伴等等给予访问时一般不采取相同级别的安全措施,从而导致由未妥善管理的各方造成的安全漏洞的可能。但是,实施例确保为每种类型的用户的访问而不仅仅是员工的访问提供足够的安全措施。
身份云服务
实施例提供了作为多租户、云规模的IAM平台的身份云服务(“IDCS”)。IDCS提供认证、授权、审计和联合。IDCS管理对公共云上以及内部部署系统上运行的自定义应用和服务的访问。在替代或附加的实施例中,IDCS还可以管理对公共云服务的访问。例如,可以使用IDCS在这样各种服务/应用/系统中提供单点登录(“SSO”)功能。
实施例基于用于设计、构建和递送云规模的软件服务的多租户、微服务架构。多租户是指让服务的一个物理实现安全地支持多个客户购买那个服务。服务是可以被不同客户端用于不同的目的的软件功能或软件功能集合(诸如检索指定的信息或执行一组操作),以及控制该软件功能或该软件功能集合的使用的策略(例如,基于请求服务的客户端的身份)。在一个实施例中,服务是使得能够访问一个或多个能力的机制,其中访问是使用规定的接口提供的并且与由服务描述指定的约束和策略一致地被实施(exercised)。
在一个实施例中,微服务是独立可部署的服务。在一个实施例中,术语微服务设想了一种软件架构设计模式,其中复杂应用由使用语言不可知的API彼此通信的小型独立进程组成。在一个实施例中,微服务是小的、高度解耦的服务,并且每个微服务可以专注于做一个小任务。在一个实施例中,微服务架构样式是将单个应用开发为一套小服务的做法,每个小服务在其自己的进程中运行并与轻量级机制(例如,HTTP资源API)通信。在一个实施例中,相对于执行全部或许多相同功能的单件式服务,微服务更容易更换。而且,每个微服务可以被更新而不会对其它微服务产生不利影响。相比之下,对单件式服务的一部分的更新会不期望地或无意地对单件服务的其它部分产生负面影响。在一个实施例中,微服务可以围绕其能力被有益地组织。在一个实施例中,微服务集合中的每一个微服务的启动时间远小于笼统执行那些微服务的所有服务的单个应用的启动时间。在一些实施例中,这种微服务中的每一个微服务的启动时间是大约一秒或更少,而这种单个应用的启动时间可以是大约一分钟、几分钟或更长。
在一个实施例中,微服务架构是指用于面向服务的架构(“SOA”)的专业化(即,系统内任务的分离)和实现做法,以构建灵活的、独立可部署的软件系统。微服务架构中的服务是经网络彼此通信以便履行目标的进程。在一个实施例中,这些服务使用技术不可知的协议。在一个实施例中,服务具有小粒度并使用轻量级协议。在一个实施例中,服务是独立可部署的。通过将系统的功能分配到不同的小型服务中,增强了系统的内聚性并降低了系统的耦合度。这使得更容易随时改变系统以及向系统添加功能和质量。它还允许个体服务的架构通过不断的重构而出现,从而减少了对大型前期设计的需求,并且允许及早和持续地发布软件。
在一个实施例中,在微服务架构中,应用作为服务的集合被开发,并且每个服务运行相应的进程并使用轻量级协议进行通信(例如,用于每个微服务的唯一API)。在微服务架构中,取决于要提供的服务,将软件分解成各个服务/能力可以以不同的粒度级别来执行。服务是运行时组件/进程。每个微服务是可以与其它模块/微服务交谈的自包含(self-contained)模块。每个微服务具有可以被其它微服务联系的未命名的通用端口。在一个实施例中,微服务的未命名的通用端口是微服务按照惯例暴露并允许同一服务中的任何其它模块/微服务与其交谈的标准通信信道(例如,作为常规的超文本传输协议(“HTTP”)端口)。微服务或任何其它自包含的功能模块可以统称为“服务”。
实施例提供多租户身份管理服务。实施例基于开放标准,以确保易于与各种应用集成,从而通过基于标准的服务来递送IAM能力。
实施例管理用户身份的生命周期,这需要确定和强制实施身份可以访问什么、谁可以被给予这种访问、谁可以管理这种访问等等。对于不一定在云中的应用,实施例在云中运行身份管理工作负载并且支持安全功能。由实施例提供的身份管理服务可以从云购买。例如,企业可以从云购买这种服务,以管理他们的员工访问他们的应用。
实施例提供系统安全性、大规模可伸缩性、最终用户可用性和应用互操作性。实施例解决了云的增长和客户对身份服务的使用。基于微服务的基础解决了水平可伸缩性需求,同时服务的仔细编排解决了功能需求。实现这两个目标需要(尽可能)分解业务逻辑以实现具有最终一致性的无状态性,而大多数不受实时处理影响的操作逻辑通过卸载到高度可伸缩的异步事件管理系统而转移到近实时,具有有保证的递送和处理。实施例从网络层到数据层是完全多租户的,以便实现成本效率和系统管理的容易性。
实施例基于行业标准(例如,OpenID Connect、OAuth2、安全声明标记语言2(“SAML2”)、用于跨域身份管理的系统(“SCIM”)、代表性状态转移(“REST”))等等)以便于与各种应用集成。一个实施例提供了云规模API平台并实现了用于弹性可伸缩性的水平可伸缩微服务。该实施例充分利用云原理并提供具有每租户数据分离的多租户架构。该实施例还提供了具有租户自助服务的每租户定制。该实施例经由API可用于与其它身份服务的按需集成,并提供持续的特征发布。
一个实施例提供互操作性并充分利用对云中和内部部署的身份管理(“IDM”)功能的投资。该实施例提供从内部部署轻量级目录访问协议(“LDAP”)数据到云数据的自动化身份同步,反之亦然。该实施例在云和企业之间提供SCIM身份总线,并且允许混合云部署的不同选项(例如,身份联合和/或同步、SSO代理、用户供应连接器等等)。
因而,一个实施例是在无状态中间层中实现多个微服务以提供基于云的多租户身份和访问管理服务的系统。在一个实施例中,每个被请求的身份管理服务被分解成实时任务和近实时任务。实时任务由中间层中的微服务处理,而近实时任务被卸载到消息队列。实施例实现由路由层消耗以强制实施用于访问微服务的安全模型的令牌。因而,实施例提供了基于多租户、微服务架构的云规模的IAM平台。
一般而言,已知的系统提供对由不同环境提供的应用(例如,企业云应用、合作伙伴云应用、第三方云应用和客户应用)的孤立(siloed)访问。这种孤立的访问可能需要多个密码、不同的密码策略、不同的账户供应和解除供应方案、全异的审计等等。但是,一个实施例实现了IDCS,以在这种应用上提供统一的IAM功能。图1是具有IDCS 118的示例实施例的框图100,其提供了用于对用户和应用进行登入的统一身份平台126。该实施例跨各种应用(诸如企业云应用102、合作伙伴云应用104、第三方云应用110和客户应用112)提供无缝的用户体验。应用102、104、110、112可以通过不同的渠道来访问,例如,由移动电话用户108经由移动电话106、由台式计算机用户116经由浏览器114等等。web浏览器(通常称为浏览器)是用于检索、呈现和遍历万维网上的信息资源的软件应用。web浏览器的示例是Mozilla
Figure BDA0002801987910000081
Google
Figure BDA0002801987910000082
Microsoft Internet
Figure BDA0002801987910000083
和Apple
Figure BDA0002801987910000084
IDCS 118提供用户的应用、(经由身份平台126)跨设备和应用的统一安全凭证以及(经由管理控制台122)统一的管理方式的统一视图124。IDCS服务可以通过调用IDCS API142来获得。这种服务可以包括例如登录/SSO服务128(例如,OpenID Connect)、联盟服务130(例如,SAML)、令牌服务132(例如,OAuth)、目录服务134(例如,SCIM)、供应服务136(例如,SCIM或任何经多协议的传输(“ATOM”))、事件服务138(例如,REST)以及授权服务140(例如,SCIM)。IDCS 118还可以提供与所提供的服务相关的报告和仪表盘120。
集成工具
一般而言,大型公司通常具有IAM系统以保护对其内部部署应用的访问。业务实践通常都是围绕内部IAM系统(诸如来自Oracle公司的“Oracle IAM套件”)成熟和标准化的。甚至中小企业通常也会通过简单目录解决方案(诸如Microsoft Active Directory(“AD”))来围绕管理用户访问设计其业务进程。为了启用内部部署集成,实施例提供了允许客户将其应用与IDCS集成的工具。
图2是在云环境208中具有IDCS 202的示例实施例的框图200,其提供与内部部署206的AD 204的集成。该实施例提供跨包括内部部署及第三方应用(例如,内部部署应用218和云208中诸如云服务210、云应用212、合作伙伴应用214和客户应用216的各种应用/服务)在内的所有应用的无缝用户体验。云应用212可以包括例如人力资本管理(“HCM”)、CRM、人才获取(例如,来自Oracle公司的Oracle Taleo云服务)、配置价格和报价(“CPQ”)等等。云服务210可以包括例如平台即服务(“PaaS”)、Java、数据库、商业智能(“BI”)、文档等等。
应用210、212、214、216、218可以通过不同的渠道被访问,例如,由移动电话用户220经由移动电话222、由台式计算机用户224经由浏览器226等等。该实施例提供经由云208和企业206之间的SCIM身份总线234从内部部署AD数据到云数据的自动化身份同步。该实施例还提供SAML总线228,用于将来自云208的认证联合到内部部署AD 204(例如,使用密码232)。
一般而言,身份总线是用于身份相关的服务的服务总线。服务总线为从一个系统到另一个系统传送消息提供平台。它是用于在受信任的系统之间交换信息的受控机制,例如,在面向服务的架构(“SOA”)中。身份总线是根据基于标准HTTP的机制(诸如web服务、web服务器代理等等)构建的逻辑总线。身份总线中的通信可以根据相应的协议(例如,SCIM、SAML、OpenID Connect等等)。例如,SAML总线是两个系统之间基于HTTP的连接,用于传送用于SAML服务的消息。类似地,SCIM总线用于根据SCIM协议传送SCIM消息。
图2的实施例实现身份(“ID”)桥接器230,其是可以与客户的AD 204一起下载并安装在内部部署206的小二进制文件(例如,1MB尺寸)。ID桥接器230监听来自客户选择的组织单位(“OU”)的用户和组(例如,用户组),并将那些用户同步到云208。在一个实施例中,用户的密码232不同步到云208。客户可以通过将IDCS用户的组映射到在IDCS 208中管理的云应用来管理用户的应用访问。每当用户的组成员资格在内部部署206被改变时,其对应的云应用访问自动改变。
例如,从工程转移到销售的员工可以几乎即时访问销售云并失去对开发者云的访问。当这种改变反映在内部部署AD 204中时,云应用访问改变是近实时完成的。类似地,对于离开公司的用户,对在IDCS 208中管理的云应用的访问被撤销。为了完全自动化,客户可以通过例如AD联合服务(“AD/FS”或实现SAML联合的某种其它机制)在内部部署AD 204和IDCS 208之间设置SSO,使得最终用户可以用单个公司密码332访问云应用210、212、214、216以及内部部署应用218。
图3是包括与图2中相同的组件202、206、208、210、212、214、216、218、220、222、224、226、228、234的示例实施例的框图300。但是,在图3的实施例中,IDCS 202提供与内部部署IDM304(诸如Oracle IDM)的集成。Oracle IDM 304是Oracle公司提供IAM功能的软件套件。该实施例提供跨包括内部部署和第三方应用在内的所有应用的无缝用户体验。该实施例经由云202和企业206之间的SCIM身份总线234从内部部署IDM 304到IDCS 208供应用户身份。该实施例还提供SAML总线228(或OpenID Connect总线),用于将来自云208的认证联合到内部部署206。
在图3的实施例中,来自Oracle公司的Oracle身份管理器(“OIM”)连接器302和来自Oracle公司的Oracle访问管理器(“OAM”)联合模块306被实现为Oracle IDM 304的扩展模块。连接器是具有关于如何与系统交谈的物理意识的模块。OIM是被配置为管理用户身份(例如,基于用户应当和不应当访问的内容来管理不同系统中的用户账户)的应用。OAM是提供访问管理功能的安全应用,访问管理功能诸如Web SSO;身份上下文;认证和授权;策略管理;测试;记录;审计等等。OAM具有对SAML的内置支持。如果用户在IDCS 202中有账户,那么OIM连接器302和OAM联合306可以与Oracle IDM 304一起使用,以创建/删除那个账户并且管理来自那个账户的访问。
图4是包括与图2和图3中相同的组件202、206、208、210、212、214、216、218、220、222、224、226、234的示例实施例的框图400。但是,在图3的实施例中,IDCS 202提供将云身份扩展到内部部署应用218的功能。该实施例提供跨包括内部部署和第三方应用在内的所有应用的身份的无缝视图。在图4的实施例中,SCIM身份总线234用于使IDCS 202中的数据与称为“云高速缓存”402的内部部署LDAP数据同步。下面更详细地公开云高速缓存402。
一般而言,被配置为基于LDAP进行通信的应用需要LDAP连接。由于LDAP需要在本地网络上,因此这种应用不能通过URL建立LDAP连接(不像例如连接到Google的“www.google.com”)。在图4的实施例中,基于LDAP的应用218做出到云高速缓存402的连接,并且云高速缓存402建立到IDCS 202的连接并随后在其被请求时从IDCS 202拉出数据。IDCS 202与云高速缓存402之间的通信可以根据SCIM协议来实现。例如,云高速缓存402可以使用SCIM总线234来向IDCS 202发送SCIM请求并作为回报接收对应数据。
一般而言,完全实现应用包括构建消费者门户、在外部用户群体上运行营销活动、支持web和移动渠道以及处理用户认证、会话、用户简档、用户组、应用角色、密码策略、自助服务/注册、社会整合、身份联合等等。一般而言,应用开发人员不是身份/安全专家。因此,按需身份管理服务是期望的。
图5是包括与图2-图4中相同的组件202、220、222、224、226、234、402的示例实施例的框图500。但是,在图5的实施例中,IDCS 202按需提供安全身份管理。该实施例按需提供与IDCS 202的身份服务的集成(例如,基于诸如OpenID Connect、OAuth2、SAML2或SCIM的标准)。应用505(其可以是内部部署的、在公共云中或在私有云中)可以调用IDCS 202中的身份服务API 504。由IDCS 202提供的服务可以包括例如自助服务注册506、密码管理508、用户简档管理510、用户认证512、令牌管理514、社会整合516等等。
在这个实施例中,SCIM身份总线234用于使IDCS 202中的数据与内部部署的LDAP云高速缓存402中的数据同步。另外,在web服务器/代理(例如,NGINX、Apache等等)上运行的“云门(Cloud Gate)”502可以被应用505使用,以从IDCS 202获得用户web SSO和RESTAPI安全性。云门502是通过确保客户端应用提供有效访问令牌和/或用户成功认证来保护到多租户IDCS微服务的访问的组件,以便建立SSO会话。云门502在下面进一步公开。云门502(类似于webgate/webagent的强制实施点)使得在被支持的web服务器后面运行的应用能够参与SSO。
一个实施例提供SSO和云SSO功能。在许多组织中,用于内部部署的IAM和IDCS的一般入口点是SSO。云SSO使用户能够用单一用户登录来访问多个云资源。组织常常想要联合他们的内部部署的身份。因而,实施例利用开放标准来允许与现有SSO集成,以保持和扩展投资(例如,直到进行了到身份云服务方法的完全最终过渡)。
一个实施例可以提供以下功能:
●维护身份存储,以跟踪已被授权的用户账户、所有权、访问和许可,
●与工作流集成,以促进应用访问所需的各种审批(例如,管理、IT、人力资源、法律和合规性),
●为选择性设备(例如,移动和个人计算机(“PC”))提供SaaS用户账户,以访问包含许多私有和公共云资源的用户门户,
●促进周期性管理鉴证(attestation)审查,以符合法规和当前的工作职责。
除了这些功能之外,实施例还可以提供:
●云账户供应,以管理云应用中的账户生命周期,
●更健壮的多因素认证(“MFA”)集成,
●广泛的移动安全能力,以及
●动态认证选项。
一个实施例提供自适应的认证和MFA。一般而言,密码和挑战问题被认为是不够的,并且易于受诸如网络钓鱼等常见攻击。如今的大多数商业实体都在寻求某种形式的MFA以降低风险。但是,为了被成功部署,解决方案需要由最终用户轻松供应、维护和理解,因为最终用户通常会抵制干扰其数字体验的任何事情。公司正在寻找安全地结合自带设备(“BYOD”)、社交身份、远程用户、客户和承包商的方式,同时使MFA成为无缝用户访问体验中几乎透明的组件。在MFA部署中,诸如OAuth和OpenID Connect等行业标准对于确保现有多因素解决方案的集成和新型自适应认证技术的结合至关重要。因而,实施例将动态(或自适应)认证定义为在用户会话已经发起之后证明身份的可用信息(即,IP地址、位置、一天中的时间和生物测定)的评估。通过适当的标准(例如,开放认证(“OATH”)和快速身份在线(“FIDO”))集成和可扩展身份管理框架,实施例提供了可以在IT组织中被容易地采用、升级和集成的MFA解决方案,作为端到端安全IAM部署的一部分。在考虑MFA和自适应策略时,组织必须在内部部署和云资源上实现一致的策略,这在混合IDCS和内部部署IAM环境中需要系统之间的集成。
一个实施例提供用户供应和证实(certification)。一般而言,IAM解决方案的基本功能是启用和支持整个用户供应生命周期。这包括为用户提供适合于他们在组织内的身份和角色的应用访问、证实他们具有正确的持续访问许可(例如,当他们的角色或在其角色内使用的任务或应用随时间变化时),并且在他们离开组织时迅速地解除供应。这是重要的,不仅为了满足各种合规要求,而且还因为不适当的内部人员访问是安全漏洞和攻击的主要来源。身份云解决方案中的自动化用户供应能力不仅可以作为自身的重要组成部分,而且也可以作为混合IAM解决方案的一部分,借此,对于当公司缩小规模、扩大规模、合并或指望将现有系统与IaaS/PaaS/SaaS环境集成在一起时的过渡,IDCS供应可以提供比内部部署解决方案更大的灵活性。IDCS方法可以节省一次性升级的时间和精力,并确保必要的部门、分区和系统之间的适当集成。伸缩这项技术的需求常常在企业中悄然发现,并且跨企业立即递送可伸缩的IDCS能力的能力可以提供灵活性、成本和控制方面的好处。
一般而言,随着她/他的工作改变,员工随着年限被授予附加的特权(即,“特权蠕动(creep)”)。受到轻度监管的公司一般缺乏要求管理人员定期审计员工的特权(例如,访问网络、服务器、应用和数据)以中止或减慢导致超级特权账户的特权蠕动的“鉴证”处理。因而,一个实施例可以提供定期进行(至少一年一次)的鉴证处理。另外,随着并购,对这些工具和服务的需求将以指数形式增长,因为用户在SaaS系统上、内部部署、跨不同部门和/或正在被解除供应或重新分配。迁移到云可以进一步使这种情况复杂,并且处理可以迅速升级到超出现有的、常常是人工管理的证实方法。因而,一个实施例使这些功能自动化,并将复杂的分析应用于用户简档、访问历史记录、供应/解除供应和精细粒度赋权。
一个实施例提供身份分析。一般而言,能够将身份分析与IAM引擎集成以进行全面证实和鉴证对于确保组织的风险简档至关重要。正确部署的身份分析可以要求全面的内部策略强制实施。在积极主动的治理、风险和合规性(“GRC”)企业环境中,非常需要跨云和内部部署提供统一的单个管理视图的身份分析,并且可以帮助提供闭环处理以降低风险和满足合规性法规。因而,一个实施例提供客户端能够容易定制的身份分析,以适应管理者、主管人员和审计人员所需的用于报告和分析的具体行业需求和政府法规。
一个实施例提供自助服务和访问请求功能,以改进最终用户的体验和效率并降低服务台呼叫的成本。一般而言,虽然许多公司为员工部署了内部部署的自助访问请求,但是许多公司并没有在正式的公司范围之外充分扩展这些系统。除了员工使用,积极的数字客户体验增加商业信誉并最终有助于增加收入,并且公司不仅可以节省客户服务台呼叫和成本,而且还可以改进客户满意度。因而,一个实施例提供基于开放标准并且在必要时无缝地与现有访问控制软件和MFA机制集成的身份云服务环境。SaaS递送模式节省了以前投入于系统升级和维护的时间和精力,从而使专业IT人员能够专注于更核心的业务应用。
一个实施例提供特权账户管理(“PAM”)。一般而言,无论是使用SaaS、PaaS、IaaS还是内部部署应用,每个组织都容易受到具有超级用户访问凭证的内部人员(诸如系统管理员、主管人员、人事主管、承包商、系统集成商等等)对未经授权的特权账户的滥用的攻击。而且,外部威胁通常首先突破低级用户账户,以最终到达并利用企业系统内的特权用户访问控制。因而,一个实施例提供PAM,以防止这种未经授权的内部人员账户使用。PAM解决方案的主要组成部分是可以以各种方式递送的密码保险库(valult),例如作为安装在企业服务器上的软件、作为同样企业服务器上的虚拟设备、作为打包的硬件/软件设备,或者作为云服务的一部分。PAM功能类似于用于存储保存在信封中并定期改变的密码的物理保险箱,具有用于签入和签出的清单。一个实施例允许密码校验(password checkout)以及设置时间限制、强制周期性改变、自动跟踪校验以及报告所有活动。一个实施例提供直接连接到所请求的资源而无需用户甚至知道密码的方式。这个能力还为会话管理和附加功能铺平了道路。
一般而言,大多数云服务利用API和管理界面,其为渗透者提供了绕过安全性的机会。因而,一个实施例在PAM实践中考虑这些漏洞,因为向云的移动给PAM带来了新的挑战。现在许多中小型企业都在管理他们自己的SaaS系统(例如,Office 365),而更大型的企业越来越多地拥有各自的业务单元,这些业务单元分别启动(spinning up)自己的SaaS和IaaS服务。这些客户在身份云服务解决方案或其IaaS/PaaS提供者身上发现自己具有PAM能力,但在在处理这个责任方面经验不足。而且,在一些情况下,许多不同的地理位置分散的业务单元正试图将针对相同SaaS应用的管理责任隔离。因而,一个实施例允许客户在这些情况下将现有的PAM链接到身份云服务的整体身份框架中,并且朝着更大的安全性和与确保伸缩到如业务需求规定的云负载要求的合规性移动。
API平台
实施例提供了将能力的集合作为服务来暴露的API平台。API被聚合到微服务中,并且每个微服务暴露API中的一个或多个。即每个微服务可以暴露不同类型的API。在一个实施例中,每个微服务仅通过其API来进行通信。在一个实施例中,每个API可以是微服务。在一个实施例中,基于要由服务提供的目标能力(例如,OAuth、SAML、管理员等等)将多个API聚合到该服务中。因此,类似的API不作为分开的运行时进程来被暴露。API是使得可用于使服务消费者使用由IDCS提供的服务的东西。
一般而言,在IDCS的web环境中,URL包括三部分:主机、微服务和资源(例如,主机/微服务/资源)。在一个实施例中,微服务的特征在于具有特定的URL前缀,例如“主机/oauth/v1”,其中实际的微服务是“oauth/v1”,并且在“oauth/v1”下有多个API,例如请求令牌的API:“主机/oauth/v1/令牌”、认证用户的API:“主机/oauth/v1/授权”等。即,URL实现微服务,并且URL的资源部分实现API。因而,在同一微服务下聚合了多个API。在一个实施例中,URL的主机部分识别租户(例如,"https://tenant3.identity.oraclecloud.com:/oauth/v1/token")。
配置利用必要的端点与外部服务集成的应用以及保持那种配置最新通常是一个挑战。为了应对这一挑战,实施例在众所周知的位置暴露公开的发现API,从那里应用可以发现关于它们为了消费IDCS API而需要的IDCS的信息。在一个实施例中,支持两个发现文档:IDCS配置(其包括IDCS、SAML、SCIM、OAuth和OpenID Connect配置,例如在<IDCS-URL>/.well-know/idcs-configuration)和行业标准OpenID连接配置(例如,<IDCS-URL>/.well-known/openid-configuration)。应用可以通过配置有单个IDCS URL来检索发现文档。
图6是在一个实施例中提供IDCS的系统视图600的框图。在图6中,各种应用/服务602中的任何一个可以对IDCS API进行HTTP调用,以使用IDCS服务。这种应用/服务602的示例是web应用、本机应用(例如,被构建为在具体操作系统上运行的应用,诸如Windows应用、iOS应用、Android应用等等)、web服务、客户应用、合作伙伴应用或者由公共云提供的任何服务(诸如软件即服务(“SaaS”)、PaaS和基础设施即服务(“IaaS”))。
在一个实施例中,需要IDCS服务的应用/服务602的HTTP请求经过Oracle公共云BIG-IP应用604和IDCS BIG-IP应用606(或类似技术,诸如负载均衡器,或者实现适当的安全规则以保护流量的被称为云负载均衡器即服务(“LBaaS”)的组件)。但是,请求可以以任何方式被接收。在IDCS BIG-IP应用606(或者如适用的,诸如负载均衡器或云LBaaS的类似技术),云供应引擎608执行租户和服务编排。在一个实施例中,云供应引擎608管理与正登入到云中的新租户或由客户购买的新服务实例相关联的内部安全工件(artifact)。
然后,HTTP请求由实现安全门(即,云门)的IDCS web路由层610接收,并提供服务路由以及微服务注册和发现612。取决于所请求的服务,HTTP请求被转发到IDCS中间层614中的IDCS微服务。IDCS微服务处理外部和内部HTTP请求。IDCS微服务实现平台服务和基础设施服务。IDCS平台服务是分开部署的基于Java的运行时服务,其实现了IDCS的业务。IDCS基础设施服务是分开部署的运行时服务,其为IDCS提供基础设施支持。IDCS还包括基础设施库,基础设施库是作为由IDCS服务和共享库使用的共享库打包的公共代码。基础设施服务和库提供平台服务用于实现其功能所需的支持能力。
平台服务
在一个实施例中,IDCS支持标准认证协议,因此IDCS微服务包括诸如OpenIDConnect、OAuth、SAML2、用于跨域身份管理的系统++(“SCIM++”)等等的平台服务。
OpenID Connect平台服务实现标准的OpenIDConnect登录/注销流。交互式的基于web的本机应用充分利用标准的基于浏览器的OpenID Connect流来请求用户认证,从而接收是传达用户经认证的身份的JavaScript对象标记(“JSON”)Web令牌(“JWT”)的标准身份令牌。在内部,运行时认证模型是无状态的,从而以主机HTTP cookie(包括JWT身份令牌)的形式维护用户的认证/会话状态。经由OpenID Connect协议发起的认证交互被委托给受信任的SSO服务,该服务为本地和联合登录实现用户登录/注销仪式。下面参考图10和图11公开这个功能的更多细节。在一个实施例中,根据例如OpenID Foundation标准来实现OpenIDConnect功能。
OAuth2平台服务提供令牌授权服务。它提供了丰富的API基础设施,用于创建和验证传达进行API调用的用户权限的访问令牌。它支持一系列有用的令牌授予类型,从而使客户能够安全地将客户端连接到他们的服务。它实现了标准的双参与方(2-legged)和三参与方(3-legged)OAuth2令牌授予类型。支持OpenID Connect(“OIDC”)使得兼容的应用(OIDC中继方(“RP”))与作为身份提供者(OIDC OpenID提供者(“OP”))的IDCS集成。类似地,将IDCS作为OIDC RP与社交OIDC OP(例如,Facebook、Google等等)集成使得客户能够允许对应用进行基于社交身份策略的访问。在一个实施例中,根据例如互联网工程任务组(“IETF”)请求评论(“RFC”)文案6749来实现OAuth功能。
SAML2平台服务提供身份联合服务。它使得客户能够基于SAML身份提供者(“IDP”)和SAML服务提供者(“SP”)关系模型与其合作伙伴建立联合协议。在一个实施例中,SAML2平台服务实现标准SAML2浏览器POST登录和注销简档。在一个实施例中,根据例如IETF、RFC7522来实现SAML功能。
SCIM是用于自动化身份域或信息技术(“IT”)系统之间的用户身份信息交换的开放标准,如由例如IETF,RFC 7642、7643、7644提供的。SCIM++平台服务提供身份管理服务,并使客户能够访问IDCS的IDP特征。管理服务暴露覆盖身份生命周期、密码管理、组管理等的无状态REST接口(即API)集合,从而将这些工件作为web可访问的资源暴露。
所有IDCS配置工件都是资源,并且管理服务的API允许管理IDCS资源(例如,用户、角色、密码策略、应用、SAML/OIDC身份提供者、SAML服务提供者、密钥、证实、通知模板等等)。管理服务充分利用和扩展SCIM标准,以便为所有IDCS资源上的创建、读取、更新、删除和查询(“CRUDQ”)操作实现基于模式的REST API。此外,用于管理和配置IDCS本身的所有IDCS内部资源都作为基于SCIM的REST API暴露。对身份存储库618的访问被隔离到SCIM++API。
在一个实施例中,例如,SCIM标准被实现,以管理如由SCIM规范定义的用户和组资源,而SCIM++被配置为使用由SCIM标准定义的语言支持附加的IDCS内部资源(例如,密码策略、角色、设置等等)。
管理服务在需要的地方利用标准SCIM 2.0核心模式和模式扩展来支持SCIM 2.0标准端点。此外,管理服务还支持若干个SCIM 2.0兼容端点扩展,以管理其它IDCS资源,例如用户、组、应用、设置等等。管理服务还支持远程过程调用样式(“RPC样式”)REST接口集合,其不执行CRUDQ操作,而是代替地提供功能服务,例如“UserPasswordGenerator”,“serPasswordValidator”等等。
IDCS管理API使用OAuth2协议进行认证和授权。IDCS支持常见的OAuth2场景,诸如用于web服务器、移动和JavaScript应用的场景。对IDCS API的访问受访问令牌的保护。为了访问IDCS管理API,应用需要通过IDCS管理控制台将应用注册为OAuth2客户端或IDCS应用(在这种情况下,OAuth2客户端是自动创建的)并被授予期望的IDCS管理角色。在进行IDCS管理API调用时,应用首先从IDCS OAuth2服务请求访问令牌。在获取令牌之后,应用通过将访问令牌包括在HTTP授权报头中来将访问令牌发送给IDCS API。应用可以直接使用IDCS管理REST API,或者使用IDCS Java客户端API库。
基础设施服务
IDCS基础设施服务支持IDCS平台服务的功能。这些运行时服务包括:事件处理服务(用于异步处理用户通知、应用预订和数据库审计);作业调度器服务(用于调度和执行作业,例如,立即执行或在配置的时间执行不需要用户干预的长时间运行的任务);高速缓存管理服务;存储管理服务(用于与公共云存储服务集成);报告服务(用于生成报告和仪表盘);SSO服务(用于管理内部用户认证和SSO);用户界面(“UI”)服务(用于托管不同类型的UI客户端);以及服务管理器服务。服务管理器是Oracle公共云和IDCS之间的内部接口。服务管理器管理由Oracle公共云发布的命令,其中命令需要由IDCS实现。例如,当客户在云商店购买东西之前先注册账户时,云会向IDCS发送要求创建租户的请求。在这种情况下,服务管理器实现了云预期IDCS支持的特定于云的操作。
IDCS微服务可以通过网络接口(即,HTTP请求)调用另一个IDCS微服务。
在一个实施例中,IDCS还可以提供允许使用数据库模式的模式服务(或持久性服务)。模式服务允许将管理数据库模式的责任委托给IDCS。因而,IDCS的用户不需要管理数据库,因为存在提供那个功能的IDCS服务。例如,用户可以使用数据库以每个租户为基础来持久化模式,并且当数据库中没有更多的空间时,模式服务将管理获得另一个数据库和增加空间的功能,使得用户不需要必须自己管理数据库。
IDCS还包括数据存储,这些数据存储是IDCS所需/生成的数据储存库,包括身份存储库618(存储用户、组等等)、全局数据库620(存储由IDCS使用以配置自身的配置数据)、操作模式622(提供每个租户的模式分离并且以每个客户为基础来存储客户数据)、审计模式624(存储审计数据)、高速缓存集群626(存储高速缓存的对象,以加速性能)等等。所有内部和外部IDCS消费者经基于标准的协议与身份服务进行集成。这使得能够使用域名系统(“DNS”)来解决将请求路由到何处,并且使得消费应用与对身份服务的内部实现的理解解耦。
实时任务和近实时任务
IDCS将所请求服务的任务分离成同步实时任务和异步近实时任务,其中实时任务仅包括用户继续前进所需的操作。在一个实施例中,实时任务是以最小延迟执行的任务,而近实时任务是在后台执行、无需用户等待它的任务。在一个实施例中,实时任务是基本上没有延迟或以可忽略的延迟被执行的任务,并且对于用户而言几乎是瞬间执行的。
实时任务执行具体身份服务的主要业务功能。例如,当请求登录服务时,应用发送消息以认证用户的凭证,并作为回报获得会话cookie。用户体验到的就是登录系统。但是,结合用户的登录可以执行若干其它任务,诸如验证用户是谁、审计、发送通知等等。因而,验证凭证是实时执行的任务,使得用户被给予开始会话的HTTP cookie,但是与通知(例如,发送电子邮件以通知创建账户)、审计(例如,跟踪/记录)等相关的任务是可以异步执行的近实时任务,这样用户可以以最少的延迟继续前进。
当接收到针对微服务的HTTP请求时,对应的实时任务由中间层中的微服务执行,而剩余的近实时任务(诸如不必实时处理的操作逻辑/事件)被卸载到消息队列628,消息队列628支持具有有保证的递送和处理的高度可伸缩的异步事件管理系统630。因而,某些行为被从前端推送到后端,以使IDCS能够通过减少响应时间中的等待时间来向客户提供高级服务。例如,登录处理可以包括凭证的验证、日志报告的提交、最后登录时间的更新等等,但是这些任务可以被卸载到消息队列并且近实时地而不是实时执行。
在一个示例中,系统可能需要注册或创建新的用户。系统调用IDCS SCIM API,以创建用户。最终的结果是,当用户在身份存储库618中被创建时,用户得到包括重置他们的密码的链接的通知电子邮件。当IDCS接收到注册或创建新用户的请求时,对应的微服务查看操作数据库(位于图6中的全局数据库620中)中的配置数据,并确定“创建用户”操作被标记有“创建用户”事件,这在配置数据中被识别为异步操作。微服务返回给客户端并且指示用户的创建成功完成,但是通知电子邮件的实际发送被推迟并被推送到后端。为了这样做,微服务使用消息传送API 616将消息在作为存储的队列628中排队。
为了从队列628中出队,作为基础设施微服务的消息传送微服务在后台连续地运行并且扫描队列628,以在队列628中查找事件。队列628中的事件由事件订户630处理,诸如审计、用户通知、应用订阅、数据分析等等。取决于由事件指示的任务,事件订户630可以与例如审计模式624、用户通知服务634、身份事件订户632等等通信。例如,当消息传送微服务在队列628中发现“创建用户”事件时,它执行对应的通知逻辑并向用户发送对应的电子邮件。
在一个实施例中,队列628将由微服务614公布的操作事件以及由管理IDCS资源的API 616公布的资源事件排队。
IDCS使用实时高速缓存结构来增强系统性能和用户体验。高速缓存本身也可以作为微服务提供。IDCS实现弹性高速缓存集群626,其随着IDCS所支持的客户数量的伸缩而增长。高速缓存集群626可以利用下面更详细公开的分布式数据网格来实现。在一个实施例中,只写资源绕过高速缓存。
在一个实施例中,IDCS运行时组件向公共云监视模块636公布健康和操作度量,公共云监视模块636从公共云(诸如来自Oracle公司的Oracle公共云)收集这种度量。
在一个实施例中,可以使用IDCS来创建用户。例如,客户端应用602可以发布创建用户的REST API调用。管理服务(614中的平台服务)将调用委托给用户管理器(614中的基础设施库/服务),该用户管理器进而在ID存储库618中的特定于租户的ID存储条带中创建用户。在“用户创建成功”时,用户管理器在审计模式624下审计对审计表的操作,并向消息队列628公布“identity.user.create.success”事件。身份订户632拾取事件并向新创建的用户发送“欢迎”电子邮件,包括新创建的登录细节信息。
在一个实施例中,可以使用IDCS向用户授予角色,从而导致用户供应动作。例如,客户端应用602可以发布授予用户角色的REST API调用。管理服务(614中的平台服务)将该调用委托给角色管理器(614中的基础设施库/服务),该角色管理器在ID存储库618中特定于租户的ID存储条带状授予用户角色。在“角色授予成功”时,角色管理器在审计模式624下审计对审计表的操作,并向消息队列628公布“identity.user.role.grant.success”事件。身份订户632拾取事件并评估供应授权策略。如果在角色被授予时存在活动的应用授予,那么供应订户执行某种验证、发起账户创建、调出目标系统、在目标系统上创建账户并将账户创建标记为成功。这些功能中的每一个可以导致对应事件的公布,诸如“prov.account.create.initiate”、“prov.target.create.initiate”、“prov.target.create.success”或“prov.account.create.success”。这些事件可以具有其自己的聚合过去N天内在目标系统中创建的账户数量的业务度量。
在一个实施例中,IDCS可以被用于用户登录。例如,客户端应用602可以使用所支持的认证流之一来请求用户的登录。IDCS对用户进行认证,并且在成功时在审计模式624下审计审计表中的操作。在失败时,IDCS在审计模式624下审计失败,并在消息队列628中公布“login.user.login.failure”事件。登录订户拾取事件、更新其用于用户的度量,并确定是否需要执行对用户的访问历史的附加分析。
因而,通过实现“控制反转”功能(例如,改变执行的流以在稍后时间安排操作的执行,使得操作在另一个系统的控制下),实施例使得附加的事件队列以及订户能够被动态添加,以便在部署到更广泛的用户基础之前针对小的用户样本测试新功能,或者处理针对具体的内部或外部客户的具体事件。
无状态功能
IDCS微服务是无状态的,这意味着微服务本身不维持状态。“状态”是指应用为了执行其功能而使用的数据。IDCS通过将所有状态持久化到IDCS数据层中特定于租户的储存库中来提供多租户功能。中间层(即,处理请求的代码)不具有与应用代码存储在相同位置的数据。因而,IDCS在水平和垂直方面都具有高度的可伸缩性。
垂直伸缩(或扩大/缩小)意味着向系统中的单个节点添加资源(或从中移除资源),通常涉及将CPU或存储器添加到单个计算机。垂直可伸缩性允许应用扩大到其硬件的极限。水平伸缩(或扩大/缩小)意味着向系统中添加更多节点(或从中移除节点),诸如将新计算机添加到分布式软件应用。水平可伸缩性允许应用几乎无限地伸缩,仅受网络提供的带宽量限制。
IDCS的中间层的无状态使得仅通过增加更多的CPU就可以水平伸缩,并且执行应用的工作的IDCS组件不需要具有运行特定应用的指定物理基础设施。IDCS中间层的无状态使得IDCS具有高度的可用性,即使在向大量客户/租户提供身份服务时也是如此。每次通过IDCS应用/服务都只关注CPU使用情况来执行应用事务本身,而不使用硬件来存储数据。伸缩是通过在应用运行时添加更多的片(slice)来完成的,而用于事务的数据存储在持久层上,在那里,在需要时可以添加更多的副本。
IDCS网络层、中间层和数据层可以各自独立和分开地进行伸缩。web层可以伸缩,以处理更多的HTTP请求。中间层可以伸缩,以支持更多的服务功能。数据层可以伸缩,以支持更多的租户。
IDCS功能视图
图6A是一个实施例中的IDCS的功能视图的示例框图600b。在框图600b中,IDCS功能堆栈包括服务、共享库和数据存储。服务包括IDCS平台服务640b、IDCS高级服务650b和IDCS基础设施服务662b。在一个实施例中,IDCS平台服务640b和IDCS高级服务650b是分开部署的、实现IDCS的业务的、基于Java的运行时服务,而IDCS基础设施服务662b是分开部署的、为IDCS提供基础设施支持的运行时服务。共享库包括IDCS基础设施库680b,该IDCS基础设施库680b是作为由IDCS服务和共享库使用的共享库被打包的公共代码。数据存储是IDCS所需/生成的数据储存库,包括身份存储698b、全局配置700b、消息存储702b、全局租户704b、个性化设置706b、资源708b、用户瞬态数据710b、系统瞬态数据712b、每租户模式(受管理的ExaData)714b、操作存储(未示出)、高速缓存存储(未示出)等等。
在一个实施例中,IDCS平台服务640b包括例如OpenID Connect服务642b、OAuth2服务644b、SAML2服务646b和SCIM++服务648b。在一个实施例中,IDCS高级服务包括例如云SSO和治理(governance)652b、企业治理654b、AuthN中介656b、联合中介658b和私人账户管理660b。
IDCS基础设施服务662b和IDCS基础设施库680b提供IDCS平台服务640b完成其工作所需的支持能力。在一个实施例中,IDCS基础设施服务662b包括作业调度器664b、UI666b、SSO 668b、报告670b、高速缓存672b、存储装置674b、服务管理器676b(公共云控制)和事件处理器678b(用户通知、应用订阅、审计、数据分析)。在一个实施例中,IDCS基础设施库680b包括数据管理器API 682b、事件API 684b、存储API 686b、认证API 688b、授权API690b、cookie API 692b、密钥API 694b和凭证API 696b。在一个实施例中,云计算服务602b(内部Nimbula)支持IDCS基础设施服务662b和IDCS基础设施库680b的功能。
在一个实施例中,IDCS为IDCS服务的消费者提供各种UI602b,诸如客户最终用户UI 604b、客户管理UI 606b、DevOps管理UI 608b和登录UI 610b。在一个实施例中,IDCS允许应用(例如,客户应用614b、合作伙伴应用616b和云应用618b)的集成612b和固件集成620b。在一个实施例中,各种环境可以与IDCS集成,以支持其访问控制需求。这种集成可以由例如身份桥622b(提供AD集成、WNA和SCIM连接器)、Apache代理624b或MSFT代理626b提供。
在一个实施例中,内部和外部IDCS消费者经基于标准的协议628b(诸如OpenIDConnect 630b、OAuth2 632b、SAML2 634b、SCIM 636b和REST/HTTP 638b)与IDCS的身份服务集成。这使得能够使用域名系统(“DNS”)来解决将请求路由到何处,并且使得消费应用与对身份服务的内部实现的理解解耦。
图6A中的IDCS功能视图还包括公共云基础设施服务,其提供IDCS为了用户通知(云通知服务718b)、文件存储(云存储服务716b)以及用于DevOps的度量/警告(云监视服务(EM)722b和云度量服务(Graphite)720b)而依赖的常见功能。
云门
在一个实施例中,IDCS在web层中实现“云门”。云门是web服务器插件,它使web应用能够将用户SSO外部化到身份管理系统(例如,IDCS),类似于与企业IDM堆栈一起工作的WebGate或WebAgent技术。云门充当保护对IDCS API的访问的安全守卫。在一个实施例中,云门由web/代理服务器插件实现,其提供用于基于OAuth保护HTTP资源的web策略强制实施点(“PEP”)。
图7是实现云门702的实施例的框图700,云门702在web服务器712中运行并充当被配置为使用开放标准(例如,OAuth2,OpenID Connect等)与IDCS策略决定点(“PDP”)集成的策略强制实施点(“PEP”),同时保护对应用的REST API资源和web浏览器714的访问。在一些实施例中,PDP在OAuth和/或OpenID Connect微服务704上实现。例如,当用户浏览器706向IDCS发送用于用户710的登录的请求时,对应的IDCS PDP验证凭证,然后决定凭证是否充足(例如,是否请求诸如第二密码的进一步的凭证)。在图7的实施例中,云门702可以既充当PEP又充当PDP,因为它具有本地策略。
作为一次部署的一部分,云门702作为OAuth2客户端向IDCS注册,从而使其能够针对IDCS请求OIDC和OAuth2操作。其后,它根据请求匹配规则(如何匹配URL,例如,通配符、正则表达式等等)来维护关于应用的受保护和不受保护的资源的配置信息。可以部署云门702,以保护具有不同安全策略的不同应用,并且受保护的应用可以是多租户的。
在基于web浏览器的用户访问期间,云门702充当发起用户认证流的OIDC RP 718。如果用户710没有有效的本地用户会话,那么云门702将用户重定向到SSO微服务并且与SSO微服务一起参与OIDC“授权码”流。该流以递送JWT作为身份令牌结束。云门708验证JWT(例如,查看签名、到期、目的地/观众等等)并且为用户710发布本地会话cookie。它充当会话管理器716,以保护web浏览器访问受保护的资源以及发布、更新并验证本地会话cookie。它还提供了用于移除其本地会话cookie的注销URL。
云门户702还充当HTTP基本认证认证器,从而针对IDCS验证HTTP基本认证凭证。这种行为在无会话和基于会话(本地会话cookie)模式下均受支持。在这种情况下,不创建服务器侧的IDCS会话。
在REST API客户端708的编程访问期间,云门702可以充当应用的受保护的RESTAPI 714的OAuth2资源服务器/过滤器720。它检查具有授权报头和访问令牌的请求的存在。当客户端708(例如,移动、web应用、JavaScript等等)呈现访问令牌(由IDCS发布)以与受保护的REST API 714一起使用时,云门702在允许访问API(例如,签名、到期、观众等等)之前验证访问令牌。原始访问令牌未经修改就被传递。
一般而言,OAuth用于生成客户端身份传播令牌(例如,指示客户端是谁)或者用户身份传播令牌(例如,指示用户是谁)。在这些实施例中,云门中OAuth的实现基于JWT,JWT定义用于web令牌的格式,如由例如IETF、RFC 7519提供的。
当用户登录时,发布JWT。JWT由IDCS签署,并支持IDCS中的多租户功能。云门验证由IDCS发布的JWT,以允许IDCS中的多租户功能。因而,IDCS在物理结构中以及在支撑安全模型的逻辑业务流程中提供多租户。
租赁类型
IDCS指定三种类型的租赁:客户租赁、客户端租赁和用户租赁。客户或资源租赁指定IDCS的客户是谁(即,正在为谁执行工作)。客户端租赁指定哪个客户端应用在试图访问数据(即,哪个应用正在做工作)。用户租赁指定哪个用户在使用该应用来访问数据(即,由谁来执行工作)。例如,当专业服务公司为仓储俱乐部提供系统集成功能并使用IDCS为仓储俱乐部系统提供身份管理时,用户租赁与专业服务公司对应,客户端租赁是用于提供系统集成功能的应用,并且客户租赁是仓储俱乐部。
这三种租赁的分离和识别在基于云的服务中启用多租户功能。一般而言,对于安装在内部部署的物理机器上的内部部署软件,由于用户需要在机器上物理地登录,因此不需要指定三种不同的租赁。但是,在基于云的服务结构中,实施例使用令牌来确定谁在使用什么应用来访问哪些资源。这三种租赁由令牌编码,由云门强制实施并由中间层的业务服务使用。在一个实施例中,OAuth服务器生成令牌。在各种实施例中,令牌可以与除OAuth以外的任何安全协议结合使用。
解耦用户、客户端和资源租赁为IDCS提供的服务的用户提供了实质性的业务优势。例如,它允许服务提供者了解业务(例如,医疗保健业务)的需求和他们的身份管理问题,以购买IDCS提供的服务、开发消费IDCS的服务的自己的后端应用,并向目标业务提供后端应用。因而,服务提供者可以扩展IDCS的服务,以提供其期望的能力并将那里能力提供给某些目标业务。服务提供者不需要构建和运行软件来提供身份服务,而是可以代替地扩展和定制IDCS的服务以适应目标业务的需求。
一些已知的系统仅解决了客户租赁这单一的租赁。但是,这种系统在处理由用户(诸如客户用户、客户的合作伙伴、客户的客户端、客户端本身或者客户委托访问的客户端)的组合进行的访问时是不足够的。在实施例中定义和强制实施多种租赁促进对这各种用户的身份管理功能。
在一个实施例中,IDCS的一个实体不同时属于多个租户;它只属于一个租户,而“租赁”是工件存活的地方。一般而言,存在实现某些功能的多个组件,并且这些组件可以属于租户,或者它们也可以属于基础设施。当基础设施需要代表租户行事时,它代表租户与实体服务进行交互。在那种情况下,基础设施本身具有它自己的租赁,并且客户具有其自己的租赁。在提交请求时,请求中可以涉及多种租赁。
例如,属于“租户1”的客户端可以执行用于获得让“租户2”指定“租户3”中的用户的令牌的请求。作为另一个示例,存在于“租户1”中的用户可以需要在由“租户2”拥有的应用中执行动作。因此,用户需要去“租户2”的资源命名空间并为他们自己请求令牌。因而,授权的委托通过识别“谁”可以对“谁”做“什么”来完成。作为又一个示例,为第一组织(“租户1”)工作的第一用户可以允许为第二组织(“租户2”)工作的第二用户有权访问由第三组织(“租户3”)托管的文档。
在一个示例中,“租户1”中的客户端可以请求让“租户2”中的用户访问“租户3”中的应用的访问令牌。客户端可以通过转到“http://tenant3/oauth/token”来调用对令牌的OAuth请求。客户端通过在请求中包括“客户端断言”将自己识别为存在于“租户1”中的客户端。客户端断言包括客户端ID(例如,“客户端1”)和客户端租赁“租户1”。作为“租户1”中的“客户端1”,该客户端有权调用对“租户3”上的令牌的请求,并且客户端想要用于“租户2”中的用户的令牌。因而,“用户断言”也作为同一个HTTP请求的一部分被传递。所生成的访问令牌将在作为应用租赁(“租户3”)的目标租赁的上下文中发布,并将包括用户租赁(“租户2”)。
在一个实施例中,在数据层中,每个租户被实现为分离的条带。从数据管理的角度来看,工件存在于租户中。从服务的角度来看,服务知道如何与不同的租户共事,而多租赁是服务的业务功能中的不同维度。图8图示了实施例中实现多租赁的示例系统800。系统800包括客户端802,客户端802请求由理解如何与数据库806中的数据共事的微服务804提供的服务。数据库包括多个租户808,并且每个租户包括对应租赁的工件。在一个实施例中,微服务804是通过https://tenant3/oauth/token请求的OAuth微服务,用于获得令牌。在微服务804中使用来自数据库806的数据执行核实客户端802的请求是合法的OAuth微服务的功能,并且如果是合法的,那么使用来自不同租赁808的数据来构造令牌。因而,系统800是多租户的,因为,通过不仅支持进入每个租赁的服务,而且还支持代表不同租户行事的服务,它可以在跨租户环境中工作。
系统800是有利的,因为微服务804在物理上与数据库806中的数据解耦,并且通过在更靠近客户端的位置复制数据,微服务804可以作为本地服务被提供给客户端并且系统800可以管理服务的可用性并在全球提供。
在一个实施例中,微服务804是无状态的,这意味着运行微服务804的机器不维护将服务指向任何具体租户的任何标记。代替地,例如,可以在进入的请求的URL的主机部分上标记租赁。那种租赁指向数据库806中的租户808之一。当支持大量租户(例如,数百万租户)时,微服务804不能具有到数据库806的相同数量的连接,而是代替地使用连接池810,其在数据库用户的上下文中提供到数据库806的实际物理连接。
一般而言,通过向底层驱动器或提供者供给连接字符串来构建连接,连接字符串被用于寻址具体的数据库或服务器并提供实例和用户认证凭证(例如,“Server=sql_box;Database=Common;User ID=uid;Pwd=Password;”)。一旦连接已经建立,它就可以被打开和关闭,并且可以设置特性(例如,命令超时长度,或事务(如果存在的话))。连接字符串包括由数据提供者的数据访问接口规定的键-值对的集合。连接池是所维护的数据库连接的高速缓存,使得在将来需要对数据库的请求时可以重用连接。在连接池中,在创建连接之后,它被放在池中并被再次使用,使得不必建立新连接。例如,当微服务804和数据库808之间需要10个连接时,在连接池810中将存在10个打开的连接,全部在数据库用户的上下文中(例如,与具体的数据库用户相关联,例如,谁是那个连接的所有者、谁的凭证正在验证中、是数据库用户吗、是系统凭证吗等)。
连接池810中的连接是为可以访问任何东西的系统用户创建的。因此,为了正确处理由代表租户处理请求的微服务804进行的审计和特权,在与指派给具体租户的模式所有者相关联的“代理用户”812的上下文中执行数据库操作。这个模式所有者只能访问为其创建模式的租赁,并且租赁的价值是模式所有者的价值。当请求数据库806中的数据时,微服务804使用连接池810中的连接来提供那个数据。因而,多租赁是通过使无状态的、弹性的中间层服务在特定于租户的数据存储绑定的上下文中(例如,与其相关联)处理传入的请求来实现的,其中特定于租户的数据存储绑定是以每个请求为基础的在与资源租赁相关联的数据存储代理用户上下文中(例如,与其相关联)创建的数据连接之上建立的,并且数据库可以独立于服务进行伸缩。
以下提供了用于实现代理用户812的示例功能:
dbOperation=<prepare DB command to execute>
dbConnection=getDBConnectionFromPool()
dbConnection.setProxyUser(resourceTenant)
result=dbConnection.executeOperation(dbOperation)
在这个功能中,微服务804将在从连接池810拉出的连接上的“代理用户”设置设置为“租户”,并且在使用连接池810中的数据库连接的同时在租户的上下文中执行数据库操作。
当将每个表分条以针对不同租户配置同一个数据库中的不同列时,一个表可以包括混合在一起的所有租户的数据。相反,一个实施例提供租户驱动的数据层。该实施例不为不同租户将同一个数据库分条,而是代替地为每个租户提供不同的物理数据库。例如,多租赁可以通过使用可插拔数据库(例如,来自Oracle公司的Oracle数据库12c)来实现,其中每个租户被分配分离的分区。在数据层,资源管理器处理请求,然后请求用于该请求的数据源(与元数据分离)。该实施例依据请求执行到相应数据源/存储的运行时切换。通过将每个租户的数据与其他租户隔离,该实施例提供了改进的数据安全性。
在一个实施例中,各种令牌编码不同的租赁。URL令牌可以识别请求服务的应用的租赁。身份令牌可以编码将被认证的用户的身份。访问令牌可以识别多个租赁。例如,访问令牌可以对作为这种访问的目标的租赁(例如,应用租赁)以及被给予访问的用户的用户租赁进行编码。客户端断言令牌可以识别客户端ID和客户端租赁。用户断言令牌可以识别用户和用户租赁。
在一个实施例中,身份令牌至少包括指示用户租户名字(即,用户所在的地方)的声称/声明。与授权令牌相关的“声称”(如由安全领域的普通技术人员所使用的)是一个主题对自己或另一个主题做出的声明。例如,声明可以是关于名字、身份、密钥、组、特权或能力。声称由提供者发布,并且它们被给予一个或多个值,然后被打包在由发布者发布的安全令牌中,通常称为安全令牌服务(“STS”)。
在一个实施例中,访问令牌至少包括指示在对访问令牌做出请求时的资源租户名字(例如,客户)的声称/声明、指示用户租户名字的声称、指示做出请求的OAuth客户端的名字的声称以及指示客户端租户名字的声称。在一个实施例中,访问令牌可以根据以下JSON功能来实现:
Figure BDA0002801987910000341
在一个实施例中,客户端断言令牌包括至少指示客户端租户名字的声称以及指示做出请求的OAuth客户端的名字的声称。
本文描述的令牌和/或多种租赁可以在除IDCS以外的任何其它基于多租户云的服务中实现。例如,本文描述的令牌和/或多租赁可以在SaaS或企业资源规划(“ERP”)服务中实现。
图9是一个实施例中的IDCS的网络视图900的框图。图9图示了在一个实施例中在应用“区”904之间执行的网络交互。基于所需的保护级别和到各种其它系统(例如,SSL区、无SSL区等等)的连接的实现,将应用分成区。一些应用区提供需要从IDCS内部进行访问的服务,而一些应用区提供需要从IDCS外部进行访问的服务,并且一些应用区域是开放访问。因而,针对每种区强制实施相应的保护级别。
在图9的实施例中,服务到服务通信是使用HTTP请求来执行的。在一个实施例中,IDCS使用本文描述的访问令牌不仅提供服务,而且还保护对IDCS自身的访问以及在IDCS自身内的访问。在一个实施例中,IDCS微服务通过REST性的接口暴露并由本文所述的令牌保护。
在图9的实施例中,各种应用/服务902中的任何一个都可以对IDCS API进行HTTP调用,以使用IDCS服务。在一个实施例中,应用/服务902的HTTP请求经历Oracle公共云负载均衡外部虚拟IP地址(“VIP”)906(或其它类似技术)、公共云web路由层908以及IDCS负载均衡内部VIP应用910(或其它类似的技术),以被IDCS web路由层912接收。IDCS web路由层912接收来自IDCS的外部或内部的请求,并且跨IDCS平台服务层914或IDCS基础设施服务层916路由它们。IDCS平台服务层914包括从IDCS外部调用的IDCS微服务,诸如OpenIDConnect、OAuth、SAML、SCIM等等。IDCS基础设施服务层916包括支持从IDCS的内部调用的微服务,以支持其它IDCS微服务的功能。IDCS基础设施微服务的示例是UI、SSO、报告、高速缓存、作业调度器、服务管理器、用于制作密钥的功能等等。IDCS高速缓存层926支持用于IDCS平台服务层914和IDCS基础设施服务层916的高速缓存功能。
通过强制实施在外部访问IDCS和IDCS内部的安全性,IDCS的客户可以被提供对于他们运行的应用的杰出的安全合规性。
在图9的实施例中,除了基于结构化查询语言(“SQL”)通信的数据层918和基于LDAP通信的ID存储层920之外,OAuth协议也被用于保护IDCS内的IDCS组件(例如,微服务)之间的通信,并且用于保护来自IDCS外部的访问的相同令牌也被用于IDCS内的安全性。即,web路由层912使用相同的令牌和协议来处理它接收到的请求,而不管请求是从IDCS外部还是从IDCS内部接收到的。因而,IDCS为保护整个系统提供了单一一致的安全模型,由此允许卓越的安全合规性,因为在系统中实现的安全模型越少,系统越安全。
在IDCS云环境中,应用通过进行网络调用来进行通信。网络调用可以基于适用的网络协议,诸如HTTP、传输控制协议(“TCP”)、用户数据报协议(“UDP”)等等。例如,通过将应用“Y”作为HTTP统一资源定位符(“URL”)暴露,应用“X”可以基于HTTP与应用“Y”通信。在一个实施例中,“Y”是暴露各自与能力对应的多个资源的IDCS微服务。当“X”(例如,另一个IDCS微服务)需要调用“Y”时,它构造包括“Y”和需要被调用的资源/能力的URL(例如https://host/Y/resource),并进行对应的REST调用,该REST调用经过web路由层912并被定向到“Y”。
在一个实施例中,IDCS之外的调用者可以不需要知道“Y”在哪里,但是web路由层912需要知道应用“Y”在哪里运行。在一个实施例中,IDCS实现发现功能(由OAuth服务的API实现),以确定每个应用在哪里运行,因此不需要静态路由信息的可用性。
在一个实施例中,企业管理器(“EM”)922提供将内部部署的和基于云的管理扩展到IDCS的“单一虚拟管理平台(single pane of glass)”。在一个实施例中,是来自ChefSoftware公司的配置管理工具的“Chef”服务器924为各种IDCS层提供配置管理功能。在一个实施例中,服务部署基础设施和/或持久性存储模块928可以将OAuth2 HTTP消息发送到IDCS web路由层912,以进行租户生命周期管理操作、公共云生命周期管理操作或其它操作。在一个实施例中,IDCS基础设施服务层916可以将ID/密码HTTP消息发送到公共云通知服务930或公共云存储服务932。
云访问控制-SSO
一个实施例支持用于实现云规模的SSO服务的轻量级云标准。轻量级云标准的示例是HTTP、REST以及通过浏览器提供访问的任何标准(因为web浏览器是轻量级的)。相反,SOAP是重量级云标准的示例,其需要更多的管理、配置和工具来构建客户端。该实施例对于应用使用OpenID Connect语义来针对IDCS请求用户认证。该实施例使用轻量级的基于HTTPcookie的用户会话跟踪来在IDCS处跟踪用户的活动会话,而无需有状态的服务器端会话支持。该实施例对于应用使用基于JWT的身份令牌,以在将经认证的身份映射回其自己的本地会话时使用。该实施例支持与联合的身份管理系统的集成,并且暴露用于企业部署的SAMLIDP支持,以针对IDCS请求用户认证。
图10是一个实施例中的IDCS中的SSO功能的系统架构视图的框图1000。该实施例使得客户端应用能够充分利用基于标准的web协议来发起用户认证流。需要将SSO与云系统集成的应用可以位于企业数据中心中、远程合作伙伴数据中心中,或者甚至由客户内部部署操作。在一个实施例中,不同的IDCS平台服务实现SSO的业务,诸如OpenID Connect,用于处理来自所连接的本机应用(即,利用OpenID Connect与IDCS集成的应用)的登录/注销请求;SAML IDP服务,用于处理来自所连接的应用的基于浏览器的登录/注销请求;SAML SP服务,用于编排针对外部SAML IDP的用户认证;以及内部IDCS SSO服务,用于编排包括本地或联合登录流的最终用户登录仪式以及用于管理IDCS主机会话cookie。一般而言,HTTP可以带表单或不带表单工作。当它带表单工作时,表单就会在浏览器中被看到。当它不带表单工作时,它作为客户端到服务器的通信。OpenID Connect和SAML都需要能够呈现表单,这可以通过存在浏览器来实现,或者通过充当浏览器起作用的应用虚拟执行。在一个实施例中,通过IDCS实现用户认证/SSO的应用客户端需要作为OAuth2客户端在IDCS中注册,并且需要获得客户端标识符和凭证(例如,ID/密码、ID/证书等等)。
图10的示例实施例包括共同提供登录能力的三个组件/微服务,包括两个平台微服务:OAuth2 1004和SAML2 1006,以及一个基础设施微服务:SSO 1008。在图10的实施例中,IDCS提供“身份元系统”,其中在不同类型的应用(诸如需要三参与方OAuth流并充当OpenID Connect中继方(“RP”,将其用户认证功能外包给IDP的应用)的基于浏览器的web或本机应用1010、需要双参与方OAuth流并充当OpenID Connect RP的本机应用1011以及充当SAML SP的web应用1012)上提供SSO服务1008。
一般而言,身份元系统是用于数字身份的可互操作架构,从而允许基于多种底层技术、实现和提供者来采用数字身份的集合。LDAP、SAML和OAuth是提供身份能力并且可以是用于构建应用的基础的不同安全标准的示例,并且身份元系统可以被配置为在这种应用之上提供统一的安全系统。LDAP安全模型指定用于处理身份的具体机制,并严格保护系统的所有次通过。开发SAML,以允许一组应用安全地与属于不同安全域中的不同组织的另一组应用交换信息。由于这两个应用之间没有信任,因此开发了SAML,以允许一个应用对另一个不属于同一组织的应用进行认证。OAuth提供了OpenIDConnect,它是用于执行基于web的认证的轻量级协议。
在图10的实施例中,当OpenID应用1010连接到IDCS中的OpenID服务器时,其“通道”请求SSO服务。类似地,当SAML应用1012连接到IDCS中的SAML服务器时,其“通道”也请求SSO服务。在IDCS中,相应的微服务(例如,OpenID微服务1004和SAML微服务1006)将处理每个应用,并且这些微服务从SSO微服务1008请求SSO能力。通过针对每个协议添加微服务,然后对于SSO能力使用SSO微服务1008,可以扩展这个架构,以支持任意数量的其它安全协议。SSO微服务1008发布会话(即提供SSO cookie1014)并且是架构中具有发布会话的权限的唯一系统。IDCS会话通过浏览器1002使用SSO cookie 1014来实现。浏览器1002还使用本地会话cookie 1016来管理其本地会话。
在一个实施例中,例如,在浏览器内,用户可以使用基于SAML的第一应用并且登录,并且随后使用由诸如OAuth之类的不同协议构建的第二应用。在同一浏览器内的第二应用上向用户提供SSO。因而,浏览器是状态或用户代理并且维护cookie。
在一个实施例中,SSO微服务1008提供登录仪式1018、ID/密码恢复1020、首次登录流1022、认证管理器1024、HTTP cookie管理器1026以及事件管理器1028。登录仪式1018实现基于客户设置和/或应用上下文的SSO功能,并且可以根据本地表单(即,基本Auth)、外部SAML IDP、外部OIDC IDP等等进行配置。使用ID/密码恢复1020来恢复用户的ID和/或密码。当用户第一次登录时(即,SSO会话尚不存在时),实现首次登录流1022。认证管理器1024在成功认证时发布认证令牌。HTTP cookie管理器1026将认证令牌保存在SSO cookie中。事件管理器1028公布与SSO功能相关的事件。
在一个实施例中,OAuth微服务1004和SSO微服务1008之间的交互是基于浏览器重定向,使得SSO微服务1008使用HTML表单挑战用户、验证凭证并发布会话cookie。
在一个实施例中,例如,OAuth微服务1004可以从浏览器1002接收授权请求,以根据三参与方OAuth流认证应用的用户。OAuth微服务1004然后充当OIDC提供者1030、将浏览器1002重定向到SSO微服务1008,并沿着应用上下文传递。取决于用户是否具有有效的SSO会话,SSO微服务1008验证现有会话或者执行登录仪式。在成功认证或验证后,SSO微服务1008将认证上下文返回到OAuth微服务1004。然后OAuth微服务1004用授权(“AZ”)代码将浏览器1002重定向到回调URL。浏览器1002将AZ代码发送到OAuth微服务1004,以请求所需的令牌1032。浏览器1002还在HTTP授权报头中包括其客户端凭证(当在IDCS中注册为OAuth2客户端时获得的)。作为回报,OAuth微服务1004向浏览器1002提供所需的令牌1032。在一个实施例中,提供给浏览器1002的令牌1032包括由IDCS OAuth2服务器签署的JW身份和访问令牌。这个功能的进一步细节在下面参考图11公开。
在一个实施例中,例如,OAuth微服务1004可以从本机应用1011接收授权请求,以根据双参与方OAuth流来认证用户。在这种情况下,OAuth微服务1004中的认证管理器1034执行对应的认证(例如,基于从客户端1011接收到的ID/密码),并且令牌管理器1036在成功认证后发布对应的访问令牌。
在一个实施例中,例如,SAML微服务1006可以从浏览器接收SSO POST请求,以认证充当SAML SP的web应用1012的用户。然后,SAML微服务1006充当SAML IDP 1038,将浏览器1002重定向到SSO微服务1008,并沿着应用上下文传递。取决于用户是否具有有效的SSO会话,SSO微服务1008验证现有会话或者执行登录仪式。在成功认证或验证后,SSO微服务1008将认证上下文返回给SAML微服务1006。然后SAML微服务用所需的令牌重定向到SP。
在一个实施例中,例如,SAML微服务1006可以充当SAML SP 1040并前往远程SAMLIDP 1042(例如,活动目录联合服务(“ADFS”))。一个实施例实现标准SAML/AD流。在一个实施例中,SAML微服务1006和SSO微服务1008之间的交互是基于浏览器重定向,使得SSO微服务1008使用HTML表单挑战用户、验证凭证并发布会话cookie。
在一个实施例中,通过防火墙1044执行IDCS内的组件(例如,1004、1006、1008)与IDCS外的组件(例如,1002、1011、1042)之间的交互。
登录/注销流
图11是在一个实施例中由IDCS提供的SSO功能的消息序列流1100。当用户使用浏览器1102访问客户端1106(例如,基于浏览器的应用或移动/本机应用)时,云门1104充当应用强制实施点并执行在本地策略文本文件中定义的策略。如果云门1104检测到用户没有本地应用会话,那么需要对用户进行认证。为了这样做,云门1104将浏览器1102重定向到OAuth2微服务1110,以发起针对OAuth2微服务1110的OpenID Connect登录流(范围=“openid简档”的三参与方AZ授予流)。
浏览器1102的请求遍历IDCS路由层web服务1108和云门1104并到达OAuth2微服务1110。OAuth2微服务1110构造应用上下文(即,描述应用的元数据,例如,连接应用的身份、客户端ID、配置,应用可以做什么等等),并将浏览器1102重定向到SSO微服务1112以便登录。
如果用户具有有效的SSO会话,那么SSO微服务1112验证现有会话而不开始登录仪式。如果用户不具有有效的SSO会话(即,不存在会话cookie),那么SSO微服务1112根据客户的登录偏好(例如,显示有品牌的登录页面)来发起用户登录仪式。为了这样做,SSO微服务1112将浏览器1102重定向到以JavaScript实现的登录应用服务1114。登录应用服务1114在浏览器1102中提供登录页面。浏览器1102将REST POST发送到包括登录凭证的SSO微服务1112。SSO微服务1112生成访问令牌并将其发送到REST POST中的云门1104。云门1104将认证信息发送到管理SCIM微服务1116,以验证用户的密码。管理SCIM微服务1116确定成功的认证,并向SSO微服务1112发送对应的消息。
在一个实施例中,在登录仪式期间,登录页面不显示同意页面,因为“登录”操作不需要进一步的同意。相反,在登录页面上声明隐私政策,以通知用户关于向应用暴露的某些简档属性。在登录仪式期间,SSO微服务1112尊重客户的IDP偏好,并且如果被配置,那么重定向到IDP,以针对经配置的IDP进行认证。
在成功认证或验证后,SSO微服务1112利用包含用户的认证令牌的新创建/更新的SSO主机HTTP cookie(例如,在由“HOSTURL”指示的主机的上下文中创建的cookie)将浏览器1102重定向回到OAuth2微服务1110。OAuth2微服务1110将AZ代码(例如,OAuth概念)返回给浏览器1102并重定向到云门1104。浏览器1102将AZ代码发送到云门1104,并且云门1104将REST POST发送到OAuth2微服务1110,以请求访问令牌和身份令牌。这两个令牌都被限定到OAuth微服务1110(由观众令牌声称来指示)。云门1104从OAuth2微服务1110接收令牌。
云门1104使用身份令牌将用户的经认证的身份映射到其内部账户表示,并且它可以将这个映射保存在其自己的HTTP cookie中。然后,云门1104将浏览器1102重定向到客户端1106。然后浏览器1102到达客户端1106,并从客户端1106接收对应的响应。从这个时候开始,浏览器1102可以无缝地访问应用(即,客户端1106),只要该应用的本地cookie是有效的就可以。一旦本地cookie失效,认证过程就重复。
云门1104还使用在请求中接收的访问令牌来从OAuth2微服务1110或SCIM微服务获得“userinfo”。访问令牌足以访问用于“profile(简档)”作用域允许的属性的“userinfo”资源。经由SCIM微服务访问“/me”资源也是足够的。在一个实施例中,默认情况下,接收到的访问令牌仅适用于在“profile”范围下所允许的用户简档属性。访问其它简档属性是基于由云门1104发布的AZ授予登录请求中提交的附加(可选)范围来授权的。
当用户访问另一个OAuth2集成的连接应用时,重复相同的处理。
在一个实施例中,SSO集成架构使用相似的OpenID Connect用户认证流来进行基于浏览器的用户注销。在一个实施例中,具有现有应用会话的用户访问云门1104,以发起注销。可替代地地,用户可能已经在IDCS侧发起了注销。云门1104终止特定于该应用的用户会话,并且发起针对OAuth2微服务1110的OAuth2 OpenID提供者(“OP”)注销请求。OAuth2微服务1110重定向到杀死用户的主机SSO cookie的SSO微服务1112。SSO微服务1112针对如在用户的SSO cookie中被跟踪的已知注销端点发起重定向的集合(OAuth2OP和SAML IDP)。
在一个实施例中,如果云门1104使用SAML协议来请求用户认证(例如,登录),那么在SAML微服务和SSO微服务1112之间开始相似的处理。
云高速缓存
一个实施例提供被称为云高速缓存的服务/能力。在IDCS中提供云高速缓存,以支持与基于LDAP的应用(例如,电子邮件服务器、日历服务器、一些业务应用等等)的通信,因为IDCS不根据LDAP进行通信,而此类应用被配置为仅基于LDAP进行通信。通常,云目录经由REST API暴露,并且不根据LDAP协议进行通信。一般而言,管理跨公司防火墙的LDAP连接需要特殊的配置,这些配置难以建立和管理。
为了支持基于LDAP的应用,云高速缓存将LDAP通信翻译为适合与云系统进行通信的协议。一般而言,基于LDAP的应用经由LDAP使用数据库。应用可以可替代地被配置为经由诸如SQL之类的不同协议来使用数据库。但是,LDAP在树结构中提供资源的分层表示,而SQL将数据表示为表和字段。因而,LDAP可能更适合搜索功能,而SQL可能更适合于事务功能。
在一个实施例中,由IDCS提供的服务可以在基于LDAP的应用中使用,以例如认证应用的用户(即,身份服务)或者为该应用强制实施安全策略(即,安全服务)。在一个实施例中,与IDCS的接口是通过防火墙并基于HTTP(例如,REST)的。通常,公司防火墙不允许访问内部LDAP通信,即使通信实现了安全套接字层(“SSL”),并且不允许通过防火墙暴露TCP端口。但是,云高速缓存在LDAP和HTTP之间进行翻译,以允许基于LDAP的应用到达由IDCS提供的服务,并且防火墙将对HTTP开放。
一般而言,LDAP目录可以在一系列业务(诸如营销和开发)中使用,并且定义用户、组、工作等等。在一个示例中,营销和开发业务可以具有不同的有针对性的客户,并且对于每个客户,可以有其自己的应用、用户、组、工作等等。可以运行LDAP高速缓存目录的一系列业务的另一个示例是无线服务提供者。在这种情况下,由无线服务提供者的用户进行的每个呼叫都针对LDAP目录来认证用户的设备,并且LDAP目录中的对应信息中的一些可以与计费系统同步。在这些示例中,LDAP提供了在运行时在物理上隔离正在被搜索的内容的功能。
在一个示例中,无线服务提供者可以在使用由IDCS提供的服务以支持短期营销活动的同时处理用于其核心业务(例如,常规呼叫)的自身的身份管理服务。在这种情况下,当云高速缓存具有它针对云运行的单个用户集合和单个组集合时,云高速缓存将“扁平化”LDAP。在一个实施例中,可以在IDCS中实现任何数量的云高速缓存。
分布式数据网格
在一个实施例中,IDCS中的高速缓存集群是基于分布式数据网格来实现的,如在例如美国专利公开No.2016/0092540中所公开的,其公开内容通过引用结合于此。分布式数据网格是一种系统,其中计算机服务器的集合在一个或多个集群中一起工作,以管理分布式或集群环境中的信息和相关操作(诸如计算)。分布式数据网格可以被用于管理跨服务器共享的应用对象和数据。分布式数据网格提供低响应时间、高吞吐量、可预测的可伸缩性、持续可用性和信息可靠性。在特定的示例中,分布式数据网格(诸如来自Oracle公司的Oracle Coherence数据网格)存储存储器中的信息,以实现更高的性能,并且在保持那种信息的副本跨多个服务器同步时采用冗余,从而在服务器发生故障的情况下确保系统的弹性和数据的持续可用性。
在一个实施例中,IDCS实现诸如Coherence之类的分布式数据网格,使得每个微服务可以请求访问共享的高速缓存对象而不被阻塞。Coherence是专有的基于Java的存储器内数据网格,其被设计为比传统的关系型数据库管理系统具有更好的可靠性、可伸缩性和性能。Coherence提供了点对点(即,没有中央管理器)、存储器内的分布式高速缓存。
图12图示了分布式数据网格1200的示例,其存储数据并向客户端1250提供数据访问并实现本发明的实施例。“数据网格集群”或“分布式数据网格”是包括多个计算机服务器(例如,1220a、1220b、1220c和1220d)的系统,这些多个计算机服务器在一个或多个集群(例如,1200a、1200b、1200c)中一起工作,以在分布式或集群环境中存储和管理信息和相关操作(诸如计算)。虽然分布式数据网格1200被示为在集群1200a中包括四个服务器1220a、1220b、1220c、1220d,具有五个数据节点1230a、1230b、1230c、1230d和1230e,但是分布式数据网格1200可以包括任意数量的集群以及每个集群中任意数量的服务器和/或节点。在实施例中,分布式数据网格1200实现本发明。
如图12中所示,分布式数据网格通过在一起工作的多个服务器(例如,1220a、1220b、1220c和1220d)上分布数据来提供数据存储和管理能力。数据网格集群的每个服务器可以是常规的计算机系统,诸如像具有一到两个处理器插槽和每个处理器插槽两到四个CPU核心的“商品x86”服务器硬件平台。每个服务器(例如,1220a、1220b、1220c和1220d)被配置有一个或多个CPU、网络接口卡(“NIC”)和存储器,其中存储器包括例如至少4GB的RAM,高达64GB RAM或更多。服务器1220a被示为具有CPU 1222a、存储器1224a和NIC 1226a(这些元件在其它服务器1220b、1220c、1220d中也存在,但未示出)。可选地,每个服务器也可以提供有闪存(例如,SSD 1228a),以提供外溢(spillover)存储容量。在被提供时,SSD容量优选地是RAM的尺寸的十倍。数据网格集群1200a中的服务器(例如,1220a、1220b、1220c、1220d)使用高带宽NIC(例如,PCI-X或PCIe)连接到高性能网络交换机1220(例如,千兆以太网或更好)。
集群1200a优选地包含最少四个物理服务器,以避免在故障期间丢失数据的可能性,但是典型的安装具有多得多的服务器。每个集群中存在的服务器数量越多,故障转移和故障回复的效率越高,并且服务器故障对集群的影响更小。为了最小化服务器之间的通信时间,每个数据网格集群理想地限于提供服务器之间的单跳通信的单个交换机1202。因此,集群可以受到交换机1202上的端口数量的限制。因此,典型的集群将包括4到96个物理服务器。
在分布式数据网格1200的大多数广域网(“WAN”)配置中,WAN中的每个数据中心具有独立但互连的数据网格集群(例如,1200a、1200b和1200c)。WAN可以例如包括比图12中所示的多得多的集群。此外,通过使用互连但独立的集群(例如,1200a、1200b、1200c)和/或在彼此远离的数据中心中定位互连但独立的集群,分布式数据网格可以保护到客户端1250的数据和服务,防止由于自然灾害、火灾、洪水、延长的掉电等造成的一个集群中的所有服务器的同时丢失。
一个或多个节点(例如,1230a、1230b、1230c、1230d和1230e)在集群1200a的每个服务器(例如,1220a、1220b、1220c、1220d)上操作。在分布式数据网格中,节点可以是例如软件应用、虚拟机等,并且服务器可以包括节点在其上操作的操作系统、管理程序等(未示出)。在Oracle Coherence数据网格中,每个节点都是Java虚拟机(“JVM”)。取决于服务器上可用的CPU处理能力和存储器,可以在每个服务器上提供多个JVM/节点。可以根据分布式数据网格的需要添加、开始、停止和删除JVM/节点。运行Oracle Coherence的JVM在被开始时自动加入集群。加入集群的JVM/节点被称为集群成员或集群节点。
架构
每个客户端或服务器包括用于传送信息的总线或其它通信机制,以及耦合到总线以用于处理信息的处理器。处理器可以是任何类型的通用或专用处理器。每个客户端或服务器还可以包括用于存储要由处理器执行的信息和指令的存储器。存储器可以由随机存取存储器(“RAM”)、只读存储器(“ROM”)、诸如磁盘或光盘的静态存储器或任何其它类型的计算机可读介质的任意组合组成。每个客户端或服务器还可以包括通信设备,诸如网络接口卡,以提供对网络的访问。因此,用户可以直接与每个客户端或服务器进行接口,或者通过网络或其它任何方式进行远程接口。
计算机可读介质可以是可由处理器访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质以及通信介质。通信介质可以包括计算机可读指令、数据结构、程序模块或者经调制的数据信号(诸如载波或其它传输机制)中的其它数据,并且包括任何信息传递介质。
处理器还可以经由总线耦合到显示器,诸如液晶显示器(“LCD”)。键盘和光标控制设备(诸如计算机鼠标)也可以耦合到总线,以使得用户能够与每个客户端或服务器进行交互。
在一个实施例中,存储器存储在由处理器执行时提供功能的软件模块。这些模块包括为每个客户端或服务器提供操作系统功能的操作系统。这些模块还可以包括用于提供云身份管理功能的云身份管理模块以及本文公开的所有其它功能。
客户端可以访问网络服务,诸如云服务。在一个实施例中,web服务可以在来自Oracle公司的webLogic Server上实现。在其它实施例中,可以使用web服务的其它实现。web服务访问存储云数据的数据库。
IAM功能示例
在一个实施例中,IAM功能由存储在存储器或其它计算机可读或有形介质中的软件实现,并由处理器执行。
接收到用于执行身份管理服务的请求。在一个实施例中,该请求包括对识别身份管理服务和被配置为执行身份管理服务的微服务的API的调用。在一个实施例中,微服务是可以与其它模块/微服务通信的自包含模块,并且每个微服务具有可以被其它微服务联系的未命名的通用端口。例如,在一个实施例中,各种应用/服务602可以对IDCS API进行HTTP调用以使用IDCS微服务614,如图6所示。在一个实施例中,微服务是运行时组件/处理。
在一个实施例中,该请求包括URL。在一个实施例中,在URL的前缀中识别微服务。在一个实施例中,URL的资源部分识别API。在一个实施例中,URL的主机部分识别与请求相关的资源的租赁。例如,在IDCS的web环境中的URL(诸如“host/microservice/resource”)中,微服务的特征在于具有特定的URL前缀,例如“host/oauth/v1”,其中实际的微服务是“oauth/v1”,并且在“oauth/v1”下存在多个API,例如,用于请求令牌的API:“host/oauth/v1/token”、用于对用户进行认证的API:“host/oauth/v1/authorize”等。即,URL实现微服务,并且URL的资源部分实现API。因此,多个API聚合在同一微服务下。在一个实施例中,URL的主机部分识别租户(例如,“https://tenant3.identity.oraclecloud.com:/oauth/v1/token”)。
然后对请求进行认证。在一个实施例中,该请求由安全门进行认证,安全门诸如本文所述的云门,例如,参考图6中的web路由层610和/或图7中的云门702。
然后,例如,如本文参考IDCS“API平台”所描述的,基于API来访问微服务,并且访问图6中的IDCS中间层614中的微服务。在一个实施例中,通过微服务的未命名通用端口来配置与微服务的通信。在一个实施例中,微服务的未命名通用端口是微服务按照惯例(例如,作为常规的HTTP端口)暴露并允许同一服务内的任何其它模块/微服务与其交谈的标准通信信道。在一个实施例中,微服务通过暴露一个或多个API来提供一个或多个能力。在一个实施例中,仅通过一个或多个API来实现与微服务的通信。即,仅通过调用此类API才能访问/联系微服务。在一个实施例中,根据轻量级协议来配置与微服务的通信。在一个实施例中,轻量级协议包括HTTP和REST。在一个实施例中,请求包括对RESTful HTTP API的调用。因此,一个实施例提供了分派功能。每个HTTP请求都包含URI和动词。实施例从URI解析端点(host/service/resource),并将其与HTTP动词(例如,POST、PUT、PATCH或Delete)组合,以分派(或调用)适当模块的适当方法。这种模式是REST常见的并且被各种程序包(例如,Jersey)支持。
然后,例如,如本文参考IDCS“API平台”所描述的,由微服务执行身份管理服务,并且访问图6中的IDCS中间层614中的微服务。在一个实施例中,微服务是无状态的、水平可伸缩的且独立可部署的。在一个实施例中,微服务的每个物理实现被配置为安全地支持多个租户。在一个实施例中,身份管理服务包括登录服务、SSO服务、联盟服务、令牌服务、目录服务、供应服务或RBAC服务。
数据复制
一般而言,诸如Oracle公共云(“OPC”)之类的公共云旨在通过使诸如虚拟机(“VM”)、应用或存储装置之类的资源经互联网对公众可用来向全球客户提供和支持IaaS、PaaS和SaaS服务。公共云已知具有多个数据中心,每个数据中心位于不同的地理区域,以向位于最靠近相应数据中心的客户提供具有最小等待时间的服务。在实施例中,公共云服务可以部署在覆盖由物理边界分开的客户的不同数据中心(称为“区域”)中。
图13示出了根据一个实施例的具有多个部署的数据中心(指定为“DC”)的公共云1300,每个数据中心形成“区域”。例如,数据中心1301位于加拿大的城市中,数据中心1302位于德国的城市中,并且数据中心1303位于澳大利亚的城市中。在实施例中,一个或多个数据中心被集成到一个“岛”中,该“岛”由一个或多个“控制平面”部署(指定为“CP”)管理。岛是集成到一个“云”中并由一个控制平面管理的区域的集合。例如,控制平面1310管理数据中心1301、1304、1305、1306和1307,而控制平面1311管理数据中心1308和1309。基于可扩展性要求和不同区域中的客户负载,典型的控制平面部署可以服务一个或多个区域。在控制平面组件服务多于一个区域的情况下,在一个实施例中,该组件需要特权来用单个身份与所有区域交互。
对于购买/获得各种公共云服务的每个用户/客户,由云1300维护客户账户。可供客户使用的一种服务可以是上面公开的多租户身份管理服务或IDCS,其可以被实现为控制平面组件并且分开部署在每个区域(即,每个数据中心)中以保护那个区域的资源。如所讨论的,在一个实施例中,未被部署在特定区域中的控制平面需要特殊特权来与它未被部署在其中的区域中的组件或租户交互。例如,在一个区域中定义的控制平面组件可能期望访问位于另一个区域(即,托管在不同的IDCS部署中)的IDCS客户租赁。这要求在这些部署之间以允许被指派给一个区域中的IDCS的组件/客户针对其它区域中的IDCS调用IDCS API(例如,以访问图6的IDCS微服务614中的特定微服务)的方式建立信任。在已知的解决方案中,在一个区域中定义并指派给一个区域的用户只能从该区域而不能从其它区域访问资源和获得认证。
作为对照,在实施例中,在一个区域中具有新颖的访问令牌(称为“全局访问令牌”或“全局令牌”)的用户可以使用同一全局令牌访问另一个区域(即,远程区域)中的资源。实施例涉及如何在区域之间建立信任以便管理各种IDCS区域以允许提供资源和认证功能,而无论用户/客户位于何处。通常,需要向用户提供全局令牌以允许跨区域信任功能。然后,该全局令牌由目的地信任中心消耗。
例如,“客户端”(即,用户或用于访问服务的任何应用或程序方法)可以仅存在于芝加哥中的数据中心1307中(它最初被建立的地方)。每个客户端都有其自己的身份并且需要验证自身并获取令牌。假设客户端在云1300的任何其它数据中心(诸如位于悉尼的数据中心1303)(即,其它数据中心中的IDCS部署)中不存在或没有足迹(footprint)。因此,如果客户端物理地位于悉尼附近,则该客户端无法通过悉尼数据中心进行认证,因为它在那里不存在。为了解决这个问题,实施例生成全局访问令牌以提供所需的跨区域信任。因此,客户端将在芝加哥进行认证,然后请求在悉尼兑换全局访问令牌。芝加哥DC 1307将生成全局令牌并使用全局私钥来对全局令牌进行签名。全局私钥在所有DC中都可用。在实施例中,全局访问令牌仅用于访问IDCS REST API,使得使用该全局令牌跨区域访问非IDCS REST API将导致错误。
悉尼DC 1303中的IDCS部署在被呈现全局令牌时会消耗全局令牌并进行验证。然后,即使客户端未在悉尼中定义,该客户端也可以访问悉尼中的资源。在实施例中,客户端仅需要在单个IDCS部署中被定义,但仍然可以访问其它部署中的资源。
但是,客户端可能希望做的不仅仅是访问另一个区域中的资源。例如,在已知系统中,如果客户端想要在一个区域(例如,芝加哥或“主”数据中心)中创建身份云账户或IDCS部署,则客户将创建该账户。但是,如果同一客户想要在另一个区域(例如,阿姆斯特丹)中使用其身份,以使用那个区域中的工作负载,则该客户必须首先在阿姆斯特丹中创建新的身份云账户,这使得要为同一客户创建两个分开的身份账户。否则,客户可以保持与第一区域的通信,但是如果客户在阿姆斯特丹并被迫使用芝加哥中的工作负载,则这将导致大的等待时间。
作为对照,本发明的实施例将自动把芝加哥(即“主”数据中心)中的客户的身份云账户复制到阿姆斯特丹(即“副本”数据中心)或任何其它区域。在一个实施例中,将给予客户/租户从阿姆斯特丹使用芝加哥中的现有账户的选项,这将导致信息被自举至阿姆斯特丹,并且然后将连续捕获并复制更改。
在实施例中,区域表示可以在其中部署IDCS服务的实体。区域被包含在岛中。每个区域IDCS部署具有特定于部署的数据和元数据工件。
在实施例中,“主”区域是主租户所在的位置,并且副本区域是“副本”租户所在的位置。实施例中的主租户是如由客户选择的特定区域中的物理IDCS租户条带(stripe)。每个条带都存储在数据库模式中,并保持要复制到副本租户条带的客户的主数据集。实施例中的副本租户是通过下面公开的最终一致的复制处理创建和维护的物理IDCS租户条带。每个条带都存储在数据库模式中,并保持客户的副本数据。复制集群是岛内的一组IDCS区域,其中一个区域是主区域,并且其它区域是副本区域。
但是,跨区域的复制或自举会引起一些问题。例如,更改日志将在主区域处被创建并且被发送到副本区域。图14图示了根据本发明的实施例的在主IDCS部署1401(“IDCS1”)和副本IDCS部署1402(“IDCS2”)之间的复制更改事件/日志的处理流程。在一个实施例中,图14(以及下面的图15、图17、图18和图19)的流程图的功能由存储在存储器或其它计算机可读或有形介质中的软件实现,并由处理器执行。在其它实施例中,该功能可以由硬件(例如,通过使用专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”)等等)或者由硬件和软件的任何组合执行。
主1401包括管理服务1405(即,诸如图11的管理SCIM微服务1116之类的管理SCIM微服务)以及复制服务1408(在实施例中也被实现为微服务)。类似地,副本1402也包括管理SCIM微服务(未示出)和复制服务1407。数据存储库1406和1412存储资源中的一些资源和其它相关数据。在一个实施例中,每个资源是IDCS REST API资源。
在实施例中,每个IDCS部署1401和1402分别包括一个或多个分片(sharded)队列1430、1431。分片队列是单个逻辑队列,它通过系统分区被透明地划分为多个独立的物理队列。在一个实施例中,分片队列是Java消息传送服务(“JMS”)分片队列。
在1420处,针对可复制资源之一的SCIM写入请求到达主1401处的管理服务1405。
在1421处,管理服务1405处理该请求并将资源写入在数据存储库1406中。在一个实施例中,“写入”资源包括经由Java数据库连接(“JDBC”)使用SQL语句将资源“持久化”到数据库中。
在1422处,管理服务1405(作为将资源写入数据存储库1405中的结果)生成更改事件,并写入到多个分片队列1430之一。在一个实施例中,基于计算出的散列,始终将租户的更改事件入队到相同的分片。
在1423处,每个分片队列1430中的复制更改事件由复制服务1408中的专用传输处理程序1435以与在队列1430中入队的顺序相同的顺序出队。
在1451处,传输处理程序1435经由RESTAPI调用以消息的形式将更改事件批量推送到副本1402处的复制服务1407。在一个实施例中,消息具有包括更改事件的JSON格式,其中添加了如根据RFC7644在标准SCIM“批量操作”中指定的报头。
在1452处,复制服务1407将批量消息同步写入到本地分片队列1431。在1452处,在一个实施例中,从主1401传输的更改事件始终入队到1402中的同一对应的分片以供应用。例如,如果更改事件在1422处被插入到分片Q1中,则相同的更改日志将在1452处在副本(1402)中进入到分片Q1中。
在1453处,专用的应用处理程序1430使消息从分片队列1431出队。
在1454处,应用处理程序1454以它使消息出队的相同顺序将消息写入到本地数据存储库1412。
一般而言,图14的将来自租户的消息入队到主区域处的相同分片队列、传输处理程序以相同顺序处理出队的消息、将为租户传输的消息入队到副本区域处的相同分片以及应用处理程序以相同顺序处理出队的消息的复制功能确保主区域处的所有更改事件均按顺序被处理,而不会发生数据冲突。
但是,尽管更改事件用单个主区域从主区域(主1401)到副本区域(副本1402)顺序地被处理,但是仍然存在可能发生数据冲突的一些场景。例如,数据冲突可能由于以下原因而出现:(1)在租户数据自举期间,导出的引导数据和正在进行的更改事件可能会存在重叠。在租户自举之后应用那些重叠的更改事件可能导致数据冲突;或者(2)首先向副本区域写入,然后反向同步到主区域以获得副本区域处的租户服务供应的更好的服务级别协议(“SLA”)可能导致数据冲突。但是,在实施例中,因为在副本处遵循主区域处的相同序列,因此也避免了针对这些场景的冲突避免。
图15图示了根据本发明的实施例的在主IDCS部署1401和副本IDCS部署1402之间用于冲突解决的处理流程。
在1501处,专用的应用处理程序1470使更改事件从每个分片队列1431出队。
在1502处,应用处理程序1470尝试在本地数据存储库1470中应用该更改,然后确定是否存在数据冲突。下面的表1列出了不同类型的操作(即,作为对所有IDCS资源进行创建、读取、更新、删除和查询(“CRUDQ”)操作的基于模式的RESTAPI的结果)以及可能引起的数据冲突的类型。
表1中的冲突解决逻辑之一取决于数据冲突而实现。当实现表1中的冲突解决逻辑1b、2a或4a时,在1503处从主1401提取资源。
在1504处,应用处理程序1470协调副本1402处的资源。
Figure BDA0002801987910000551
表一
本发明的实施例中的功能是在应用级别/层(而不是数据库级别、高速缓存级别等)执行的。具体而言,功能由一个或多个微服务(例如,管理服务1405和/或复制服务1408、1407)而不是数据库执行。因此,实施例的执行比其它解决方案快得多,并且实施例可以按需自动协调。实施例避免了单个主复制流中的数据冲突,因为租户的所有更改事件都由传输处理程序和应用处理程序两者顺序处理。
图16是进一步图示根据本发明的实施例的主IDCS部署1401和副本IDCS部署1402的细节的框图。RESTAPI请求1601在主1401处由连接到租户DB1604(即,数据存储库)的管理服务1602、1603接收。
主1401和副本1402各自包括分片队列1610、1620,分片队列1610、1620将消息(在一个实施例中是OracleAdvancedQueuing(“AQ”)消息或ApacheKafka消息)发布到基于散列的分区。在主1401中,消息传输处理程序1622提供每分片的单个线程化传输以维持序列。向复制服务1625提供工作者线程,每个工作者线程一次携带一个缓冲区。复制服务1625用作端点以接收和发布到应用队列(即分片队列1620),一次一个缓冲区以维持序列。消息应用处理程序1630提供每分片的单个线程化应用以维持序列。复制服务1625还用作将更改应用于租户DB1640(即,数据存储库)的端点。IDCS部署的每个复制服务具有在实施例中充当“主”和/或“副本”的能力。
图16是图14的更详细的视图并且包括分区、队列和工作者线程。图16图示了通过排队系统的更改日志的实际流程。1602和1603是在“主”侧并行工作的两个管理服务。1610、1622、1620和1630构成了“pub-sub”(发布-订阅)系统(在一个实施例中,该系统被实现为Oracle公司的“AdvancedQueueing”(“AQ”)),并且图示了图14的1430、1435、1407和1452的进一步内部细节。例如,只要1602或1603将消息发布到1610,就为与租户ID对应的更改日志计算散列。这意味着与特定租户对应的更改日志将始终被散列到相同的“分区”中。在接收方侧(即,副本),应用相同的逻辑,并且与租户对应的更改日志将始终经由副本上的相同分区流动(1620)。还要注意的是,分区的数量是固定的,并且因此,计算出的散列使用“mod租户ID”被指派给分区之一(1610)。
图17是根据本发明的实施例的响应于复制的冲突解决的流程图。如前面所讨论的,即使使用单个主复制模型(即,结合图14描述的模型),也需要冲突解决,以解决与数据相关的更改应用失败,因为更改可能会由于多线程化复制处理流程逻辑或在重新应用先前失败的更改时在副本IDCS实例上不按顺序被应用。实施例使用更新时间戳来解决数据冲突,其中将每个更改条目的操作时间戳与现有目标条目的更新时间戳进行比较,以确定是否需要应用或跳过更改。
除了利用现有目标条目来支持基于更新时间戳的冲突解决逻辑之外,实施例还维护用于删除的条目的墓碑(tombstone)。这些墓碑条目用于解决在对已删除的目标条目应用不按顺序的修改更改时的冲突。
基于计划的冲突解决逻辑,实施例可以确定是跳过/应用更改还是为了更改重试目的而将更改移回到消息队列。基于冲突解决逻辑的跳过的或应用的更改可以被清除。
更改应用可能由于以下原因而失败:
1.系统/资源问题,诸如网络、目标DB或IDCS复制服务失败或存在瞬时稳定性问题;
2.复制服务处理不按顺序的更改;或者
3.由于在应用先前的更改时的IDCS中的软件错误或管理员错误而导致副本IDCS实例上的数据问题。
原因(1)和(2)将通过根据配置数量的重试尝试以及冲突解决逻辑进行适当的更改重试来解决。原因(3)可能导致永久更改应用失败。因此,在一个实施例中,需要将失败的更改移至异常队列以进行人工干预。
IDCS消息传送服务具有内置的消息重试逻辑,其带有指数延迟能力,该指数延迟能力被用于在复制处理流程中应用重试更改。它还具有异常队列,该异常队列将用于保留(根据配置)太多次未能被应用的更改消息。
由于上述错误处理方法,实施例实现了以下复制冲突避免设计保证:
●没有消息将被丢失;
●没有消息将乱序到达;
●由于网络/DB错误/超时,可能有重复消息;以及
●协调/自举可能导致也用作重复消息的陈旧消息。
对于图17的功能,在一个实施例中具有以下先决条件:
●将DB生成的系统时间设置为资源最后修改时间(last-modified-time)。这需要维护单个时间戳/时钟源来进行数据比较,以丢弃由于完全资源协调而导致的重复更改日志(duplicate-change-logs)和陈旧更改日志(stale-change-logs)。
●在主IDCS实例中,资源最后修改时间将从DB中读回,以作为更改日志时间(change-log-time)捕获。
●在副本IDCS实例中,将在应用更改日志和对完整资源进行协调时更新资源最后复制时间(last-replicated-time)。来自主区域的更改日志时间将用作最后复制时间,以维护单个时钟源。
一般错误包括以下:
●在1702处,租户不存在(或)与DB相关的错误(或)连接错误(或)超时:应用处理程序将重试,直到成功为止。
●在1704处,服务隔离/重新启动将作为健康检查框架的一部分被处理。
操作和错误处理动作包括以下:
●创建(1706)
○资源已经存在(1708)
■将有效载荷中的最后修改时间与副本DB中的最后复制时间进行比较
■如果时间戳相同,则丢弃更改日志
■否则,执行全部资源协调
●替换/更新(1710)
○资源不存在(1712)
■执行全部资源协调(1714)
○由于资源数据不一致/损坏而导致的错误(1712)
■执行全部资源协调(1714)
○重复的更新属性级别(在MVA的情况下可能导致重复的条目)
■将有效载荷中的最后修改时间与副本DB中的最后复制时间进行比较
■如果时间戳相同或更小,则丢弃更改日志
■否则,应用更改日志
○添加/替换/移除CMVA-仅在消息丢失时这才是可能的。不应该发生。
●删除(1716)
○资源不存在(1718)
■重复消息:丢弃更改日志
■创建丢失:不应该发生
●协调(1714):
○从主IDCS实例得到全部资源,并且在副本中应用。用来自主区域的资源最后修改时间来更新副本中的最后复制时间,以丢弃已经排队的陈旧更改日志。
如所公开的,实施例利用多租户云系统在不同地理区域中的多个身份管理系统部署之间提供数据的复制。因此,一个地理区域中的一个部署的租户可以访问第二地理区域中的相同资源。实施例使用更改事件的顺序处理来复制该数据。实施例还提供了对于在数据复制期间可能发生的任何数据冲突的解决。
租户复制自举
如以上所公开的,IDCS复制或“全局性”使租户在所有IDCS公共云地理区域中潜在地可用。全局性包括“主”区域和“副本”区域的概念。经由上面公开的复制,数据在主区域和副本区域之间保持同步。但是,如果在主区域中存在需要使其在副本中可用的具有较大足迹的现有租户,那么会出现问题。一种方法是将所有特定于租户的数据从主区域发送到其中租户需要启用的副本区域,如上面结合图14-图17所公开的。
但是,在其中租户IDCS实例的大小非常大的许多情况下,复制可能会花费很长时间,从而延迟了租户可以从副本区域获得访问的时间。此外,在复制期间,主区域上租户的实时更改可能不会在副本区域中被捕获。
与以上图14-图17中公开的复制功能相比,实施例涉及包括从主IDCS区域复制到副本IDCS的某些租户数据的“按需启用”(被称为副本区域中的“租户自举”)的复制。实施例将在主区域处的租户数据足迹分类为“基础”数据和“常规”数据。基础数据是需要在副本区域上可用的最少数据,使得它可以由租户使用并且租户可以被认为在副本处“可用”。因此,在复制期间使租户在副本处可用的时间被大大减少。
在实施例中,基础数据的“最少”量是静态定义的,并且对于租户不会改变。这是副本“启动”所需的最少数据集(包含IDCS资源)。确切的资源在实施例中如下:“resourceType:Group”、“resourceType:SecurityQuestion”、“resourceType:Container”、“resourceType:PasswordPolicy”、“resourceType:SecurityQuestionSettings”、“resourceType:EmailTemplate”、“resourceType:SMSTemplate”、“resourceType:Policy”、“resourceType:Rule”、“resourceType:Condition”、“resourceType:Settings”、“resourceType:TenantResourceType”、“resourceType:TenantSchema”。复制的数据大小取决于租户中被标记为“可复制”:真(true)的资源条目的数量。因此,它的范围可以从数百千字节到千兆字节或兆兆字节或更大。但是,“最少”数据的大小在实施例中始终是常数,并且可能是几百千字节。
实施例还使用高速并行导出机制,该机制将要从主区域复制到副本区域的数据划分为多个阶段,并且并行执行每个阶段。这进一步减少了导出潜在大量租户数据的时间。
实施例还使用两个并行作业将数据导入到副本区域上:“基础数据导入器”和“常规数据导入器”,这减少了导入时间。此外,在实施例中,以并行方式将导入的数据摄取到副本的数据库中。
实施例通过利用数据块(chunk)的导出和导入来产生内置的弹性。如果导出-导入由于错误而中止,那么它将从当前数据块而不是从开头重新开始。
此外,实施例允许实时(或进行中的)更改在主区域上进行,从而使主区域高度可用,并且在那些更改发生时将它们传送到副本区域。因此,实施例具有低时延和高可用性。实施例也进一步支持并行地在多个副本区域中启用租户。
实施例还允许在进行中的更改处理期间确定租户DB的排空是否完成。
图18是图示根据实施例的使用租户自举来复制租户部署的功能的框图和流程图。一般而言,导出/导入被划分到“中继器”中,其中一个阶段在完成时将控制移交给流水线中的下一阶段。
图18的“租户1”的IDCS部署的复制是从主区域1801到副本区域1802。最初,在1823处,由主区域1801中的服务管理器1810产生租户自举作业,以便在副本1802中为租户1创建副本租户。在实施例中,仅在需要的情况下进行复制,而不必在所有副本区域中进行复制。在1821处,创建基础数据自举导出作业1840,并且在1822处,创建常规数据自举导出作业。
主区域1801上的自举导出作业1821将发起租户的资源导出处理。基础数据自举作业1821导出(上面公开的)最小资源集,该最小资源集是将租户视为在副本中“可用”所需的。基础数据自举作业1821在1832处查询主IDCS(即,租户DB 1830)、检索相关资源,并在1833处以分块方式将这些资源存储在主IDCS上的云存储装置1831上的“基础数据导出文件”中。在实施例中,每个“数据块”可以包括特定resourceType(资源类型)的多达1000个资源。例如,如果有五个resourceType,除第五个具有500个资源外,其它中的每个都有2000个资源,那么将有九个数据块—前四个每个resourceType为两个数据块,并且最后一个resourceType为一个数据块。数据块包含仅来自一个resourceType的数据。
常规数据自举作业1822导出除基础部分外的所有数据。与基础数据类似,常规数据自举作业1822在1832处查询主IDCS(即,租户DB 1830)、检索相关资源,并在1833处以分块方式将这些资源存储在主区域1801上的云存储装置1831上的“常规数据导出文件”中。1831是图13的OPC 1300中可用的公共“存储服务”的一部分,该“存储服务”可用于主区域和副本区域。每个副本区域具有单独的租户DB和单独的全局DB。主区域和副本区域之间没有公共DB。
在生成基础数据导出文件和常规数据导出文件之后,在1834处,用文件名(即,主存储装置1831中的位置)通知所有副本以进行自举。这包括发布“自举文件可用事件”,“自举文件可用事件”将在需要为此租户生成副本的所有副本区域中产生自举导入作业。
对于基础数据自举作业,服务管理器1850尝试在副本上同步创建基础导入作业1841。如果同步调用失败,那么发布基础数据文件可用事件。同步调用可能会由于多种原因而失败,包括如果副本区域的作业服务中断和/或如果主区域和副本区域之间的网络连接断开和/或副本区域的作业服务不能接受请求。假定此时的基础数据文件已经通过图18中的1821导出。消息传送服务1835中的异步消息传送处理程序在副本中创建基础数据导入作业,并在失败时重试。
对于常规数据自举作业,服务管理器1850尝试在副本上同步创建基础导入作业1841。如果同步调用失败,那么发布基础数据文件可用事件。异步消息传送处理程序在副本中创建基础数据导入作业,并在失败时重试。
副本1802中的基础自举导入作业然后在1861处发起从主存储装置1831到副本存储装置1865的文件传输。
“基础数据导出文件”的数据块经由跨区域调用从主区域的云存储装置1831拷贝到副本区域的云存储装置1865。如果拷贝失败,那么从最后一个成功拷贝的数据块重试。
在成功将自举文件拷贝到副本存储装置1865之后,在1866处,发起从自举文件导入资源,并在1867处通过经由复制服务1870向租户DB 1871写入而将其导入到增量数据块中并从中导入到DB提供者,DB提供者是从DB读取/向DB写入的软件层。在1872处,复制服务使用资源最后修改时间来更新最后复制时间(类似于应用常规更改日志)。
类似地,在等待直到“基础数据导入器”已完成基础数据部分的导入之后,副本1802中的常规自举导入作业然后在1861处发起从主存储装置1831到副本存储装置1865的文件传输。经由跨区域调用,将“常规数据导出文件”的数据块从主区域的云存储装置1831拷贝到副本区域的云存储装置1865。如果拷贝失败,那么从最后一个成功拷贝的数据块重试。
在成功将自举文件拷贝到副本存储装置1865之后,在1866处,发起从自举文件导入资源,并在1867处通过经由复制服务1870写入到租户DB 1871而将其导入增量数据块中并从中导入到DB提供者。在1872处,复制服务使用资源最后修改时间来更新最后复制时间(类似于应用常规更改日志)。
在完成所有资源的导入之后,为副本1802产生“排空作业”1880。排空作业1880将“待处理的更改日志”写出到副本上的租户DB。副本1802中的排空作业1880将发起从DB1871读取待处理的更改日志,并经由复制服务应用更改日志。在1881处,从PendingChangeLogs(待处理的更改日志)表1876中读取所有待处理的更改日志。在1882处,经由DB提供者写入租户DB(将基于最后复制时间丢弃陈旧更改日志。逻辑类似于常规的更改日志错误/顺序处理)。在1884处,发布自举导入完成事件。
在1821、1822和1840中示出了高速并行导出机制,该机制包括:(1)“最少”数据和“剩余”数据的导出并行运行;以及(2)这些作业中的每个作业都采用分阶段的方法来导出—这些阶段是“提取”、“处理”和“插入”,它们作为单独的阶段运行以便提高吞吐量。“提取”阶段将从IDCS检索数据,“处理”阶段将解析所有引用,并且“上传”阶段将数据上传到云存储装置。由于在一个实施例中,所有这三个阶段都是使用“Java8可完备化特征(completable Futures)”并行运行的,因此与串行导出相比,存在吞吐量的显著提高(例如,5倍的提高)。
图19是图示根据实施例的用于在图18的自举复制期间处理更改日志以考虑进行中的更改的功能的框图和流程图。在图18的租户自举期间,有可能在主区域1801中发生正在进行的增量更改,这些增量更改需要在副本1802中被复制。直到图18的自举成功完成并且基础数据和常规数据两者被复制,才能应用这些增量更改。
在图18中,服务管理器1810启用针对给定租户1802的复制(Tenant.isReplicatable→true)。预计这会在发起自举导出作业之前发生。增量更改日志将由主区域1801中的管理服务捕获并发布。从主区域1801到副本1802的更改日志的传输将在自举期间继续发生,并作为待处理的更改日志1876存储在租户DB 1871中。
在租户1802的复制服务1870的应用处理程序中,在1902处,确定是否“Tenant.bootstrapStatus!=success”(即,图18的功能是否成功)。如果是,那么在1904处确定是否存在导入完成事件。
如果在1904处为是,那么在1906处,读取来自PendingChangeLogs表1876的所有待处理的更改日志。在1906处,待处理的更改日志经由DB提供者被写入租户DB 1871。陈旧更改日志将基于最后复制时间被丢弃。该逻辑类似于上面公开的常规更改日志错误/顺序处理。
在1910处,在副本1802和主区域1801两者中,Tenant.bootstrapStatus被更新为“成功”。
如果在1904处为否(意味着在1912处给定租户的常规更改日志,该更改日志被持久保存在PendingChangeLogs表1876中,该表1876存储→tenantName(租户名称)、sequenceNumber(序列号)、timestamp(时间戳)和data-blob(数据-二进制大对象))。“常规”更改日志是指存在对主区域上的资源的必须被传播到副本的更新时,从主区域到副本的更改日志流。这是“正常的”复制流程。
如果在1902处为否(意味着自举完成),那么在1914处,更改日志经由DB提供者写入租户DB 1871。“Bootstrap.success”是内部维护的用于跟踪自举处理的状态,而“bootstrap.complete”是被发布的一种特殊类型的事件。
如所公开的,按需或延迟将租户数据从主区域复制到副本区域需要租户数据自举。数据自举确保主区域中的相同数据拷贝在副本区域中可用。在数据自举之后,常规数据复制将使用如上公开的更改消息来同步新的更改日志。
本文具体地图示和/或描述了若干实施例。但是,将认识到的是,在不背离本发明的精神和预期范围的情况下,所公开的实施例的修改和变化被上述教导涵盖并在所附权利要求的范围内。

Claims (20)

1.一种操作多租户云系统的方法,所述方法包括:
在第一数据中心处,对第一客户端进行认证并存储与第一客户端对应的资源,第一数据中心与被配置为对第一客户端进行认证的第二数据中心进行通信;
将资源划分为基础数据和常规数据,其中基础数据是允许资源在第二数据中心处对第一客户端可用所需的最少数据;
将基础数据以分块的方式存储在云存储装置上的基础数据导出文件中;
将常规数据以分块的方式存储在云存储装置上的常规数据导出文件中;
将基础数据导出文件导出到第二数据中心;以及
当基础数据导出文件的导出完成时,将常规数据导出文件导出到第二数据中心。
2.如权利要求1所述的方法,其中基础数据和常规数据以分块的方式存储在云存储装置上。
3.如权利要求1所述的方法,其中在常规数据导出文件的导出完成之后,产生排空作业,所述排空作业包括将待处理的更改日志写出到第二数据中心上的租户数据库。
4.如权利要求1所述的方法,还包括在导出基础数据导出文件和导出常规数据导出文件期间捕获增量更改日志。
5.如权利要求1所述的方法,还包括将基础数据和常规数据中的每一个划分为多个阶段,并且导出被并行地执行。
6.如权利要求1所述的方法,其中第一数据中心是第一客户端的主区域,并且第二数据中心是第一客户端的副本区域。
7.如权利要求4所述的方法,还包括在已经导出基础数据导出文件和常规数据导出文件之后,应用增量更改日志。
8.一种存储指令的非暂态计算机可读介质,所述指令在由多个处理器中的至少一个处理器执行时,使所述处理器操作多租户云系统,所述操作包括:
在第一数据中心处,对第一客户端进行认证并存储与第一客户端对应的资源,第一数据中心与被配置为对第一客户端进行认证的第二数据中心进行通信;
将资源划分为基础数据和常规数据,其中基础数据是允许资源在第二数据中心处对第一客户端可用所需的最少数据;
将基础数据以分块的方式存储在云存储装置上的基础数据导出文件中;
将常规数据以分块的方式存储在云存储装置上的常规数据导出文件中;
将基础数据导出文件导出到第二数据中心;以及
当基础数据导出文件的导出完成时,将常规数据导出文件导出到第二数据中心。
9.如权利要求8所述的非暂态计算机可读介质,其中基础数据和常规数据以分块的方式存储在云存储装置上。
10.如权利要求8所述的非暂态计算机可读介质,其中在常规数据导出文件的导出完成之后,产生排空作业,所述排空作业包括将待处理的更改日志写出到第二数据中心上的租户数据库。
11.如权利要求8所述的非暂态计算机可读介质,还包括在导出基础数据导出文件和导出常规数据导出文件期间捕获增量更改日志。
12.如权利要求8所述的非暂态计算机可读介质,所述操作还包括将基础数据和常规数据中的每一个划分为多个阶段,并且导出被并行地执行。
13.如权利要求8所述的非暂态计算机可读介质,其中第一数据中心是第一客户端的主区域,并且第二数据中心是第一客户端的副本区域。
14.如权利要求11所述的非暂态计算机可读介质,所述操作还包括在已经导出基础数据导出文件和常规数据导出文件之后,应用增量更改日志。
15.一种多租户云系统数据中心,包括:
第一租户数据库;
一个或多个处理器,所述一个或多个处理器耦合到第一租户数据库并且适于执行指令以对第一客户端进行认证并将与第一客户端对应的资源存储在第一租户数据库中,所述云系统数据中心与被配置为对第一客户端进行认证的第二数据中心通信;
所述处理器还适于:将资源划分为基础数据和常规数据,其中基础数据是允许资源在第二数据中心处对第一客户端可用所需的最少数据;将基础数据以分块的方式存储在云存储装置上的基础数据导出文件中;将常规数据以分块的方式存储在云存储装置上的常规数据导出文件中;将基础数据导出文件导出到第二数据中心以存储在第二租户数据库中;以及当基础数据导出文件的导出完成时,将常规数据导出文件导出到第二数据中心以存储在第二租户数据库中。
16.如权利要求15所述的多租户云系统数据中心,其中基础数据和常规数据以分块的方式存储在云存储装置上。
17.如权利要求15所述的多租户云系统数据中心,其中在常规数据导出文件的导出完成之后,产生排空作业,所述排空作业包括将待处理的更改日志写出到第二数据中心上的租户数据库。
18.如权利要求15所述的多租户云系统数据中心,所述处理器还包括在导出基础数据导出文件和导出常规数据导出文件期间捕获增量更改日志。
19.如权利要求15所述的多租户云系统数据中心,所述处理器还包括将基础数据和常规数据中的每一个划分为多个阶段,并且导出被并行地执行。
20.如权利要求15所述的多租户云系统数据中心,其中所述云系统数据中心是第一客户端的主区域,并且第二数据中心是第一客户端的副本区域。
CN202080003005.3A 2019-02-19 2020-01-21 多租户身份云服务的租户复制自举 Active CN112166588B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962807454P 2019-02-19 2019-02-19
US62/807,454 2019-02-19
US16/555,107 2019-08-29
US16/555,107 US11321343B2 (en) 2019-02-19 2019-08-29 Tenant replication bootstrap for a multi-tenant identity cloud service
PCT/US2020/014320 WO2020171902A1 (en) 2019-02-19 2020-01-21 Tenant replication bootstrap for a multi-tenant identity cloud service

Publications (2)

Publication Number Publication Date
CN112166588A true CN112166588A (zh) 2021-01-01
CN112166588B CN112166588B (zh) 2023-05-26

Family

ID=72042131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080003005.3A Active CN112166588B (zh) 2019-02-19 2020-01-21 多租户身份云服务的租户复制自举

Country Status (5)

Country Link
US (1) US11321343B2 (zh)
EP (1) EP3928484B1 (zh)
JP (1) JP7458369B2 (zh)
CN (1) CN112166588B (zh)
WO (1) WO2020171902A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866415A (zh) * 2021-02-24 2021-05-28 上海泰宇信息技术股份有限公司 一种数据备份私有云存储与下载方法
CN117120984A (zh) * 2021-01-28 2023-11-24 硕动力公司 云计算平台上构建数据中心的多基层容错持续交付

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10694029B1 (en) 2013-11-07 2020-06-23 Rightquestion, Llc Validating automatic number identification data
US11936604B2 (en) 2016-09-26 2024-03-19 Agari Data, Inc. Multi-level security analysis and intermediate delivery of an electronic message
US10805270B2 (en) 2016-09-26 2020-10-13 Agari Data, Inc. Mitigating communication risk by verifying a sender of a message
US11044267B2 (en) 2016-11-30 2021-06-22 Agari Data, Inc. Using a measure of influence of sender in determining a security risk associated with an electronic message
US11722513B2 (en) 2016-11-30 2023-08-08 Agari Data, Inc. Using a measure of influence of sender in determining a security risk associated with an electronic message
US11019076B1 (en) 2017-04-26 2021-05-25 Agari Data, Inc. Message security assessment using sender identity profiles
US11757914B1 (en) * 2017-06-07 2023-09-12 Agari Data, Inc. Automated responsive message to determine a security risk of a message sender
US11102244B1 (en) * 2017-06-07 2021-08-24 Agari Data, Inc. Automated intelligence gathering
US10803453B1 (en) * 2019-11-19 2020-10-13 Capital One Services, Llc System, method and computer-accessible medium for resource centric authorization in multi partner ecosystem
WO2021232347A1 (en) * 2020-05-21 2021-11-25 Citrix Systems, Inc. Cross device single sign-on
US11526497B2 (en) * 2020-12-07 2022-12-13 Sap Se Tenant customization of master data in a multi-tenant computing system
US20220294788A1 (en) * 2021-03-09 2022-09-15 Oracle International Corporation Customizing authentication and handling pre and post authentication in identity cloud service
US11853100B2 (en) * 2021-04-12 2023-12-26 EMC IP Holding Company LLC Automated delivery of cloud native application updates using one or more user-connection gateways
US20220405756A1 (en) * 2021-06-11 2022-12-22 Lightspeed Commerce Usa, Inc. Method and system for pin login authentication
US20230083547A1 (en) * 2021-09-01 2023-03-16 OneLogin, Inc. Data conversion and synchronization
US11785082B2 (en) 2021-09-30 2023-10-10 Oracle International Corporation Domain replication across regions
US11876613B2 (en) 2021-10-29 2024-01-16 Oracle International Corporation Home region switch
US11736579B1 (en) * 2022-02-08 2023-08-22 Oracle International Corporation Techniques for resource discovery

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303912A1 (en) * 2011-05-23 2012-11-29 Microsoft Corporation Storage account migration between storage stamps
CN102833346A (zh) * 2012-09-06 2012-12-19 上海海事大学 基于存储元数据的云敏感数据安全保护系统及方法
US20160057229A1 (en) * 2011-03-08 2016-02-25 Rackspace Us Inc Appending to files via server-side chunking and manifest manipulation
US20180075231A1 (en) * 2016-09-14 2018-03-15 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
CN108234612A (zh) * 2017-12-23 2018-06-29 北京卫星信息工程研究所 多终端模式的高分资源动态分配与按需服务发布系统
CN108712493A (zh) * 2018-05-18 2018-10-26 苏州大学 跨地域云数据中心间社交用户数据分布式存储方法及系统

Family Cites Families (337)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550971A (en) 1993-06-30 1996-08-27 U S West Technologies, Inc. Method and system for generating a user interface adaptable to various database management systems
US6353834B1 (en) 1996-11-14 2002-03-05 Mitsubishi Electric Research Laboratories, Inc. Log based data architecture for a transactional message queuing system
JP2001510667A (ja) 1997-11-10 2001-07-31 ノーテル・ネットワークス・リミテッド 分散型サービス・ネットワーク
US6097382A (en) 1998-05-12 2000-08-01 Silverstream Software, Inc. Method and apparatus for building an application interface
US6266058B1 (en) 1998-09-08 2001-07-24 Hewlett Packard Company Apparatus and method for linking browser bars with active documents for a browser
US6606663B1 (en) 1998-09-29 2003-08-12 Openwave Systems Inc. Method and apparatus for caching credentials in proxy servers for wireless user agents
US7116310B1 (en) 1999-04-06 2006-10-03 Microsoft Corporation Application programming interface that maps input device controls to software actions
US6631497B1 (en) 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US8032634B1 (en) 1999-08-23 2011-10-04 Oracle America, Inc. Approach for allocating resources to an apparatus based on resource requirements
US6578068B1 (en) 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US7424543B2 (en) 1999-09-08 2008-09-09 Rice Iii James L System and method of permissive data flow and application transfer
US7111307B1 (en) 1999-11-23 2006-09-19 Microsoft Corporation Method and system for monitoring and verifying software drivers using system resources including memory allocation and access
GB2364139B (en) 1999-12-22 2004-05-26 Ibm A security mechanism providing access control for locally-held data
US6631519B1 (en) 2000-03-30 2003-10-07 Microsoft Corporation Automated schema and interface generation
US6990653B1 (en) 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US6880086B2 (en) 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
US7028301B2 (en) 2000-12-08 2006-04-11 Bmc Software, Inc. System and method for automatic workload characterization
US7917888B2 (en) 2001-01-22 2011-03-29 Symbol Technologies, Inc. System and method for building multi-modal and multi-channel applications
US7203678B1 (en) 2001-03-27 2007-04-10 Bea Systems, Inc. Reconfigurable query generation system for web browsers
US7546576B2 (en) 2001-06-15 2009-06-09 Lightsurf Technology, Inc. Software framework for web-based applications
US7546602B2 (en) 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US20030028583A1 (en) 2001-07-31 2003-02-06 International Business Machines Corporation Method and apparatus for providing dynamic workload transition during workload simulation on e-business application server
US7428725B2 (en) 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US6978305B1 (en) 2001-12-19 2005-12-20 Oracle International Corp. Method and apparatus to facilitate access and propagation of messages in communication queues using a public network
US7062502B1 (en) 2001-12-28 2006-06-13 Kesler John N Automated generation of dynamic data entry user interface for relational database management systems
US20030149717A1 (en) 2002-02-05 2003-08-07 William Heinzman Batch processing job streams using and/or precedence logic
US7222148B2 (en) 2002-05-02 2007-05-22 Bea Systems, Inc. System and method for providing highly available processing of asynchronous service requests
US7395355B2 (en) 2002-07-11 2008-07-01 Akamai Technologies, Inc. Method for caching and delivery of compressed content in a content delivery network
US20040046789A1 (en) 2002-08-23 2004-03-11 Angelo Inanoria Extensible user interface (XUI) framework and development environment
US7487248B2 (en) 2002-10-08 2009-02-03 Brian Moran Method and system for transferring a computer session between devices
US20040128546A1 (en) 2002-12-31 2004-07-01 International Business Machines Corporation Method and system for attribute exchange in a heterogeneous federated environment
US7610575B2 (en) 2003-01-08 2009-10-27 Consona Crm Inc. System and method for the composition, generation, integration and execution of business processes over a network
US7703128B2 (en) 2003-02-13 2010-04-20 Microsoft Corporation Digital identity management
US7577934B2 (en) 2003-03-12 2009-08-18 Microsoft Corporation Framework for modeling and providing runtime behavior for business software applications
US7337434B2 (en) 2003-04-29 2008-02-26 Sony Ericsson Mobile Communications Ab Off-device class/resource loading methods, systems and computer program products for debugging a Java application in a Java micro device
US20040250257A1 (en) 2003-06-04 2004-12-09 Oleg Koutyrine System and method for generator state object validation
JP2006527543A (ja) 2003-06-06 2006-11-30 インテラムダ・システムズ・インコーポレーテッド 光ネットワーク・トポロジ・データベースおよび光ネットワーク・オペレーション
US20070112574A1 (en) 2003-08-05 2007-05-17 Greene William S System and method for use of mobile policy agents and local services, within a geographically distributed service grid, to provide greater security via local intelligence and life-cycle management for RFlD tagged items
US7587667B2 (en) 2003-09-04 2009-09-08 Oracle International Corporation Techniques for streaming validation-based XML processing directions
US7430732B2 (en) 2003-10-23 2008-09-30 Microsoft Corporation Design of application programming interfaces (APIs)
CN100437551C (zh) 2003-10-28 2008-11-26 联想(新加坡)私人有限公司 使多个用户设备自动登录的方法和设备
US7529825B1 (en) 2003-12-02 2009-05-05 Cisco Technology, Inc. Server-side XML-based development environment for network device management applications
US7647256B2 (en) 2004-01-29 2010-01-12 Novell, Inc. Techniques for establishing and managing a distributed credential store
US20050172261A1 (en) 2004-01-30 2005-08-04 Yuknewicz Paul J. Architecture for creating a user interface using a data schema
US7676785B2 (en) 2004-02-13 2010-03-09 Microsoft Corporation Hosted application as a designer in an integrated development environment
US7650594B2 (en) 2004-05-27 2010-01-19 National Instruments Corporation Graphical program analyzer with framework for adding user-defined tests
US9262490B2 (en) 2004-08-12 2016-02-16 Oracle International Corporation Adaptively routing transactions to servers
US7757207B2 (en) 2004-08-20 2010-07-13 Microsoft Corporation Form skin and design time WYSIWYG for .net compact framework
US7562358B2 (en) 2004-10-04 2009-07-14 United Parcel Service Of America, Inc. Controlled deployment of software in a web-based architecture
US7926027B2 (en) 2004-10-19 2011-04-12 Microsoft Corporation Binding to business objects and web services
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7886294B2 (en) 2004-12-28 2011-02-08 Sap Ag Virtual machine monitoring
US20060185004A1 (en) 2005-02-11 2006-08-17 Samsung Electronics Co., Ltd. Method and system for single sign-on in a network
US8972929B2 (en) 2005-03-31 2015-03-03 International Business Machines Corporation Generic user input for GUI framework
US7685430B1 (en) 2005-06-17 2010-03-23 Sun Microsystems, Inc. Initial password security accentuated by triple encryption and hashed cache table management on the hosted site's server
US7464297B2 (en) 2005-06-23 2008-12-09 Microsoft Corporation System and method for testing software using data-driven test variations
GB0514377D0 (en) 2005-07-13 2005-08-17 Kemshall Andrew Password automation
US7849447B1 (en) 2005-11-21 2010-12-07 Verizon Laboratories Inc. Application testing and evaluation
US7653668B1 (en) 2005-11-23 2010-01-26 Symantec Operating Corporation Fault tolerant multi-stage data replication with relaxed coherency guarantees
US7735068B2 (en) 2005-12-01 2010-06-08 Infosys Technologies Ltd. Automated relationship traceability between software design artifacts
US7779383B2 (en) 2005-12-01 2010-08-17 Sap Ag Composition model and composition validation algorithm for ubiquitous computing applications
US7707553B2 (en) 2005-12-08 2010-04-27 International Business Machines Corporation Computer method and system for automatically creating tests for checking software
US7730427B2 (en) 2005-12-29 2010-06-01 Sap Ag Desktop management scheme
US20070174290A1 (en) 2006-01-19 2007-07-26 International Business Machines Corporation System and architecture for enterprise-scale, parallel data mining
US8578282B2 (en) 2006-03-15 2013-11-05 Navisense Visual toolkit for a virtual user interface
US20070219956A1 (en) 2006-03-16 2007-09-20 Milton Michael L Excel spreadsheet parsing to share cells, formulas, tables, etc.
US7757177B1 (en) 2006-03-21 2010-07-13 Oracle America, Inc. Virtual forms
US7802245B2 (en) 2006-04-27 2010-09-21 Agere Systems Inc. Methods and apparatus for performing in-service upgrade of software in network processor
US7577909B2 (en) 2006-05-16 2009-08-18 Microsoft Corporation Flexible management user interface from management models
US8364968B2 (en) 2006-05-19 2013-01-29 Symantec Corporation Dynamic web services systems and method for use of personal trusted devices and identity tokens
JP2008027043A (ja) 2006-07-19 2008-02-07 Gaiax Co Ltd ウェブサイト管理システム、ウェブサイト管理方法、ウェブサイト管理プログラムおよび該プログラムを記録した記録媒体
US7861289B2 (en) 2006-09-22 2010-12-28 Oracle International Corporation Pagelets in adaptive tags in non-portal reverse proxy
US9183321B2 (en) 2006-10-16 2015-11-10 Oracle International Corporation Managing compound XML documents in a repository
US8930555B2 (en) 2007-03-08 2015-01-06 Microsoft Corporation Extending functionality of web-based applications
US8099766B1 (en) 2007-03-26 2012-01-17 Netapp, Inc. Credential caching for clustered storage systems
US7934191B2 (en) 2007-04-10 2011-04-26 Sap Portals IL Method and modules for generating client-server applications
US8739131B2 (en) 2007-05-04 2014-05-27 International Business Machines Corporation Completing functional testing
US20080282222A1 (en) 2007-05-08 2008-11-13 Tim Neil Xml push and remote execution of a wireless applications
US8037135B2 (en) 2007-06-29 2011-10-11 Microsoft Corporation Automatic distributed downloading
US8417728B1 (en) 2007-08-03 2013-04-09 Adobe Systems Incorporated User interfaces, methods, and systems for developing computer applications using artwork
US20090064001A1 (en) 2007-08-30 2009-03-05 Nicole Summers Robbins Personalizing Default Settings on a GUI
US9268849B2 (en) 2007-09-07 2016-02-23 Alexander Siedlecki Apparatus and methods for web marketing tools for digital archives—web portal advertising arts
CN101399813B (zh) 2007-09-24 2011-08-17 中国移动通信集团公司 身份联合方法
US7756038B2 (en) 2007-09-27 2010-07-13 Cisco Technology, Inc. Service advertisement framework (SAF) in a communications network
KR100953092B1 (ko) 2007-11-06 2010-04-19 한국전자통신연구원 Sso서비스 방법 및 시스템
US9886524B1 (en) 2007-11-28 2018-02-06 Sterling Infosystems, Inc. System and method for providing a report of generally available information
US20090144338A1 (en) 2007-11-30 2009-06-04 Yahoo! Inc. Asynchronously replicated database system using dynamic mastership
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US11366676B2 (en) 2008-01-14 2022-06-21 Oracle International Corporation Embedded user assistance for software applications
US20090216591A1 (en) 2008-02-22 2009-08-27 Cunexus Method for computer evaluation of customer information and automatically providing customized financial product offers thereto
JP5192055B2 (ja) 2008-03-04 2013-05-08 コードエスイー カンパニー リミテッド 3次元応用プログラムフレームワーク構造及びこれを基盤とするアプリケーション具現方法、並びに3次元応用ソフトウェアフレームワーク基盤の自動テストシステム及びその方法
US20110123973A1 (en) 2008-06-06 2011-05-26 Sapient Corporation Systems and methods for visual test authoring and automation
US8452567B1 (en) 2008-06-06 2013-05-28 Keithley Instruments, Inc. Test recipe distribution method and system
US8166387B2 (en) 2008-06-20 2012-04-24 Microsoft Corporation DataGrid user interface control with row details
US8769553B2 (en) 2008-07-18 2014-07-01 Sybase, Inc. Deploy anywhere framework for heterogeneous mobile application development
JP5571667B2 (ja) 2008-08-18 2014-08-13 エフ5 ネットワークス、インコーポレイテッド 可用性を維持しながらネットワークトラフィック管理装置をアップグレードする方法
US8417723B1 (en) 2008-09-12 2013-04-09 Salesforce.Com, Inc. System, method and computer program product for enabling access to a resource of a multi-tenant on-demand database service utilizing a token
US8959000B2 (en) 2008-09-16 2015-02-17 Verizon Patent And Licensing Inc. Integrated testing systems and methods
EP2342862A2 (en) 2008-10-03 2011-07-13 Limelight Networks, Inc. Content delivery network encryption
US8353026B2 (en) 2008-10-23 2013-01-08 Dell Products L.P. Credential security system
US8418150B2 (en) 2009-04-03 2013-04-09 Oracle International Corporation Estimating impact of configuration changes
US20100269164A1 (en) 2009-04-15 2010-10-21 Microsoft Corporation Online service data management
WO2010127365A1 (en) 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US20100281475A1 (en) 2009-05-04 2010-11-04 Mobile On Services, Inc. System and method for mobile smartphone application development and delivery
US20100286992A1 (en) 2009-05-08 2010-11-11 Microsoft Corporation Integration of Third-Party Business Applications with Hosted Multi-Tenant Business Software System
US8397215B2 (en) 2009-05-18 2013-03-12 National Instruments Corporation Executing a physical model with multiple physical domains in a web browser
US8863111B2 (en) 2009-06-26 2014-10-14 Oracle International Corporation System and method for providing a production upgrade of components within a multiprotocol gateway
US20110010394A1 (en) 2009-07-08 2011-01-13 International Business Machines Corporation Client-specific data customization for shared databases
US9003387B2 (en) 2009-09-25 2015-04-07 Fisher-Rosemount Systems, Inc. Automated deployment of computer-specific software updates
US8312367B2 (en) 2009-10-30 2012-11-13 Synopsys, Inc. Technique for dynamically sizing columns in a table
US9129052B2 (en) 2009-12-03 2015-09-08 International Business Machines Corporation Metering resource usage in a cloud computing environment
US9805322B2 (en) 2010-06-24 2017-10-31 Bmc Software, Inc. Application blueprint and deployment model for dynamic business service management (BSM)
US8473951B2 (en) 2009-12-30 2013-06-25 Bmc Software, Inc. Method and system for traversing in reverse chronological order along a critical path of a plurality of jobs, and reducing time gaps between jobs until an estimated end time of the last job is less than or equal to a target end time
CN102473097B (zh) 2010-01-13 2015-06-17 塔塔咨询服务有限公司 利用模型驱动技术开发可配置可扩展的业务应用产品线的高效计算系统
US8627309B2 (en) 2010-02-25 2014-01-07 Microsoft Corporation Automated deployment and servicing of distributed applications
CN102170457A (zh) 2010-02-26 2011-08-31 国际商业机器公司 向应用的多租户提供服务的方法和装置
US8655859B2 (en) 2010-03-01 2014-02-18 International Business Machines Corporation Concurrency control for extraction, transform, load processes
US8464063B2 (en) 2010-03-10 2013-06-11 Avaya Inc. Trusted group of a plurality of devices with single sign on, secure authentication
US8873401B2 (en) 2010-03-16 2014-10-28 Futurewei Technologies, Inc. Service prioritization in link state controlled layer two networks
US8631390B2 (en) 2010-04-02 2014-01-14 Apple Inc. Archiving a build product
US9448790B2 (en) 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US8977693B2 (en) 2010-04-27 2015-03-10 Mindware, Inc. Browser based application development framework
US8209491B2 (en) 2010-04-27 2012-06-26 Symantec Corporation Techniques for directory server integration
US9275160B2 (en) 2010-05-20 2016-03-01 Salesforce.Com, Inc. Performing an upgrade in a multi-tenant database system environment
US20110302516A1 (en) 2010-06-02 2011-12-08 Oracle International Corporation Mobile design patterns
WO2011159842A2 (en) 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
CA2743949A1 (en) 2010-06-22 2011-12-22 Iwatchlife System and method of local resource delivery
US9160710B2 (en) 2010-06-25 2015-10-13 Salesforce.Com, Inc. Methods and systems for context-based application firewalls
US20130173712A1 (en) 2010-06-30 2013-07-04 Universidad Politenica De Madrid Method for selectively distributing information in a computer or communication network, and physical entities therefor
US11386510B2 (en) 2010-08-05 2022-07-12 Thomson Reuters Enterprise Centre Gmbh Method and system for integrating web-based systems with local document processing applications
WO2012021734A1 (en) 2010-08-11 2012-02-16 Orsini Rick L Systems and methods for secure multi-tenant data storage
US20140310243A1 (en) 2010-08-16 2014-10-16 Mr. Steven James McGee Heart beacon cycle
US20120089733A1 (en) 2010-10-12 2012-04-12 Ansca, Inc. Managing Access to an Application
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
US20120151479A1 (en) 2010-12-10 2012-06-14 Salesforce.Com, Inc. Horizontal splitting of tasks within a homogenous pool of virtual machines
US9699168B2 (en) 2010-12-13 2017-07-04 International Business Machines Corporation Method and system for authenticating a rich client to a web or cloud application
CN102567436B (zh) 2010-12-22 2017-04-12 塔塔咨询服务有限公司 多租户系统
US8559642B2 (en) 2010-12-29 2013-10-15 Secureall Corporation Cryptographic communication with mobile devices
US9413750B2 (en) 2011-02-11 2016-08-09 Oracle International Corporation Facilitating single sign-on (SSO) across multiple browser instance
US20120215582A1 (en) 2011-02-23 2012-08-23 International Business Machines Corporation Executing workflows based on service level agreements
US9118657B1 (en) 2011-03-15 2015-08-25 Avior, Inc. Extending secure single sign on to legacy applications
US9047414B1 (en) 2011-03-15 2015-06-02 Symantec Corporation Method and apparatus for generating automated test case scripts from natural language test cases
US9268545B2 (en) 2011-03-31 2016-02-23 Intel Corporation Connecting mobile devices, internet-connected hosts, and cloud services
US9223632B2 (en) 2011-05-20 2015-12-29 Microsoft Technology Licensing, Llc Cross-cloud management and troubleshooting
US9037723B2 (en) 2011-05-31 2015-05-19 Red Hat, Inc. Triggering workload movement based on policy stack having multiple selectable inputs
US20120317172A1 (en) 2011-06-13 2012-12-13 International Business Machines Corporation Mobile web app infrastructure
US20120323553A1 (en) 2011-06-16 2012-12-20 Microsoft Corporation Mobile Emulator Integration
US8572091B1 (en) 2011-06-27 2013-10-29 Amazon Technologies, Inc. System and method for partitioning and indexing table data using a composite primary key
US8732665B2 (en) 2011-06-28 2014-05-20 Microsoft Corporation Deploying environments for testing by providing instantaneous availability of prebuilt environments
US8769622B2 (en) 2011-06-30 2014-07-01 International Business Machines Corporation Authentication and authorization methods for cloud computing security
US20130019015A1 (en) 2011-07-12 2013-01-17 International Business Machines Corporation Application Resource Manager over a Cloud
TWI476586B (zh) 2011-07-13 2015-03-11 Inst Information Industry 以雲端技術為基礎之測試系統、方法以及其電腦可讀取記錄媒體
US8745641B1 (en) 2011-07-14 2014-06-03 Google Inc. Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface
JP5744656B2 (ja) 2011-07-15 2015-07-08 キヤノン株式会社 シングルサインオンを提供するシステムおよびその制御方法、サービス提供装置、中継装置、並びにプログラム
US8898472B2 (en) 2011-07-18 2014-11-25 Echoworx Corporation Mechanism and method for managing credentials on IOS based operating system
US9239800B2 (en) 2011-07-27 2016-01-19 Seven Networks, Llc Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
US8615528B2 (en) 2011-07-28 2013-12-24 International Business Machines Corporation Cloud database sharing
US9105046B1 (en) 2011-08-05 2015-08-11 Google Inc. Constraining ad service based on app content
US8612599B2 (en) 2011-09-07 2013-12-17 Accenture Global Services Limited Cloud service monitoring system
US9525900B2 (en) 2011-09-15 2016-12-20 Google Inc. Video management system
US9270459B2 (en) 2011-09-20 2016-02-23 Cloudbyte, Inc. Techniques for achieving tenant data confidentiality from cloud service provider administrators
US9043886B2 (en) 2011-09-29 2015-05-26 Oracle International Corporation Relying party platform/framework for access management infrastructures
US9531697B2 (en) 2011-09-29 2016-12-27 Oracle International Corporation Configurable adaptive access manager callouts
US9047166B2 (en) 2011-11-04 2015-06-02 MEDIASEEK, inc. System for generating application software installed on a mobile terminal
WO2013071087A1 (en) 2011-11-09 2013-05-16 Unisys Corporation Single sign on for cloud
US9805054B2 (en) 2011-11-14 2017-10-31 Panzura, Inc. Managing a global namespace for a distributed filesystem
CA2889387C (en) 2011-11-22 2020-03-24 Solano Labs, Inc. System of distributed software quality improvement
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US8799641B1 (en) 2011-12-16 2014-08-05 Amazon Technologies, Inc. Secure proxying using network intermediaries
US8824274B1 (en) 2011-12-29 2014-09-02 Juniper Networks, Inc. Scheduled network layer programming within a multi-topology computer network
US9286040B2 (en) 2012-01-18 2016-03-15 Mobilesmith, Inc. Software builder
US9164997B2 (en) 2012-01-19 2015-10-20 Microsoft Technology Licensing, Llc Recognizing cloud content
US20140053126A1 (en) 2012-02-13 2014-02-20 Mark A. Watson Integrated mobile application development platform
JP5773910B2 (ja) 2012-02-29 2015-09-02 三菱電機株式会社 アクセス制御装置及びアクセス制御方法及びプログラム
US10067940B2 (en) 2012-03-02 2018-09-04 International Business Machines Corporation Enhanced storage quota management for cloud computing systems
US20130254262A1 (en) 2012-03-26 2013-09-26 Quickmobile Inc. System and method for a user to dynamically update a mobile application from a generic or first application within a class of applications to create a specific or second application with said class of applications
US8997038B2 (en) 2012-03-30 2015-03-31 Anypresence, Inc. Systems and methods for building and deploying mobile applications
WO2013172958A1 (en) 2012-05-16 2013-11-21 Spydrsafe Mobile Security, Inc. Systems and methods for providing and managing distributed enclaves
WO2013186070A1 (en) 2012-06-12 2013-12-19 Telefonica, S.A. A method and a system for providing access to protected resources via an oauth protocol
US8805971B1 (en) 2012-06-15 2014-08-12 Amazon Technologies, Inc. Client-specified schema extensions in cloud computing environments
US8782632B1 (en) 2012-06-18 2014-07-15 Tellabs Operations, Inc. Methods and apparatus for performing in-service software upgrade for a network device using system virtualization
US8954732B1 (en) 2012-06-27 2015-02-10 Juniper Networks, Inc. Authenticating third-party programs for platforms
US20140007205A1 (en) 2012-06-28 2014-01-02 Bytemobile, Inc. No-Click Log-In Access to User's Web Account Using a Mobile Device
US9009463B2 (en) 2012-07-09 2015-04-14 Verizon Patent And Licensing Inc. Secure delivery of trust credentials
US8978114B1 (en) 2012-07-15 2015-03-10 Identropy, Inc. Recommendation engine for unified identity management across internal and shared computing applications
US8813028B2 (en) 2012-07-19 2014-08-19 Arshad Farooqi Mobile application creation system
US8983987B2 (en) 2012-07-25 2015-03-17 Cisco Technology, Inc. System and method for a service metering framework in a network environment
US20140053056A1 (en) 2012-08-16 2014-02-20 Qualcomm Incorporated Pre-processing of scripts in web browsers
US9350536B2 (en) 2012-08-16 2016-05-24 Digicert, Inc. Cloud key management system
US8949776B2 (en) 2012-08-23 2015-02-03 Sap Se Gateway consumption framework
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9069979B2 (en) 2012-09-07 2015-06-30 Oracle International Corporation LDAP-based multi-tenant in-cloud identity management system
EP2893683A1 (en) 2012-09-07 2015-07-15 Oracle International Corporation Ldap-based multi-customer in-cloud identity management system
WO2014039895A1 (en) 2012-09-07 2014-03-13 Oracle International Corporation System and method for supporting message pre-processing in a distributed data grid cluster
US8769651B2 (en) 2012-09-19 2014-07-01 Secureauth Corporation Mobile multifactor single-sign-on authentication
US9369456B2 (en) 2012-09-21 2016-06-14 Intuit Inc. Single sign-on in multi-tenant environments
US8938622B2 (en) 2012-09-21 2015-01-20 Sap Ag Encryption in the cloud with customer controlled keys
US8566414B2 (en) 2012-10-12 2013-10-22 Freedomone Mobile, Inc. Systems and methods for subscription management in a multi-channel context aware communication environment
WO2014062804A1 (en) 2012-10-16 2014-04-24 Citrix Systems, Inc. Application wrapping for application management framework
US9015212B2 (en) 2012-10-16 2015-04-21 Rackspace Us, Inc. System and method for exposing cloud stored data to a content delivery network
CN103780635B (zh) 2012-10-17 2017-08-18 百度在线网络技术(北京)有限公司 云环境中的分布式异步任务队列执行系统和方法
US10395215B2 (en) 2012-10-19 2019-08-27 International Business Machines Corporation Interpretation of statistical results
US9332083B2 (en) 2012-11-21 2016-05-03 International Business Machines Corporation High performance, distributed, shared, data grid for distributed Java virtual machine runtime artifacts
US9612070B2 (en) 2013-11-22 2017-04-04 Larry P. Hatch Cartridge loading device
US9547858B2 (en) 2012-11-28 2017-01-17 Bank Of America Corporation Real-time multi master transaction
WO2014088541A1 (en) 2012-12-03 2014-06-12 Hewlett-Packard Development Company, L.P. Asynchronous framework for management of iaas
TWI490716B (zh) 2012-12-07 2015-07-01 Ind Tech Res Inst 多租戶應用程序的開發方法、資料存取方法與系統
US20140173454A1 (en) 2012-12-18 2014-06-19 Logic Studio, S.A. Method and system for designing, deploying and executing transactional multi-platform mobile applications
US8955081B2 (en) 2012-12-27 2015-02-10 Motorola Solutions, Inc. Method and apparatus for single sign-on collaboraton among mobile devices
US8893230B2 (en) 2013-02-22 2014-11-18 Duo Security, Inc. System and method for proxying federated authentication protocols
US9292502B2 (en) 2013-02-28 2016-03-22 Web Computing AS Modular platform for web applications and systems
US9280338B1 (en) 2013-03-11 2016-03-08 Amazon Technologies, Inc. Dynamic application updates
US9158518B2 (en) 2013-03-11 2015-10-13 Blackberry Limited Collaborative application development environment using a connected device
US9467395B2 (en) 2013-03-13 2016-10-11 Vmware, Inc. Cloud computing nodes for aggregating cloud computing resources from multiple sources
US9047404B1 (en) 2013-03-13 2015-06-02 Amazon Technologies, Inc. Bridge to connect an extended development capability device to a target device
US9027087B2 (en) 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
US9489372B2 (en) 2013-03-15 2016-11-08 Apple Inc. Web-based spell checker
US9158534B2 (en) 2013-03-15 2015-10-13 Wolters Kluwer United States Inc. Smart endpoint architecture
US20140282398A1 (en) 2013-03-15 2014-09-18 Wolters Kluwer U.S. Corporation Platform for developing and distributing mobile applications
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
KR20140122072A (ko) 2013-04-09 2014-10-17 삼성전자주식회사 전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법
US9268798B2 (en) 2013-04-26 2016-02-23 Oracle International Corporation Support for cloud-based multi-tenant environments using connection labeling
US9411973B2 (en) 2013-05-02 2016-08-09 International Business Machines Corporation Secure isolation of tenant resources in a multi-tenant storage system using a security gateway
US9264436B2 (en) 2013-05-08 2016-02-16 International Business Machines Corporation Policy-based automated consent
US9792349B2 (en) 2013-06-12 2017-10-17 Oracle International Corporation In-database sharded queue
US9495296B2 (en) 2013-06-12 2016-11-15 Oracle International Corporation Handling memory pressure in an in-database sharded queue
US9116766B2 (en) 2013-07-31 2015-08-25 Sap Se Extensible applications using a mobile application framework
CN103442049B (zh) 2013-08-22 2016-08-31 浪潮电子信息产业股份有限公司 一种面向构件的混合型云操作系统体系结构及其通信方法
KR101471589B1 (ko) 2013-08-22 2014-12-10 (주)잉카엔트웍스 공통중간언어 기반 프로그램을 위한 보안 제공 방법
US9537964B2 (en) 2015-03-11 2017-01-03 Tealium Inc. System and method for separating content site visitor profiles
US9544293B2 (en) 2013-09-20 2017-01-10 Oracle International Corporation Global unified session identifier across multiple data centers
US9772987B2 (en) 2013-09-20 2017-09-26 Oracle International Corporation Model-driven desktop integration framework
US9223684B2 (en) 2013-09-25 2015-12-29 Microsoft Technology Licensing, Llc Online application testing across browser environments
US10104082B2 (en) 2013-11-06 2018-10-16 William P. Jones Aggregated information access and control using a personal unifying taxonomy
US9152812B2 (en) 2013-12-03 2015-10-06 Paypal, Inc. Sensitive data protection during user interface automation testing systems and methods
US9246840B2 (en) 2013-12-13 2016-01-26 International Business Machines Corporation Dynamically move heterogeneous cloud resources based on workload analysis
US10063654B2 (en) 2013-12-13 2018-08-28 Oracle International Corporation Systems and methods for contextual and cross application threat detection and prediction in cloud applications
US9569634B1 (en) 2013-12-16 2017-02-14 Amazon Technologies, Inc. Fine-grained structured data store access using federated identity management
US20150188900A1 (en) 2013-12-31 2015-07-02 Digital River, Inc. Session managment in a multi-tenant, multi-data center environment system and method
US9614745B2 (en) 2014-01-09 2017-04-04 Citrix Systems, Inc. Systems and methods for cloud-based probing and diagnostics
US9602545B2 (en) 2014-01-13 2017-03-21 Oracle International Corporation Access policy management using identified roles
SG11201605659SA (en) 2014-02-07 2016-08-30 Oracle Int Corp Mobile cloud service architecture
US9270546B2 (en) 2014-03-05 2016-02-23 Software Ag Systems and/or methods for on-demand repository bootstrapping at runtime in a scalable, distributed multi-tenant environment
JP6256116B2 (ja) 2014-03-10 2018-01-10 富士通株式会社 通信端末、セキュアログイン方法、及びプログラム
US9729539B1 (en) 2014-03-28 2017-08-08 Pulse Secure, Llc Network access session detection to provide single-sign on (SSO) functionality for a network access control device
CA2981789A1 (en) 2014-04-04 2015-10-08 David Goldschlag Method for authentication and assuring compliance of devices accessing external services
JP2015204087A (ja) 2014-04-16 2015-11-16 キヤノン株式会社 管理システム及び管理方法
US10924554B2 (en) 2014-05-05 2021-02-16 Citrix Systems, Inc. Application customization
CA2948649A1 (en) 2014-05-15 2015-11-19 Jones International, Ltd. Integrated learning system
US9306939B2 (en) 2014-05-30 2016-04-05 Oracle International Corporation Authorization token cache system and method
US10057354B2 (en) 2014-05-30 2018-08-21 Genesys Telecommunications Laboratories, Inc. System and method for single logout of applications
US9600553B1 (en) 2014-05-31 2017-03-21 Veritas Technologies Llc Distributed replication in cluster environments
JP2016009299A (ja) 2014-06-24 2016-01-18 キヤノン株式会社 シングルサインオンシステム、端末装置、制御方法およびコンピュータプログラム
US9948700B2 (en) 2014-07-01 2018-04-17 Oracle International Corporation ADFDI support for custom attribute properties
US10127206B2 (en) 2014-07-16 2018-11-13 Oracle International Corporation Dynamic column groups in excel
WO2016025321A1 (en) 2014-08-13 2016-02-18 OneCloud Labs, Inc. Replication of virtualized infrastructure within distributed computing environments
US10909552B2 (en) 2014-08-15 2021-02-02 International Business Machines Corporation Mobile application analytics framework
JP6561441B2 (ja) 2014-09-05 2019-08-21 株式会社リコー 情報処理装置、アクセス制御方法、通信システム、及びプログラム
WO2016043994A1 (en) 2014-09-15 2016-03-24 Okta, Inc. Detection and repair of broken single sign-on integration
US9860316B2 (en) 2014-09-19 2018-01-02 Facebook, Inc. Routing network traffic based on social information
US9514031B2 (en) 2014-09-22 2016-12-06 International Business Machines Corporation Auto-deployment and testing of system application test cases in remote server environments
US10664495B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation System and method for supporting data grid snapshot and federation
US11036933B2 (en) 2014-09-25 2021-06-15 Oracle International Corporation User interface component autowiring
WO2016049626A1 (en) 2014-09-26 2016-03-31 Oracle International Corporation Efficient and intuitive databinding for mobile applications
US10290133B2 (en) 2014-09-26 2019-05-14 Oracle International Corporation High fidelity interactive screenshots for mobile applications
US10073679B2 (en) 2014-09-26 2018-09-11 Oracle International Corporation Efficient and intuitive databinding for mobile applications
US9858174B2 (en) 2014-09-26 2018-01-02 Oracle International Corporation Updatable native mobile application for testing new features
US9826045B2 (en) 2014-09-26 2017-11-21 Oracle International Corporation Efficient means to test server generated applications on mobile device
US9851968B2 (en) 2014-09-26 2017-12-26 Oracle International Corporation High performant iOS template based application build system
US10757170B2 (en) 2014-10-13 2020-08-25 Vmware, Inc. Cross-cloud namespace management for multi-tenant environments
EP3210350B1 (en) 2014-10-21 2020-05-20 Twilio, Inc. Method for providing a miro-services communication platform
US10783565B2 (en) 2014-10-30 2020-09-22 Ebay Inc. Method, manufacture, and system of transferring authenticated sessions and states between electronic devices
US10230571B2 (en) 2014-10-30 2019-03-12 Equinix, Inc. Microservice-based application development framework
US9282582B1 (en) 2014-10-31 2016-03-08 Aruba Networks, Inc. Sleep control for network of bluetooth low energy devices
JP6476760B2 (ja) 2014-10-31 2019-03-06 株式会社リコー 情報処理システム、情報処理装置、ログイン方法、及びプログラム
US9917746B2 (en) 2014-11-04 2018-03-13 Futurewei Technologies, Inc. Adaptive allocation of server resources
US9419958B2 (en) 2014-11-25 2016-08-16 Oracle International Corporation Multi-tenancy support in a cloud based data grid
US9760343B2 (en) 2014-11-28 2017-09-12 Sap Se Application builder based on metadata
US10230600B2 (en) 2014-12-19 2019-03-12 Oracle International Corporation Performance analysis and bottleneck detection in service-oriented applications
US9456014B2 (en) 2014-12-23 2016-09-27 Teradata Us, Inc. Dynamic workload balancing for real-time stream data analytics
US10198348B2 (en) 2015-08-13 2019-02-05 Spirent Communications, Inc. Method to configure monitoring thresholds using output of load or resource loadings
JP6413792B2 (ja) 2015-01-22 2018-10-31 日本電気株式会社 ストレージシステム
US10313463B2 (en) 2015-02-19 2019-06-04 Akamai Technologies, Inc. Systems and methods for avoiding server push of objects already cached at a client
US9961037B2 (en) 2015-03-10 2018-05-01 Oracle International Corporation Bi-directional multi-channel social media brokering
US10089384B2 (en) 2015-03-12 2018-10-02 Ca, Inc. Machine learning-derived universal connector
US9772822B2 (en) 2015-03-16 2017-09-26 Microsoft Technology Licensing, Llc Visualization framework for customizable types in a development environment
CN106302334B (zh) 2015-05-22 2020-06-12 中兴通讯股份有限公司 访问角色获取方法、装置及系统
US10454938B2 (en) 2015-05-28 2019-10-22 International Business Machines Corporation Dynamic permission roles for cloud based applications
US10484385B2 (en) 2015-06-04 2019-11-19 Sap Se Accessing an application through application clients and web browsers
US20160364231A1 (en) 2015-06-10 2016-12-15 Telefonaktiebolaget L M Ericsson (Publ) Method for minimal service impact during software upgrade in network elements (nes)
US9648007B1 (en) 2015-06-17 2017-05-09 Amazon Technologies, Inc. Token-based storage service
US10003974B2 (en) 2015-06-19 2018-06-19 Apple Inc. Electronic subscriber identity module management under multiple certificate authorities
US9996321B2 (en) 2015-06-23 2018-06-12 Microsoft Technology Licensing, Llc Multi-tenant, tenant-specific applications
US10013364B1 (en) 2015-06-26 2018-07-03 EMC IP Holding Company LLC Securing data using per tenant encryption keys
US9851953B2 (en) 2015-06-29 2017-12-26 Oracle International Corporation Cloud based editor for generation of interpreted artifacts for mobile runtime
US10048948B2 (en) 2015-07-06 2018-08-14 Oracle International Corporation Optimized retrieval of custom string resources
US11102313B2 (en) 2015-08-10 2021-08-24 Oracle International Corporation Transactional autosave with local and remote lifecycles
US10582001B2 (en) 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US9959100B2 (en) 2015-08-12 2018-05-01 Oracle International Corporation Efficient storage and transfer of iOS binary files
US10013668B2 (en) 2015-08-14 2018-07-03 Oracle International Corporation Secure storage of enterprise certificates for cloud services
US10419514B2 (en) 2015-08-14 2019-09-17 Oracle International Corporation Discovery of federated logins
US10452497B2 (en) 2015-08-14 2019-10-22 Oracle International Corporation Restoration of UI state in transactional systems
US10277582B2 (en) 2015-08-27 2019-04-30 Microsoft Technology Licensing, Llc Application service architecture
US10360086B2 (en) 2015-08-28 2019-07-23 Vmware, Inc. Fair decentralized throttling in distributed cloud-based systems
TWI624783B (zh) 2015-09-17 2018-05-21 長茂科技股份有限公司 整合動態連結功能函式的行動裝置應用程式之建置系統及方法
US9753813B1 (en) 2015-09-25 2017-09-05 Amazon Technologies, Inc. Data replication snapshots for persistent storage using operation numbers
US10749854B2 (en) 2015-11-12 2020-08-18 Microsoft Technology Licensing, Llc Single sign-on identity management between local and remote systems
US9735961B2 (en) 2015-11-16 2017-08-15 Verizon Patent And Licensing Inc. Managing key rotations with multiple key managers
CN105515759B (zh) 2015-11-27 2018-11-09 国网信息通信产业集团有限公司 一种微服务注册方法及系统
US9894067B1 (en) 2015-12-03 2018-02-13 Amazon Technologies, Inc. Cross-region roles
US10911429B2 (en) 2015-12-04 2021-02-02 Visa International Service Association Secure token distribution
US10437788B2 (en) 2015-12-08 2019-10-08 Sap Se Automatic detection, retry, and resolution of errors in data synchronization
US20170187785A1 (en) 2015-12-23 2017-06-29 Hewlett Packard Enterprise Development Lp Microservice with decoupled user interface
US10298589B2 (en) 2016-01-27 2019-05-21 International Business Machines Corporation User abstracted RBAC in a multi tenant environment
US20170242822A1 (en) 2016-02-18 2017-08-24 Samsung Electronics Co., Ltd. Dram appliance for data persistence
US10339153B2 (en) 2016-04-12 2019-07-02 International Business Machines Corporation Uniformly accessing federated user registry topologies
CN108337260B (zh) 2016-05-11 2019-04-23 甲骨文国际公司 多租户身份和数据安全性管理云服务
US9781122B1 (en) 2016-05-11 2017-10-03 Oracle International Corporation Multi-tenant identity and data security management cloud service
US10028105B1 (en) 2016-05-31 2018-07-17 Infinite Leap, Inc. Bluetooth low energy (BLE) real-time location system (RTLS) having tags that harvest energy, bridges that instruct tags to toggle beacon modes on and off, beacons and bridges that self-report location changes, and optional use of a single beacon channel
SG11201810477PA (en) 2016-06-06 2018-12-28 Illumina Inc Tenant-aware distributed application authentication
US10242073B2 (en) 2016-07-27 2019-03-26 Sap Se Analytics mediation for microservice architectures
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
CN109314704B (zh) 2016-09-14 2021-07-09 甲骨文国际公司 用于多租户身份和数据安全管理云服务的单点登录和单点注销功能
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
EP3513542B1 (en) 2016-09-16 2021-05-19 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10380094B2 (en) 2016-09-30 2019-08-13 Salesforce.Com, Inc. Custom multi-tenant non-relational platform objects
US10873501B2 (en) 2016-12-09 2020-12-22 Vmware, Inc. Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
US10671639B1 (en) 2017-03-30 2020-06-02 Amazon Technologies, Inc. Selectively replicating changes to hierarchial data structures
US20180285434A1 (en) 2017-03-31 2018-10-04 Konica Minolta Healthcare Americas, Inc. Cloud-to-local, local-to-cloud switching and synchronization of medical images and data
US10762075B2 (en) 2017-07-11 2020-09-01 Sap Se Database interface agent for a tenant-based upgrade system
US10628389B2 (en) 2018-01-25 2020-04-21 Merck Sharp & Dohme Corp. Verification of data provenance for existing computer systems
US10915554B2 (en) 2018-05-24 2021-02-09 Paypal, Inc. Database replication system
US10901721B2 (en) 2018-09-20 2021-01-26 Vmware, Inc. Methods and apparatus for version aliasing mechanisms and cumulative upgrades for software lifecycle management
US11363028B2 (en) 2018-09-27 2022-06-14 The Toronto-Dominion Bank Systems and methods for delegating access to a protected resource
US10846267B2 (en) * 2019-01-31 2020-11-24 Rubrik, Inc. Masterless backup and restore of files with multiple hard links
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160057229A1 (en) * 2011-03-08 2016-02-25 Rackspace Us Inc Appending to files via server-side chunking and manifest manipulation
US20120303912A1 (en) * 2011-05-23 2012-11-29 Microsoft Corporation Storage account migration between storage stamps
CN102833346A (zh) * 2012-09-06 2012-12-19 上海海事大学 基于存储元数据的云敏感数据安全保护系统及方法
US20180075231A1 (en) * 2016-09-14 2018-03-15 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
CN108234612A (zh) * 2017-12-23 2018-06-29 北京卫星信息工程研究所 多终端模式的高分资源动态分配与按需服务发布系统
CN108712493A (zh) * 2018-05-18 2018-10-26 苏州大学 跨地域云数据中心间社交用户数据分布式存储方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117120984A (zh) * 2021-01-28 2023-11-24 硕动力公司 云计算平台上构建数据中心的多基层容错持续交付
CN112866415A (zh) * 2021-02-24 2021-05-28 上海泰宇信息技术股份有限公司 一种数据备份私有云存储与下载方法
CN112866415B (zh) * 2021-02-24 2023-07-28 上海泰宇信息技术股份有限公司 一种数据备份私有云存储与下载方法

Also Published As

Publication number Publication date
WO2020171902A1 (en) 2020-08-27
US20200265062A1 (en) 2020-08-20
JP7458369B2 (ja) 2024-03-29
CN112166588B (zh) 2023-05-26
JP2022521655A (ja) 2022-04-12
EP3928484A1 (en) 2021-12-29
EP3928484B1 (en) 2023-03-08
US11321343B2 (en) 2022-05-03

Similar Documents

Publication Publication Date Title
CN110679131B (zh) 多租户身份云服务的数据复制冲突检测和解决方案
CN112166588B (zh) 多租户身份云服务的租户复制自举
CN110557975B (zh) 用于多租户身份云服务的租户数据比较
CN111801923B (zh) 用于多租户身份云服务的资源类型和模式元数据的复制
CN110603802B (zh) 多租户身份云服务的跨区域信任
CN110622484B (zh) 多租户身份云服务的本地写入
CN107852417B (zh) 多租户身份和数据安全性管理云服务
CN109565511B (zh) 用于多租户身份和数据安全管理云服务的租户和服务管理
CN109314704B (zh) 用于多租户身份和数据安全管理云服务的单点登录和单点注销功能
US11669321B2 (en) Automated database upgrade for a multi-tenant identity cloud service
CN108701182B (zh) 多租户身份云服务的数据管理
US10445395B2 (en) Cookie based state propagation for a multi-tenant identity cloud service
CN112154639B (zh) 在没有用户足迹的情况下的多因素认证
CN112913208B (zh) 具有内部部署的认证集成和桥接器高可用性的多租户身份云服务
CN112088373A (zh) 用于多租户身份云服务的声明性第三方身份提供者集成
CN112805699A (zh) 具有内部部署的认证集成的多租户身份云服务

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