JP7411548B2 - Replication of resource types and schema metadata for multi-tenant identity cloud services - Google Patents
Replication of resource types and schema metadata for multi-tenant identity cloud services Download PDFInfo
- Publication number
- JP7411548B2 JP7411548B2 JP2020529762A JP2020529762A JP7411548B2 JP 7411548 B2 JP7411548 B2 JP 7411548B2 JP 2020529762 A JP2020529762 A JP 2020529762A JP 2020529762 A JP2020529762 A JP 2020529762A JP 7411548 B2 JP7411548 B2 JP 7411548B2
- Authority
- JP
- Japan
- Prior art keywords
- idcs
- data center
- service
- cloud
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/213—Schema design and management with details for schema evolution support
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0859—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Description
関連出願の相互参照
本願は、2019年2月2日出願の米国仮特許出願第62/802,887号に基づく優先権を主張し、その開示を本明細書に引用により援用する。
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application No. 62/802,887, filed February 2, 2019, the disclosure of which is incorporated herein by reference.
分野
一実施形態は、概してアイデンティティ管理、特にクラウドシステムにおけるアイデンティ管理を対象とする。
Field One embodiment is directed to identity management in general, and in particular in cloud systems.
背景情報
一般的に、多様なデバイス(たとえばデスクトップおよびモバイルデバイス)および多様なユーザ(たとえば被雇用者、パートナー、顧客など)からアクセスされる、クラウドベースのアプリケーション(たとえば企業パブリッククラウドアプリケーション、第三者クラウドアプリケーションなど)の使用が、急激に増加している。クラウドベースのアプリケーションは、その多様性およびアクセシビリティが高いので、アイデンティティの管理およびアクセスのセキュリティが中心的な関心事になっている。クラウド環境における典型的なセキュリティの問題は、不正アクセス、アカウントのハイジャック、悪意のあるインサイダーなどである。したがって、クラウドベースのアプリケーションであっても、どこに存在するアプリケーションであっても、アプリケーションにアクセスするデバイスの種類またはユーザの種類にかかわらず、安全なアクセスが必要とされている。
Background Information Cloud-based applications (e.g., enterprise public cloud applications, third-party (e.g. cloud applications) is rapidly increasing. The high diversity and accessibility of cloud-based applications makes identity management and access security a central concern. Typical security issues in cloud environments include unauthorized access, account hijacking, and malicious insiders. Therefore, secure access to applications, whether cloud-based or located anywhere, is required regardless of the type of device or type of user accessing the application.
概要
実施形態は、第1のデータセンターを有するマルチテナントクラウドシステムを動作させる。第1のデータセンターで、実施形態は、第1のクライアントを認証し、第1のクライアントに対応するリソースを格納し、第1のデータセンターは、第1のクライアントを認証し上記リソースをレプリケートするように構成された第2のデータセンターと通信する。第1のデータセンターにおけるグローバルリソースの新たなバージョンへのアップグレードに応じて、実施形態は、上記アップグレードに応じて修正または追加されたグローバルリソースタイプおよびスキーマのリストを含むマニフェストファイルを生成する。実施形態はさらに、マニフェストファイルに基づいてグローバルリソースをアップグレードし、アップグレードしたグローバルリソースを第1のグローバルデータベースに書き込み、アップグレードしたグローバルリソースに対応する変更イベントメッセージを生成する。実施形態は、変更イベントメッセージを第2のデータセンターにプッシュし、そうすると、第2のデータセンターは、現在のバージョンを上記新たなバージョンと比較し、現在のバージョンが新たなバージョンよりも新しくないときは変更イベントメッセージを第2のグローバルデータベースに適用し、現在のバージョンが新たなバージョンと同じ新しさであるかまたは新たなバージョンよりも新しいときは変更イベントメッセージを無視し、非レプリケーションサービスを変更してグローバルリソースを第2のグローバルデータベースの代わりにバイナリ分布からロードする。
Overview Embodiments operate a multi-tenant cloud system having a first data center. At the first data center, embodiments authenticate the first client and store resources corresponding to the first client, the first data center authenticate the first client and replicate the resources. and a second data center configured to: In response to an upgrade of global resources at the first data center to a new version, embodiments generate a manifest file that includes a list of global resource types and schemas that were modified or added in response to the upgrade. Embodiments further upgrade the global resource based on the manifest file, write the upgraded global resource to the first global database, and generate a change event message corresponding to the upgraded global resource. Embodiments push a change event message to a second data center, and then the second data center compares the current version with the new version and when the current version is not newer than the new version. applies the change event message to the second global database, ignores the change event message when the current version is as new as the new version, or is newer than the new version, and changes the non-replication service. to load global resources from a binary distribution instead of a second global database.
詳細な説明
実施形態は、マスターデータセンター/地域とレプリカデータセンター/地域との間のメタデータレプリケーションを提供することにより、たとえば、マスターデータセンターにおけるバージョンリリースアップグレードを説明する。バージョンアップグレード後に、リソースタイプおよびスキーマ等のグローバルリソースを含むメタデータをレプリケートする必要があり、このメタデータは、マスターとレプリカとの間でデータレプリケーションが行われる前に、レプリカ地域において整合している必要がある。実施形態は、この整合性を前方および後方に提供する。なぜなら、アップグレードされたどの地域もマスター地域とみなすことができ、そうすると、その他すべての地域は、メタデータレプリケーションのためのレプリカ地域とみなされるからである。
DETAILED DESCRIPTION Embodiments describe, for example, version release upgrades at a master data center by providing metadata replication between a master data center/region and a replica data center/region. After a version upgrade, metadata including global resources such as resource types and schemas must be replicated, and this metadata must be consistent in the replica region before data replication occurs between master and replica. There is a need. Embodiments provide this alignment anteriorly and posteriorly. This is because any upgraded region can be considered a master region, and all other regions are then considered replica regions for metadata replication.
実施形態が提供するアイデンティティクラウドサービスは、マイクロサービスベースのアーキテクチャを実現するとともに、マルチテナントアイデンティティおよびデータセキュリティの管理ならびにクラウドベースのアプリケーションへの安全なアクセスを提供する。実施形態は、ハイブリッドクラウドのデプロイメント(すなわちパブリッククラウドとプライベートクラウドとを組み合わせたものを含むクラウドのデプロイメント)について安全なアクセスをサポートする。実施形態は、クラウド内およびオンプレミス双方におけるアプリケーションおよびデータを保護する。実施形態は、ウェブ、モバイル機器、およびアプリケーションプログラミングインターフェイス(application programming interface)(「API」)を介したマルチチャネルアクセスをサポートする。実施形態は、顧客、パートナー、および被雇用者など、さまざまなユーザのアクセスを管理する。実施形態は、クラウドを通じたアクセスおよびオンプレミスのアクセス双方を管理、制御、および監査する。実施形態は、新たなおよび既存のアプリケーションおよびアイデンティと統合される。実施形態は横方向にスケーラブルである。 Embodiments provide an identity cloud service that enables a microservices-based architecture while providing multi-tenant identity and data security management and secure access to cloud-based applications. Embodiments support secure access for hybrid cloud deployments (i.e., cloud deployments that include a combination of public and private clouds). Embodiments protect applications and data both in the cloud and on-premises. Embodiments support multi-channel access via the web, mobile devices, and application programming interfaces ("APIs"). Embodiments manage access for various users, such as customers, partners, and employees. Embodiments manage, control, and audit both access through the cloud and on-premises access. Embodiments integrate with new and existing applications and identities. Embodiments are laterally scalable.
一実施形態は、ステートレスな中間層環境において多数のマイクロサービスを実現することによりクラウドベースのマルチテナントアイデンティティおよびアクセス管理サービスを提供するシステムである。一実施形態において、要求された各アイデンティティ管理サービスは、リアルタイムタスクとニア・リアルタイムタスクとに分割される。リアルタイムタスクは中間層のマイクロサービスによって処理されるのに対し、ニア・リアルタイムタスクはメッセージキューにオフロードされる。実施形態は、ルーティング層および中間層によって消費されるアクセストークンを実現することにより、マイクロサービスにアクセスするためのセキュリティモデルを強化する。したがって、実施形態は、マルチテナントのマイクロサービスアーキテクチャに基づいてクラウドスケールのアイデンティティおよびアクセス管理(Identity and Access Management)(「IAM」)プラットフォームを提供する。 One embodiment is a system that provides cloud-based multi-tenant identity and access management services by implementing a large number of microservices in a stateless middle-tier environment. In one embodiment, each requested identity management service is divided into real-time tasks and near-real-time tasks. Real-time tasks are handled by middle-tier microservices, while near-real-time tasks are offloaded to message queues. Embodiments enhance the security model for accessing microservices by implementing access tokens that are consumed by routing and middle tiers. Accordingly, embodiments provide a cloud-scale Identity and Access Management (“IAM”) platform based on a multi-tenant microservices architecture.
一実施形態は、組織が、その新たなビジネス構想のために高速で信頼性が高くかつ安全なサービスを迅速に開発できるようにするアイデンティティクラウドサービスを提供する。一実施形態において、アイデンティティクラウドサービスは多数のコアサービスを提供する。各コアサービスは、多くの企業が直面する固有の課題を解決する。一実施形態において、アイデンティティクラウドサービスは、たとえば、最初にユーザのオンボード/インポートを行うとき、ユーザメンバとともにグループをインポートするとき、ユーザを作成/更新/ディスエーブル/イネーブル/削除するとき、ユーザをグループに割り当てる/グループへのユーザ割当を解除するとき、グループを作成/更新/削除するとき、パスワードをリセットするとき、ポリシーを管理するとき、アクティベーションを送信するときなどの、アドミニストレータをサポートする。 One embodiment provides an identity cloud service that enables organizations to rapidly develop fast, reliable, and secure services for their new business initiatives. In one embodiment, the identity cloud service provides a number of core services. Each core service solves a unique challenge faced by many companies. In one embodiment, the identity cloud service supports users, for example, when initially onboarding/importing users, when importing groups with user members, when creating/updating/disabling/enabling/deleting users, Supports administrators when assigning/unassigning users to groups, creating/updating/deleting groups, resetting passwords, managing policies, submitting activations, etc.
統一されたアクセスセキュリティ
一実施形態は、クラウド環境およびオンプレミス環境双方におけるアプリケーションおよびデータを保護する。本実施形態は、どのデバイスからの誰によるどのアプリケーションへのアクセスも安全にする。本実施形態は、これらの環境双方にわたる保護を提供する。なぜなら、これら2つの環境の間でセキュリティに矛盾があればリスクが高くなる可能性があるからである。たとえば、このような矛盾があった場合、販売員は、離反して競合他社に移った後であっても、その顧客関係管理(Customer Relationship Management)(「CRM」)アカウントへのアクセス権を有し続ける場合がある。したがって、実施形態は、オンプレミス環境においてプロビジョニングされたセキュリティ制御をクラウド環境に拡張する。たとえば、ある人物が会社を辞めた場合、実施形態は、そのアカウントがオンプレミスおよびクラウド双方においてディスエーブルされることを保証する。
One embodiment of unified access security protects applications and data in both cloud and on-premises environments. This embodiment secures access to any application by anyone from any device. This embodiment provides protection across both of these environments. This is because any security discrepancy between these two environments can increase the risk. For example, if such a conflict exists, a salesperson may still have access to his or her Customer Relationship Management (“CRM”) account even after he or she has defected and moved to a competitor. It may continue to do so. Accordingly, embodiments extend security controls provisioned in an on-premises environment to a cloud environment. For example, if a person leaves a company, embodiments ensure that their account is disabled both on-premises and in the cloud.
一般的に、ユーザは、ウェブブラウザ、デスクトップ、携帯電話、タブレット、スマートウォッチ、その他のウェアラブル機器などの多種多様なチャネルを通してアプリケーションおよび/またはデータにアクセスし得る。したがって、一実施形態は、これらすべてのチャネルについて、これらを通るアクセスを安全なものにする。たとえば、ユーザは、その携帯電話を用いて、自身のデスクトップ上で開始したトランザクションを完了させることができる。 Typically, users may access applications and/or data through a wide variety of channels, such as a web browser, desktop, mobile phone, tablet, smart watch, and other wearable devices. Therefore, one embodiment secures access through all of these channels. For example, a user can use their mobile phone to complete a transaction initiated on their desktop.
一実施形態はさらに、顧客、パートナー、被雇用者など、さまざまなユーザのアクセスを管理する。一般的に、アプリケーションおよび/またはデータは、被雇用者だけでなく、顧客または第三者によってもアクセスされる場合がある。既知の多くのシステムは、被雇用者のオンボード時に安全対策を講じるが、この安全対策は通常、顧客、第三者、パートナーなどにアクセス権を付与するときの安全対策と同じレベルではないので、結果として、適切に管理されていない者によってセキュリティが破られる可能性がある。しかしながら、実施形態は、被雇用者だけでなく各タイプのユーザのアクセスについて十分な安全対策が提供されることを保証する。 One embodiment further manages access for various users, such as customers, partners, employees, etc. Generally, applications and/or data may be accessed not only by employees, but also by customers or third parties. Many known systems provide security measures when onboarding employees, but these security measures are typically not at the same level of security as when granting access to customers, third parties, partners, etc. , As a result, security may be breached by persons who are not properly supervised. However, embodiments ensure that sufficient security measures are provided for access for each type of user as well as for employees.
アイデンティティクラウドサービス
実施形態は、マルチテナントでクラウドスケールのIAMプラットフォームであるアイデンティティクラウドサービス(Identity Cloud Service)(「IDCS」)を提供する。IDCSは、認証、認可、監査、および連携(federation)を提供する。IDCSは、パブリッククラウドおよびオンプレミスシステム上で実行されているカスタムアプリケーションおよびサービスへのアクセスを管理する。これに代わるまたはこれに加えられる実施形態において、IDCSは、パブリッククラウドサービスへのアクセスも管理し得る。たとえば、IDCSを用いて、このような多様なサービス/アプリケーション/システムにまたがるシングルサインオン(Single Sign On)(「SSO」)機能を提供することができる。
Identity Cloud Service embodiments provide Identity Cloud Service (“IDCS”), a multi-tenant, cloud-scale IAM platform. IDCS provides authentication, authorization, auditing, and federation. IDCS manages access to custom applications and services running on public cloud and on-premises systems. In alternative or additional embodiments, the IDCS may also manage access to public cloud services. For example, IDCS can be used to provide Single Sign On ("SSO") functionality across such diverse services/applications/systems.
実施形態は、クラウドスケールのソフトウェアサービスを設計、構築、および配信するためのマルチテナントマイクロサービスアーキテクチャに基づく。マルチテナンシーとは、あるサービスを物理的に実現したものがありこのサービスが当該サービスを購入した複数の顧客を安全にサポートするサービスであることを言う。サービスは、異なるクライアントが異なる目的のために再使用できるソフトウェア機能またはソフトウェア機能のセット(指定された情報を取り出すことまたは一組の動作を実行することなど)に、(たとえばサービスを要求しているクライアントのアイデンティティに基づく)その使用を管理するポリシーを合わせたものである。一実施形態において、サービスは、1つ以上の機能へのアクセスを可能にするメカニズムであり、このアクセスは、所定のインターフェイスを用いて提供され、サービスの記述によって明記された制約およびポリシーに従って実行される。 Embodiments are based on a multi-tenant microservices architecture for designing, building, and delivering cloud-scale software services. Multi-tenancy refers to a service that is a physical implementation of a service that safely supports multiple customers who have purchased the service. A service provides a software function or set of software functions (such as retrieving specified information or performing a set of actions) that can be reused by different clients for different purposes (e.g., requesting a service). policy that governs its use (based on client identity). In one embodiment, a service is a mechanism that enables access to one or more functionalities, where this access is provided using a predefined interface and is enforced according to constraints and policies specified by the service description. Ru.
一実施形態において、マイクロサービスは独立してデプロイ可能なサービスである。一実施形態において、マイクロサービスという用語は、言語に依存しないAPIを用いて相互に通信する小さな独立したプロセスから複雑なアプリケーションが構成されている、ソフトウェアアーキテクチャ設計パターンを意図している。一実施形態において、マイクロサービスは、細かく分離された小さなサービスであり、各サービスは、小さなタスクの実行に集中し得る。一実施形態において、マイクロサービスアーキテクチャスタイルは、単一のアプリケーションを小さなサービス一式として開発する手法であり、各サービスは、自身のプロセスにおいて実行され、軽量のメカニズム(たとえばハイパーテキスト・トランスファー・プロトコル(Hypertext Transfer Protocol)(「HTTP」)リソースAPI)と通信する。一実施形態において、マイクロサービスは、同一機能すべてをまたは同一機能のうちの多くを実行するモノリシックサービスと比較すると、交換がより簡単である。加えて、マイクロサービスは各々、その他のマイクロサービスに悪影響を与えることなく更新し得る。これに対し、モノリシックサービスの一部を更新すると、当該モノリシックサービスの他の部分に望ましくないまたは意図せぬ悪影響が及ぶ可能性がある。一実施形態において、マイクロサービスはその機能を中心として有益に編成し得る。一実施形態において、マイクロサービスのコレクションのうち各マイクロサービスのスタートアップ時間は、これらのマイクロサービスのうちのすべてのサービスをまとめて実行する単一のアプリケーションのスタートアップ時間よりも遥かに短い。いくつかの実施形態において、このようなマイクロサービス各々のスタートアップ時間は約1秒以下であるのに対し、このような単一のアプリケーションのスタートアップ時間は約1分、数分、またはそれよりも長い場合がある。 In one embodiment, microservices are independently deployable services. In one embodiment, the term microservices is intended for a software architecture design pattern in which complex applications are composed of small independent processes that communicate with each other using language-independent APIs. In one embodiment, microservices are finely isolated small services, each service may focus on performing small tasks. In one embodiment, the microservices architectural style is an approach to developing a single application as a set of small services, where each service runs in its own process and uses lightweight mechanisms (e.g., Hypertext Transfer Protocol). Transfer Protocol (“HTTP”) resource API). In one embodiment, microservices are easier to replace when compared to monolithic services that perform all or many of the same functions. Additionally, each microservice can be updated without negatively impacting other microservices. On the other hand, updating one part of a monolithic service can have undesirable or unintended negative effects on other parts of the monolithic service. In one embodiment, microservices may be beneficially organized around their functionality. In one embodiment, the startup time of each microservice in the collection of microservices is much shorter than the startup time of a single application that executes all of these microservices together. In some embodiments, the startup time for each such microservice is about 1 second or less, whereas the startup time for a single such application is about 1 minute, several minutes, or longer. There are cases.
一実施形態において、マイクロサービスアーキテクチャとは、フレキシブルで、独立してデプロイ可能なソフトウェアシステムを構築するための、サービス指向アーキテクチャ(service oriented architecture(「SOA」))の専門化(すなわちシステム内におけるタスクの分離)および実現の手法のことである。マイクロサービスアーキテクチャにおけるサービスは、目的を達成するためにネットワークを通して相互に通信するプロセスである。一実施形態において、これらのサービスは、技術に依存しないプロトコルを使用する。一実施形態において、サービスは、細分性が小さく軽量であるプロトコルを使用する。一実施形態において、サービスは独立してデプロイ可能である。システムの機能を異なる小さなサービスに分散させることにより、システムの結束性は向上し、システムのカップリングは減少する。それにより、システム変更が容易になり、任意の時点でシステムに機能および品質を追加することが容易になる。また、それによって、個々のサービスのアーキテクチャが、絶え間ないリファクタリングを通して出現することが可能になり、したがって、大規模な事前の設計の必要性は低下しソフトウェアを早期に連続してリリースすることが可能になる。 In one embodiment, a microservices architecture refers to a service oriented architecture ("SOA") specialization (i.e., task (separation) and realization method. Services in a microservices architecture are processes that communicate with each other over a network to accomplish a goal. In one embodiment, these services use technology independent protocols. In one embodiment, the service uses a protocol that has low granularity and is lightweight. In one embodiment, services are independently deployable. By distributing system functionality into different small services, system cohesion is improved and system coupling is reduced. It facilitates system changes and makes it easy to add functionality and quality to the system at any time. It also allows the architecture of individual services to emerge through constant refactoring, thus reducing the need for extensive up-front design and allowing software to be released in early succession. become.
一実施形態において、マイクロサービスアーキテクチャでは、アプリケーションがサービスのコレクションとして開発され、各サービスはそれぞれのプロセスを実行し軽量のプロトコルを用いて通信する(たとえばマイクロサービスごとの固有API)。マイクロサービスアーキテクチャにおいて、1つのソフトウェアを個々のサービス/機能に分解することは、提供するサービスに応じて異なるレベルの粒度で行うことができる。サービスはランタイムコンポーネント/プロセスである。各マイクロサービスは、他のモジュール/マイクロサービスに対してトークすることができる内蔵モジュールである。各マイクロサービスは、他からコンタクトできる無名ユニバーサルポートを有する。一実施形態において、マイクロサービスの無名ユニバーサルポートは、従来マイクロサービスがエクスポーズする標準通信チャネルであり(たとえば従来のHTTPポートのような)、同一サービス内の他のモジュール/マイクロサービスがそれに対してトークできるようにする標準通信チャネルである。マイクロサービスまたはその他の内蔵機能モジュールを包括的に「サービス」と呼ぶことができる。 In one embodiment, in a microservices architecture, an application is developed as a collection of services, each running its own process and communicating using a lightweight protocol (eg, a unique API for each microservice). In a microservices architecture, decomposing a piece of software into individual services/functions can be done at different levels of granularity depending on the service being provided. A service is a runtime component/process. Each microservice is a self-contained module that can talk to other modules/microservices. Each microservice has an anonymous universal port that can be contacted by others. In one embodiment, a microservice's anonymous universal port is a standard communication channel that the microservice traditionally exposes (such as a traditional HTTP port) to which other modules/microservices within the same service It is a standard communication channel that allows people to talk to each other. Microservices or other self-contained functional modules may be collectively referred to as "services."
実施形態は、マルチテナントアイデンティティ管理サービスを提供する。実施形態は、さまざまなアプリケーションとの容易な統合を保証するオープン標準に基づいており、標準ベースのサービスを通してIAM機能を提供する。 Embodiments provide multi-tenant identity management services. Embodiments are based on open standards that ensure easy integration with a variety of applications and provide IAM functionality through standards-based services.
実施形態は、アイデンティティがアクセスできる対象、このようなアクセスを付与できる者、このようなアクセスを管理できる者などを判断し施行することを伴うユーザアイデンティティのライフサイクルを管理する。実施形態は、クラウド内でアイデンティティ管理ワークロードを実行し、このクラウド内に存在するとは限らないアプリケーションのセキュリティ機能をサポートする。これらの実施形態が提供するアイデンティティ管理サービスはクラウドから購入されてもよい。たとえば、企業は、このようなサービスをクラウドから購入してその被雇用者の当該企業のアプリケーションに対するアクセスを管理してもよい。 Embodiments manage the life cycle of user identities, which involves determining and enforcing what an identity can access, who can grant such access, who can manage such access, and so on. Embodiments run identity management workloads in the cloud and support security features for applications that do not necessarily reside within this cloud. The identity management services provided by these embodiments may be purchased from the cloud. For example, a company may purchase such services from the cloud to manage its employees' access to the company's applications.
実施形態は、システムセキュリティ、大規模なスケーラビリティ、エンドユーザのユーザビリティ、およびアプリケーションのインターオペラビリティを提供する。実施形態は、クラウドの成長と、顧客によるアイデンティティサービスの使用とを扱っている。マイクロサービスに基づく基礎は、横方向のスケーラビリティ条件を扱うのに対し、サービスの綿密な調整は機能条件を扱う。これらの目標双方を達成するには、ビジネスロジックを(可能な限り)分解することにより、最終的には一貫性のあるステートレスを達成する一方で、リアルタイム処理を受けない動作論理のほとんどが、配信と処理が保証されたスケーラビリティが高い非同期イベント管理システムに、オフロードされることにより、ニア・リアルタイムにシフトする。実施形態は、コスト効率を実現しシステム管理を容易にするために、ウェブ層からデータまで完全にマルチテナントである。 Embodiments provide system security, massive scalability, end user usability, and application interoperability. Embodiments address the growth of the cloud and the use of identity services by customers. Microservices-based foundations deal with horizontal scalability conditions, whereas fine-tuning of services deals with functional conditions. To achieve both of these goals, business logic is decomposed (as much as possible) to ultimately achieve consistent statelessness, while most of the behavioral logic that does not undergo real-time processing is delivered Shift to near real-time by offloading to a highly scalable asynchronous event management system with guaranteed processing. Embodiments are fully multi-tenant from the web layer to the data to achieve cost efficiency and ease system management.
実施形態は、さまざまなアプリケーションと統合し易くするために、業界の標準(たとえば、OpenID Connect、OAuth2、セキュリティ・アサーション・マークアップ言語(Security Assertion Markup Language)2(「SAML2」)、クロスドメインアイデンティティ管理用システム(System for Cross-domain Identity Management)(「SCIM」)、レプレゼンテーショナル・ステート・トランスファー(Representational State Transfer)(「REST」)など)に従う。一実施形態は、クラウドスケールAPIプラットフォームを提供し、エラスティックスケーラビリティのために横方向にスケーラブルなマイクロサービスを実現する。本実施形態は、クラウド原理を強化し、テナントごとにデータを分離したマルチテナントアーキテクチャを提供する。本実施形態はさらに、テナントセルフサービスを介してテナントごとのカスタマイズを提供する。本実施形態は、他のアイデンティサービスとのオンデマンドの統合の際にはAPIを介して利用することができ、連続したフィーチャーリリースを提供する。 Embodiments use industry standards (e.g., OpenID Connect, OAuth2, Security Assertion Markup Language 2 (“SAML2”), cross-domain identity management) to facilitate integration with a variety of applications. System for Cross-domain Identity Management (“SCIM”), Representational State Transfer (“REST”), etc.). One embodiment provides a cloud-scale API platform to enable horizontally scalable microservices for elastic scalability. This embodiment strengthens the cloud principle and provides a multi-tenant architecture in which data is separated for each tenant. This embodiment further provides per-tenant customization via tenant self-service. This embodiment is available via an API for on-demand integration with other identity services and provides continuous feature releases.
一実施形態は、インターオペラビリティを提供し、クラウドおよびオンプレミスにおけるアイデンティティ管理(identity management)(「IDM」)機能への投資を強化する。本実施形態は、オンプレミスの軽量ディレクトリアクセスプロトコル(Lightweight Directory Access Protocol)(「LDAP」)データからクラウドデータへの、およびその逆の、自動化されたアイデンティティ同期化を提供する。本実施形態は、クラウドと企業との間にSCIMアイデンティティバスを提供し、ハイブリッドクラウドのデプロイの各種オプションを可能にする(たとえば、アイデンティティ連携および/または同期化、SSOエージェント、ユーザプロビジョニングコネクタなど)。 One embodiment provides interoperability and enhances investments in identity management ("IDM") capabilities in the cloud and on-premises. The present embodiments provide automated identity synchronization from on-premises Lightweight Directory Access Protocol (“LDAP”) data to cloud data and vice versa. The present embodiment provides a SCIM identity bus between the cloud and the enterprise, allowing various options for hybrid cloud deployment (eg, identity federation and/or synchronization, SSO agents, user provisioning connectors, etc.).
したがって、一実施形態は、ステートレスな中間層において多数のマイクロサービスを実現することによりクラウドベースのマルチテナントアイデンティティおよびアクセス管理サービスを提供するシステムである。一実施形態において、要求された各アイデンティティ管理サービスは、リアルタイムタスクとニア・リアルタイムタスクとに分割される。リアルタイムタスクは中間層のマイクロサービスによって処理されるのに対し、ニア・リアルタイムタスクはメッセージキューにオフロードされる。実施形態は、ルーティング層によって消費されて、マイクロサービスにアクセスするためのセキュリティモデルを実施するトークンを実現する。したがって、実施形態は、マルチテナントのマイクロサービスアーキテクチャに基づくクラウドスケールのIAMプラットフォームを提供する。 Accordingly, one embodiment is a system that provides cloud-based multi-tenant identity and access management services by implementing a large number of microservices in a stateless middle tier. In one embodiment, each requested identity management service is divided into real-time tasks and near-real-time tasks. Real-time tasks are handled by middle-tier microservices, while near-real-time tasks are offloaded to message queues. Embodiments implement tokens that are consumed by a routing layer to implement a security model for accessing microservices. Accordingly, embodiments provide a cloud-scale IAM platform based on a multi-tenant microservices architecture.
一般的に、周知のシステムは、たとえば、企業クラウドアプリケーション、パートナークラウドアプリケーション、第三者クラウドアプリケーション、および顧客アプリケーションなど、各種環境によって提供されるアプリケーションに対するサイロ化されたアクセスを提供する。このようなサイロ化されたアクセスは、複数のパスワード、異なるパスワードポリシー、異なるアカウントプロビジョニングおよびデプロビジョニング手法、異種の監査などを必要とする場合がある。しかしながら、一実施形態は、IDCSを実現することにより、このようなアプリケーションに対し統一されたIAM機能を提供する。図1は、ユーザおよびアプリケーションをオンボードするための統一されたアイデンティティプラットフォーム126を提供する、IDCS118を用いる実施形態の一例のブロック図100である。本実施形態は、企業クラウドアプリケーション102、パートナークラウドアプリケーション104、第三者クラウドアプリケーション110、および顧客アプリケーション112などのさまざまなアプリケーションにまたがるシームレスなユーザ体験を提供する。アプリケーション102、104、110、112は、異なるチャネルを通してアクセスされてもよく、たとえば、携帯電話ユーザ108が携帯電話106を介して、デスクトップコンピュータのユーザ116がブラウザ114を介して、アクセスしてもよい。ウェブブラウザ(一般的にブラウザと呼ばれる)は、ワールドワイドウェブ上で情報リソースを取得、提示、およびトラバースするためのソフトウェアアプリケーションである。ウェブブラウザの例としては、Mozilla(登録商標) Firefox(登録商標)、Google Chrome(登録商標)、Microsoft(登録商標) Internet Explorer(登録商標)、およびApple(登録商標) Safari(登録商標)が挙げられる。 Generally, known systems provide siled access to applications provided by various environments, such as, for example, enterprise cloud applications, partner cloud applications, third party cloud applications, and customer applications. Such siled access may require multiple passwords, different password policies, different account provisioning and deprovisioning techniques, disparate auditing, etc. However, one embodiment provides unified IAM functionality for such applications by implementing IDCS. FIG. 1 is a block diagram 100 of an example embodiment using IDCS 118 to provide a unified identity platform 126 for onboarding users and applications. This embodiment provides a seamless user experience across various applications such as enterprise cloud application 102, partner cloud application 104, third party cloud application 110, and customer application 112. Applications 102, 104, 110, 112 may be accessed through different channels, for example, by mobile phone user 108 via mobile phone 106 and by desktop computer user 116 via browser 114. . A web browser (commonly referred to as a browser) is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. Examples of web browsers include Mozilla® Firefox®, Google Chrome®, Microsoft® Internet Explorer®, and Apple® Safari®. It will be done.
IDCS118は、ユーザのアプリケーションの統一されたビュー124、(アイデンティティプラットフォーム126を介する)デバイスおよびアプリケーションにまたがる統一された安全なクレデンシャル、および(管理コンソール(admin console)122を介する)統一された管理方法を、提供する。IDCSサービスは、IDCS API142にコールすることによって取得されてもよい。このようなサービスは、たとえば、ログイン/SSOサービス128(たとえばOpenID Connect)、連携サービス130(たとえばSAML)、トークンサービス132(たとえばOAuth)、ディレクトリサービス134(たとえばSCIM)、プロビジョニングサービス136(たとえばSCIMまたはAny Transport over Multiprotocol(「AToM」))、イベントサービス138(たとえばREST)、および認可サービス140(たとえばSCIM)を含み得る。IDCS118はさらに、提供されるサービスに関するレポートおよびダッシュボード120を提供し得る。 IDCS 118 provides a unified view 124 of a user's applications, unified secure credentials across devices and applications (via identity platform 126), and a unified method of management (via admin console 122). ,provide. IDCS services may be obtained by calling IDCS API 142. Such services include, for example, login/SSO services 128 (e.g., OpenID Connect), federation services 130 (e.g., SAML), token services 132 (e.g., OAuth), directory services 134 (e.g., SCIM), provisioning services 136 (e.g., SCIM or Any Transport over Multiprotocol (“AToM”)), event service 138 (eg, REST), and authorization service 140 (eg, SCIM). IDCS 118 may further provide reports and dashboards 120 regarding the services provided.
統合ツール
通常、大企業では、そのオンプレミスのアプリケーションへの安全なアクセスのために、IAMシステムを適所に設けるのが一般的である。ビジネス手法は通常オラクル社の「Oracle IAM Suite」などのインハウスIAMシステムを中心として成熟し標準化される。小~中規模組織でも、通常は、そのビジネスプロセスを、Microsoft Active Directory(「AD」)などの単純なディレクトリソリューションを通してユーザアクセスを管理することを中心として設計されている。オンプレミス統合を可能にするために、実施形態は、顧客がそのアプリケーションをIDCSと統合できるようにするツールを提供する。
Integration Tools Large enterprises typically have IAM systems in place for secure access to their on-premises applications. Business methods typically mature and become standardized around in-house IAM systems such as Oracle's Oracle IAM Suite. Even small to medium sized organizations typically have their business processes designed around managing user access through a simple directory solution such as Microsoft Active Directory ("AD"). To enable on-premises integration, embodiments provide tools that allow customers to integrate their applications with IDCS.
図2は、オンプレミス206のAD204との統合を提供する、クラウド環境208内のIDCS202を用いる実施形態の一例のブロック図200である。本実施形態は、たとえば、クラウドサービス210、クラウドアプリケーション212、パートナーアプリケーション214、および顧客アプリケーション216などのクラウド208内のさまざまなアプリケーション/サービスならびにオンプレミスアプリケーション218などのオンプレミスアプリケーションおよび第三者アプリケーションを含むすべてのアプリケーションにまたがる、シームレスなユーザ体験を提供する。クラウドアプリケーション212は、たとえば、ヒューマン・キャピタル・マネージメント(Human Capital Management)(「HCM」)、CRM、タレント取得(たとえばオラクル社のOracle Taleoクラウドサービス)、構成、価格設定、および見積もり(Configure Price and Quote「CPQ」)などを含み得る。クラウドサービス210は、たとえば、サービスとしてのプラットフォーム(Platform as a Service)(「PaaS」)、Java(登録商標)、データベース、ビジネスインテリジェンス(business intelligence)(「BI」)、文書などを含み得る。 FIG. 2 is a block diagram 200 of an example embodiment using IDCS 202 in a cloud environment 208 to provide integration with an on-premises 206 AD 204. This embodiment includes, for example, various applications/services within cloud 208 such as cloud services 210, cloud applications 212, partner applications 214, and customer applications 216, as well as on-premises and third party applications such as on-premises applications 218. Deliver a seamless user experience across applications. Cloud applications 212 include, for example, Human Capital Management ("HCM"), CRM, talent acquisition (e.g., Oracle's Oracle Taleo cloud service), and Configure Price and Quote. "CPQ"). Cloud services 210 may include, for example, Platform as a Service ("PaaS"), Java, databases, business intelligence ("BI"), documents, and the like.
アプリケーション210、212、214、216、218は、異なるチャネルを通してアクセスされてもよく、たとえば、携帯電話ユーザ220が携帯電話222を介して、デスクトップコンピュータのユーザ224がブラウザ226を介して、アクセスしてもよい。本実施形態は、クラウド208と企業206との間のSCIMアイデンティティバス234を介して、オンプレミスのADデータからクラウドデータに、アイデンティティの同期化を自動的に行う。本実施形態はさらに、クラウド208からオンプレミスAD204への、(たとえばパスワード232を用いて)認証を連携させるためのSAMLバス228を提供する。 Applications 210 , 212 , 214 , 216 , 218 may be accessed through different channels, for example, by mobile phone user 220 via mobile phone 222 and by desktop computer user 224 via browser 226 . Good too. The present embodiment automatically synchronizes identities from on-premises AD data to cloud data via SCIM identity bus 234 between cloud 208 and enterprise 206. The embodiment further provides a SAML bus 228 for orchestrating authentication (eg, using password 232) from cloud 208 to on-premises AD 204.
一般的に、アイデンティティバスは、アイデンティティ関連サービスのためのサービスバスである。サービスバスは、メッセージをあるシステムから別のシステムに伝えるためのプラットフォームを提供する。これは、たとえばサービス指向アーキテクチャ(service oriented architecture)(「SOA」)において、信頼されているシステム間で情報を交換するための制御されたメカニズムである。アイデンティティバスは、ウェブサービス、ウェブサーバプロキシなどの標準的なHTTPベースのメカニズムに従って構築された論理バスである。アイデンティティバスにおける通信は、各プロトコル(たとえばSCIM、SAML、OpenID Connectなど)に従って実行されてもよい。たとえば、SAMLバスは、SAMLサービスに関するメッセージを伝えるための、2つのシステム間のHTTPベースの接続である。同様に、SCIMバスを用い、SCIMプロトコルに従って、SCIMメッセージを伝える。 Generally, an identity bus is a service bus for identity-related services. A service bus provides a platform for passing messages from one system to another. It is a controlled mechanism for exchanging information between trusted systems, for example in a service oriented architecture ("SOA"). The identity bus is a logical bus built according to standard HTTP-based mechanisms such as web services, web server proxies, etc. Communication on the identity bus may be performed according to each protocol (eg, SCIM, SAML, OpenID Connect, etc.). For example, a SAML bus is an HTTP-based connection between two systems for conveying messages regarding SAML services. Similarly, the SCIM bus is used to convey SCIM messages according to the SCIM protocol.
図2の実施形態は、顧客のAD204とともにオンプレミス206でダウンロードおよびインストールすることができる小バイナリ(たとえば大きさが1MB)のアイデンティティ(「ID」)ブリッジ230を実現する。IDブリッジ230は、顧客によって選択された組織ユニット(organizational unit)(「OU」)のユーザおよびグループ(たとえばユーザのグループ)をリッスンし、これらのユーザをクラウド208に対して同期させる。一実施形態において、ユーザのパスワード232はクラウド208に対して同期されていない。顧客は、IDCSユーザのグループを、IDCS208において管理されているクラウドアプリケーションにマッピングすることにより、ユーザのアプリケーションアクセスを管理することができる。ユーザのグループメンバーシップがオンプレミス206で変更されるたびに、対応するクラウドアプリケーションアクセスは自動的に変更される。 The embodiment of FIG. 2 implements a small binary (eg, 1 MB in size) identity ("ID") bridge 230 that can be downloaded and installed on-premises 206 with a customer's AD 204. Identity bridge 230 listens for users and groups (eg, groups of users) in organizational units (“OUs”) selected by the customer and synchronizes these users to cloud 208 . In one embodiment, the user's password 232 is not synchronized to the cloud 208. Customers can manage application access for users by mapping groups of IDCS users to cloud applications managed in IDCS 208. Whenever a user's group membership changes on-premises 206, the corresponding cloud application access changes automatically.
たとえば、技術部門から販売部門に異動した被雇用者は、販売クラウドへのアクセスをほぼ瞬間的に取得することができ、開発者クラウドへのアクセスは失う。この変化がオンプレミスAD204に反映されると、クラウドアプリケーションのアクセスの変更がニア・リアルタイムで実現される。同様に、IDCS208で管理されているクラウドアプリケーションへの、この企業から去るユーザのアクセスは、取消される。完全自動化のために、顧客は、たとえばAD連携サービス(「AD/FS」またはSAML連携を実現するその他の何らかのメカニズム)を通して、オンプレミスAD204とIDCS208との間のSSOをセットアップして、エンドユーザが、単一の企業パスワード332を用いて、クラウドアプリケーション210、212、214、216およびオンプレミスアプリケーション218にアクセスできるようにしてもよい。 For example, an employee who transfers from a technology department to a sales department can almost instantaneously gain access to the sales cloud and lose access to the developer cloud. When this change is reflected in the on-premises AD 204, cloud application access changes are realized in near real time. Similarly, a user's access to cloud applications managed by IDCS 208 is revoked when they leave this enterprise. For full automation, customers can set up SSO between on-premises AD 204 and IDCS 208, for example through an AD federation service (“AD/FS” or some other mechanism to achieve SAML federation), so that end users can A single corporate password 332 may be used to provide access to cloud applications 210, 212, 214, 216 and on-premises applications 218.
図3は、図2と同一のコンポーネント202、206、208、210、212、214、216、218、220、222、224、226、228、234を含む実施形態の一例のブロック図300である。しかしながら、図3の実施形態において、IDCS202は、オラクルIDMのようなオンプレミスIDM304との統合を提供する。オラクルIDM304は、IAM機能を提供するための、オラクル社のソフトウェアスイートである。本実施形態は、オンプレミスアプリケーションおよび第三者アプリケーションを含むすべてのアプリケーションにまたがるシームレスなユーザ体験を提供する。本実施形態は、クラウド202と企業206との間のSCIMアイデンティティバス234を介したオンプレミスIDM304からIDCS208へのユーザアイデンティティをプロビジョニングする。本実施形態はさらに、クラウド208からオンプレミス206への認証の連携のためのSAMLバス228(またはOpenID Connectバス)を提供する。 FIG. 3 is a block diagram 300 of an example embodiment that includes the same components 202, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 234 as in FIG. However, in the embodiment of FIG. 3, IDCS 202 provides integration with an on-premises IDM 304, such as Oracle IDM. Oracle IDM 304 is Oracle's software suite for providing IAM functionality. This embodiment provides a seamless user experience across all applications, including on-premises and third-party applications. This embodiment provisions user identities from on-premises IDM 304 to IDCS 208 via SCIM identity bus 234 between cloud 202 and enterprise 206. The embodiment further provides a SAML bus 228 (or OpenID Connect bus) for authentication coordination from cloud 208 to on-premises 206.
図3の実施形態において、オラクル社のオラクルアイデンティティマネージャ(Oracle Identity Manager)(「OIM」)コネクタ302およびオラクル社のオラクルアクセスマネージャ(Oracle Access Manager)(「OAM」)連携モジュール306は、オラクルIDM304の拡張モジュールとして実現される。コネクタは、システムに話しかける方法について物理的な認識があるモジュールである。OIMは、ユーザアイデンティティを管理するように構成されたアプリケーションである(たとえば、ユーザがアクセス権を持つべき対象とアクセス権を持つべきでない対象に基づいて異なるシステムのユーザアカウントを管理する)。OAMは、ウェブSSO、アイデンティコンテキスト、認証および認可、ポリシー管理、テスト、ロギング、監査などのアクセス管理機能を提供するセキュリティアプリケーションである。OAMはSAMLに対するビルトイン(built-in)サポートを有する。ユーザがIDCS202のアカウントを有する場合、OIMコネクタ302およびOAM連携306をオラクルIDM304とともに使用することにより、このアカウントを作成/削除し、このアカントからのアクセスを管理することができる。 In the embodiment of FIG. Implemented as an extension module. A connector is a module that has physical knowledge of how to talk to the system. OIM is an application configured to manage user identities (eg, manage user accounts for different systems based on what the user should and should not have access to). OAM is a security application that provides access management functions such as web SSO, identity context, authentication and authorization, policy management, testing, logging, and auditing. OAM has built-in support for SAML. If a user has an account with IDCS 202, OIM connector 302 and OAM integration 306 can be used with Oracle IDM 304 to create/delete this account and manage access from this account.
図4は、図2および図3と同一のコンポーネント202、206、208、210、212、214、216、218、220、222、224、226、234を含む実施形態の一例のブロック図400である。しかしながら、図4の実施形態において、IDCS202は、クラウドアイデンティをオンプレミスアプリケーション218に拡張するための機能を提供する。本実施形態は、オンプレミスアプリケーションおよび第三者アプリケーションを含むすべてのアプリケーションにまたがるアイデンティティのシームレスなビューを提供する。図4の実施形態において、SCIMアイデンティティバス234を用いることにより、IDCS202のデータを「クラウドキャッシュ」402と呼ばれるオンプレミスLDAPデータと同期させる。クラウドキャッシュ402は以下でより詳細に開示される。 FIG. 4 is a block diagram 400 of an example embodiment including the same components 202, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 234 as in FIGS. 2 and 3. . However, in the embodiment of FIG. 4, IDCS 202 provides functionality for extending cloud identities to on-premises applications 218. This embodiment provides a seamless view of identity across all applications, including on-premises and third-party applications. In the embodiment of FIG. 4, SCIM identity bus 234 is used to synchronize data in IDCS 202 with on-premises LDAP data, referred to as "cloud cache" 402. Cloud cache 402 is disclosed in more detail below.
一般的に、LDAPに基づいて通信するように構成されたアプリケーションは、LDAP接続を必要とする。このようなアプリケーションはLDAP接続をURLを用いて構築しないかもしれない(たとえばGoogle(登録商標)に接続する「www.google.com」とは違って)。なぜなら、LDAPはローカルネットワーク上になければならないからである。図4の実施形態において、LDAPベースのアプリケーション218は、クラウドキャッシュ402に接続し、クラウドキャッシュ402は、IDCS202に接続してから、要求されているデータをIDCS202から引出す。IDCS202とクラウドキャッシュ402との間の通信は、SCIMプロトコルに従って実現されてもよい。たとえば、クラウドキャッシュ402はSCIMバス234を用いてSCIM要求をIDCS202に送信し、それに対応するデータを受信してもよい。 Generally, applications configured to communicate based on LDAP require an LDAP connection. Such applications may not establish LDAP connections using URLs (unlike, for example, "www.google.com" which connects to Google). This is because LDAP must be on the local network. In the embodiment of FIG. 4, LDAP-based application 218 connects to cloud cache 402, which connects to IDCS 202 and then pulls the requested data from IDCS 202. Communication between IDCS 202 and cloud cache 402 may be accomplished according to the SCIM protocol. For example, cloud cache 402 may use SCIM bus 234 to send SCIM requests to IDCS 202 and receive corresponding data.
一般的に、あるアプリケーションの完全な実現は、コンシューマポータルを構築することと、外部ユーザ集団に対してマーケティングキャンペーンを実行することと、ウェブおよびモバイルチャネルをサポートすることと、ユーザ認証、セッション、ユーザプロファイル、ユーザグループ、アプリケーションロール、パスワードポリシー、セルフサービス/登録、社会的統合、アイデンティ連携などを処理することとを含む。一般的に、アプリケーションの開発者はアイデンティティ/セキュリティの専門家ではない。このため、オンデマンドのアイデンティティ管理サービスが望ましいのである。 A complete implementation of an application typically involves building a consumer portal, running marketing campaigns to external user populations, supporting web and mobile channels, and managing user authentication, sessions, and This includes handling profiles, user groups, application roles, password policies, self-service/registration, social integration, identity federation, etc. Application developers are typically not identity/security experts. This is why on-demand identity management services are desirable.
図5は、図2~図4と同一のコンポーネント202、220、222、224、226、234、402を含む実施形態の一例のブロック図500である。しかしながら、図5の実施形態において、IDCS202は、オンデマンドで安全なアイデンティティ管理を提供する。本実施形態は、オンデマンドの、IDCS202のアイデンティサービスとの統合を提供する(たとえばOpenID Connect、OAuth2、SAML2、またはSCIMなどの標準に基づいて)。(オンプレミスであってもパブリッククラウド内またはプライベートクラウド内にあってもよい)アプリケーション505は、IDCS202のアイデンティティサービスAPI504をコールしてもよい。IDCS202が提供するサービスは、たとえば、セルフサービス登録506、パスワード管理508、ユーザプロファイル管理510、ユーザ認証512、トークン管理514、社会的統合516などを含み得る。 FIG. 5 is a block diagram 500 of an example embodiment that includes the same components 202, 220, 222, 224, 226, 234, 402 as in FIGS. 2-4. However, in the embodiment of FIG. 5, IDCS 202 provides secure identity management on demand. The present embodiment provides on-demand integration of IDCS 202 with identity services (eg, based on standards such as OpenID Connect, OAuth2, SAML2, or SCIM). An application 505 (which may be on-premises or in a public or private cloud) may call an identity service API 504 of the IDCS 202. Services provided by IDCS 202 may include, for example, self-service registration 506, password management 508, user profile management 510, user authentication 512, token management 514, social integration 516, and the like.
本実施形態において、SCIMアイデンティティバス234を用いることにより、IDCS202内のデータを、オンプレミスのLDAPクラウドキャッシュ402内のデータと同期させる。さらに、ウェブサーバ/プロキシ(たとえばNGINX、Apacheなど)上で実行している「クラウドゲート」502を、アプリケーション505が用いて、IDCS202からユーザウェブSSOおよびREST APIセキュリティを取得してもよい。クラウドゲート502は、クライアントアプリケーションが有効なアクセストークンを提供すること、および/またはユーザがSSOセッション構築のために正常に認証することを保証することによって、マルチテナントIDCSマイクロサービスへのアクセスを安全なものするコンポーネントである。クラウドゲート502は以下でさらに開示される。クラウドゲート502(webgate/webagentと同様の実施ポイント)は、サポートされているウェブサーバの背後で実行されているアプリケーションがSSOに参加することを可能にする。 In this embodiment, SCIM identity bus 234 is used to synchronize data in IDCS 202 with data in on-premises LDAP cloud cache 402. Additionally, “Cloud Gate” 502 running on a web server/proxy (eg, NGINX, Apache, etc.) may be used by applications 505 to obtain user web SSO and REST API security from IDCS 202. Cloud Gate 502 securely provides access to multi-tenant IDCS microservices by ensuring that the client application provides a valid access token and/or that the user successfully authenticates for SSO session establishment. It is a component that does something. Cloud Gate 502 is further disclosed below. Cloud Gate 502 (an enforcement point similar to webgate/webagent) allows applications running behind supported web servers to participate in SSO.
一実施形態は、SSOおよびクラウドSSO機能を提供する。多くの組織において、オンプレミスIAMおよびIDCSいずれにおいても一般的なエントリポイントはSSOである。クラウドSSOは、ユーザが、1回のユーザサイン・インで複数のクラウドリソースにアクセスできるようにする。組織はそのオンプレミスアイデンティティの連携を希望することが多い。したがって、実施形態は、オープン標準を利用することで、既存のSSOとの統合を実現することにより、投資の節約と拡大を可能にする(たとえば、アイデンティティクラウドサービス手法への最終的な完全移行まで)。 One embodiment provides SSO and cloud SSO functionality. For many organizations, SSO is a common entry point for both on-premises IAM and IDCS. Cloud SSO allows users to access multiple cloud resources with a single user sign-in. Organizations often want to federate their on-premises identities. Thus, by leveraging open standards, embodiments enable investment savings and scaling by enabling integration with existing SSO (e.g., up to an eventual complete migration to an identity cloud service approach). ).
一実施形態は以下の機能を提供し得る。
・アイデンティティストアを維持することにより、既に認可されているユーザアカウント、所有権、アクセス、および許可を追跡する。
・ワークフローとの統合により、アプリケーションのアクセスに必要なさまざまな承認(たとえば管理、IT、人的資源、法律、およびコンプライアンス)を簡単にする。
・選択的装置(たとえばモバイルおよびパーソナルコンピュータ(「PC」))に対するSaaSユーザアカウントをプロビジョニングする。ユーザポータルへのアクセスは、多数のプライベートおよびパブリッククラウドリソースを含む。
・規則および現在の職責へのコンプライアンスのための定期的な管理立証を容易にする。
One embodiment may provide the following functionality.
- Track already authorized user accounts, ownership, access, and permissions by maintaining an identity store.
- Integration with workflows to facilitate various approvals (e.g., administrative, IT, human resources, legal, and compliance) required for application access.
- Provision SaaS user accounts for selective devices (e.g. mobile and personal computers ("PCs")). Access to the user portal includes numerous private and public cloud resources.
- Facilitates regular management verification of compliance with regulations and current job responsibilities.
これらの機能に加えて、実施形態はさらに、
・クラウドアプリケーションにおけるアカウントライフサイクルの管理のためのクラウドアカウントのプロビジョニング、
・よりロバストなマルチファクタ認証(multifactor authentication)(「MFA」)の統合、
・拡張モバイルセキュリティ機能、および
・動的認証オプション
を提供し得る。
In addition to these features, embodiments further include:
・Cloud account provisioning for account lifecycle management in cloud applications;
・Integration of more robust multifactor authentication (“MFA”);
- May provide enhanced mobile security features, and - Dynamic authentication options.
一実施形態は、適応認証およびMFAを提供する。一般的に、パスワードおよび確認のための質問は、不十分でありフィッシングなどのよくある攻撃に晒され易いとみなされてきた。現代の大半の企業体は、リスクを下げるために何らかの形態のMFAに注目している。しかしながら、ソリューションが首尾よくデプロイされるためには、ソリューションをエンドユーザが簡単にプロビジョニング、維持、および理解する必要がある。なぜなら、エンドユーザは通常、そのデジタル体験を妨害するものに対し、それが何であろうと抵抗するからである。企業は、MFAを、シームレスなユーザアクセス体験のほぼトランスペアレントなコンポーネントにしつつ、私物の業務利用(bring your own device)(「BYOD」)、社会的アイデンティティ、遠隔ユーザ、顧客、および契約者を安全に組込む方法を探している。MFAのデプロイにおいて、OAuthおよびOpenID Connectなどの産業標準は、既存のマルチファクタソリューションの統合と、より新しい適応認証技術の導入とを保証するのに不可欠である。したがって、実施形態は、動的(または適応)認証を、利用できる情報(すなわちIPアドレス、場所、時刻、およびバイオメトリクス)の評価として定義することにより、ユーザセッション開始後のアイデンティを証明する。適切な標準(たとえばオープン認証(open authentication)(「OATH」)および高速オンライン認証(fast identity online)(「FIDO」)の統合と、拡張可能なアイデンティティ管理フレームワークとを用いて、実施形態は、エンド・ツー・エンドの安全なIAMデプロイの一部としてIT組織内で簡単に採用、アップグレード、および統合できるMFAソリューションを提供する。MFAおよび適応ポリシーを検討する場合、組織は、ハイブリッドのIDCSおよびオンプレミスIAM環境においてシステム間の統合を必要とするオンプレミスリソースおよびクラウドリソースにわたって一貫したポリシーを実現しなければならない。 One embodiment provides adaptive authentication and MFA. Passwords and verification questions have generally been considered insufficient and susceptible to common attacks such as phishing. Most modern corporate entities are turning to some form of MFA to reduce risk. However, for a solution to be successfully deployed, it needs to be easily provisioned, maintained, and understood by end users. This is because end users typically resist anything that interferes with their digital experience. Enterprises can make MFA a near-transparent component of a seamless user access experience while securing bring your own device (“BYOD”), social identity, remote users, customers, and subscribers. I'm looking for a way to incorporate it. In deploying MFA, industry standards such as OAuth and OpenID Connect are essential to ensure the integration of existing multi-factor solutions and the introduction of newer adaptive authentication technologies. Accordingly, embodiments define dynamic (or adaptive) authentication as the evaluation of available information (i.e., IP address, location, time, and biometrics) to prove identity after a user session begins. Using appropriate standards (e.g., open authentication ("OATH") and fast online authentication ("FIDO") integration and an extensible identity management framework, embodiments can: Provides an MFA solution that can be easily adopted, upgraded, and integrated within IT organizations as part of an end-to-end secure IAM deployment.When considering MFA and adaptive policies, organizations can choose between hybrid IDCS and on-premises Consistent policies must be achieved across on-premises and cloud resources requiring integration between systems in an IAM environment.
一実施形態は、ユーザプロビジョニングおよび証明を提供する。一般的に、IAMソリューションの基本機能は、ユーザプロビジョニングライフサイクル全体を可能にしかつサポートすることである。これは、ユーザに対し、組織内におけるそのアイデンティティおよびロール(role)に適したアプリケーションアクセスを与えること(たとえば、ユーザのロールまたはそのロールの中で使用されるタスクもしくはアプリケーションは時間の経過に伴って変化するので)と、ユーザが組織から脱退するときに必要な、素早いユーザデプロビジョニングとを含む。これは、さまざまなコンプライアンス条件を満たすために重要であるだけでなく、不適切なインサイダーアクセスがセキュリティ侵害および攻撃の主要な原因であるので、重要である。アイデンティティクラウドソリューションにおける、自動化されたユーザプロビジョニング機能は、それ自身の権利において重要になり得るだけでなく、ハイブリッドIAMソリューションの一部としても重要であり、したがって、IDCSプロビジョニングは、企業が縮小、拡大、合併する、または既存のシステムをIaaS/PaaS/SaaS環境と統合しようとする場合、移行時において、オンプレミスソリューションよりも高い柔軟性を提供し得る。IDCS手法は、一度限りのアップグレードにおいて時間と労力を節約することができ、必要な部門、事業部、およびシステムの適切な統合を保証する。企業ではこの技術をスケーリングする必要性が密かに発生することが多く、企業体系全体にスケーラブルなIDCS機能を迅速に提供することは、柔軟性、コスト、および制御の点で利益をもたらし得る。 One embodiment provides user provisioning and certification. Generally, the basic functionality of an IAM solution is to enable and support the entire user provisioning lifecycle. This means giving users application access appropriate to their identity and role within the organization (e.g., the user's role or the tasks or applications used within that role change over time). (as users change) and the rapid user deprovisioning required when a user leaves an organization. This is important not only to meet various compliance requirements, but also because inappropriate insider access is a major cause of security breaches and attacks. Automated user provisioning capabilities in an identity cloud solution can be important not only in its own right, but also as part of a hybrid IAM solution, and therefore IDCS provisioning can be used as an enterprise to downsize, expand, If you are looking to merge or integrate existing systems with an IaaS/PaaS/SaaS environment, it may offer more flexibility than on-premises solutions during migration. The IDCS approach can save time and effort in one-time upgrades and ensures proper integration of necessary departments, business units, and systems. Enterprises often have a silent need to scale this technology, and rapidly delivering scalable IDCS functionality across an enterprise system can provide benefits in terms of flexibility, cost, and control.
一般的に、被雇用者は、長年にわたり、職種の変化に応じて追加の権限が付与される(すなわち「権限のクリープ」)。規制が緩やかな企業は一般的に「立証」プロセスが欠落している。このプロセスは、企業の被雇用者の権限(たとえばネットワーク、サーバ、アプリケーション、およびデータへのアクセス権)を定期的に監査して、過剰な権限が付与されたアカウントの原因となる権限のクリープを止めるまたは減速させる管理者を必要とする。したがって、一実施形態は、定期的に実施される(少なくとも1年に一度)立証プロセスを提供し得る。さらに、合併および買収に伴い、これらのツールおよびサービスの必要性は急激に増す。ユーザが、SaaSシステムに存在する、オンプレミス上に存在する、異なる部門にまたがっている、および/またはデプロビジョニングされているもしくは再度割り当てられているからである。クラウドへの動きはこの状況をさらに混乱させる可能性があり、事態は、既存の手動管理されることが多い証明方法を超えて急速にエスカレートする可能性がある。したがって、一実施形態は、これらの機能を自動化し、高度な分析を、ユーザプロファイル、アクセス履歴、プロビジョニング/デプロビジョニング、および細分化された権利に適用する。 Typically, employees are granted additional privileges over the years as their job changes (i.e., "authority creep"). Companies that are less regulated generally lack a "proof" process. This process involves regularly auditing the privileges of a company's employees (e.g., access to networks, servers, applications, and data) to prevent privilege creep that results in overprivileged accounts. Requires management to stop or slow down. Accordingly, one embodiment may provide for a verification process that is performed periodically (at least once a year). Additionally, with mergers and acquisitions, the need for these tools and services increases exponentially. This is because the users are in a SaaS system, on-premises, across different departments, and/or have been deprovisioned or reassigned. The move to the cloud could further disrupt this situation, and things could quickly escalate beyond existing, often manually managed certification methods. Accordingly, one embodiment automates these functions and applies advanced analytics to user profiles, access history, provisioning/deprovisioning, and disaggregated rights.
一実施形態はアイデンティティ分析を提供する。一般的に、アイデンティティ分析を、包括的な証明および立証のためにIAMエンジンと統合する機能は、組織のリスクプロファイルを安全にするためには不可欠となる可能性がある。適切にデプロイされたアイデンティティ分析は、内部ポリシー全体の施行を要求する可能性がある。クラウドおよびオンプレミス全体で統一された単一管理ビューを提供するアイデンティティ分析は、予防的ガバナンス、リスク、およびコンプライアンス(governance, risk, and compliance)(「GRC」)企業環境における必要性が高く、リスクを低減しコンプライアンス規則を満たすための閉ループプロセスを提供するのに役立ち得る。したがって、一実施形態はアイデンティティ分析を提供する。アイデンティティ分析は、管理者、幹部職員、および監査役が必要とするレポートおよび分析のために、クライアントが簡単にカスタマイズすることで特定の産業条件および政府規則に適合する。 One embodiment provides identity analysis. In general, the ability to integrate identity analytics with IAM engines for comprehensive attestation and proofing can be essential to securing an organization's risk profile. Properly deployed identity analytics can require enforcement of entire internal policies. Identity analytics, which provides a unified, single management view across cloud and on-premises, is highly needed in proactive governance, risk, and compliance (“GRC”) enterprise environments. can help provide a closed-loop process to reduce and meet compliance regulations. Accordingly, one embodiment provides identity analysis. Identity Analytics can be easily customized by clients to meet specific industry conditions and government regulations for the reporting and analysis required by managers, executives, and auditors.
一実施形態は、セルフサービスおよびアクセス要求機能を提供することにより、エンドユーザの体験および効率を改善するとともに、ヘルプデスクコールに要するコストを低減する。一般的に、多数の企業はその従業員のためにオンプレミスのセルフサービスアクセス要求をデプロイするが、多くは、これらのシステムを正式な企業の壁の外側まで適切に拡張していない。従業員の用途の範囲外の、ポジティブなデジタル顧客体験が、ビジネスの信頼性を高め最終的には収入の増加に貢献し、企業は、顧客ヘルプデスクコールを減じるだけでなく顧客の満足度を高める。したがって、一実施形態は、オープン標準に基づいておりかつ必要に応じて既存のアクセス制御ソフトウェアおよびMFAメカニズムとシームレスに統合される、アイデンティティクラウドサービス環境を提供する。SaaS配信モデルは、以前はシステムのアップグレードおよびメンテナンスに費やされていた時間と労力を省き、IT専門スタッフを解放してより中心的なビジネスアプリケーションに集中できるようにする。 One embodiment improves end user experience and efficiency while reducing the cost of help desk calls by providing self-service and access request functionality. Although many companies typically deploy on-premises self-service access requests for their employees, many do not adequately extend these systems outside of the formal corporate walls. A positive digital customer experience outside of employee usage increases business confidence and ultimately contributes to increased revenue, allowing companies to not only reduce customer help desk calls but also increase customer satisfaction. enhance Accordingly, one embodiment provides an identity cloud service environment that is based on open standards and seamlessly integrates with existing access control software and MFA mechanisms as required. The SaaS delivery model eliminates the time and effort previously spent on system upgrades and maintenance, freeing up IT professional staff to focus on more core business applications.
一実施形態は、特権アカウント管理(privileged account management)(「PAM」)を提供する。一般的に、すべての組織は、SaaS、PaaS、IaaSまたはオンプレミスアプリケーションいずれを使用しても、システムアドミニストレータ、幹部職員、人事担当役員、契約者、システムインテグレータなどのスーパーユーザのアクセスクレデンシャルを用いたインサイダーによる特権アカウントの不正使用に弱い。加えて、外部の脅威は一般的に、先ず低レベルユーザアカウントを侵害し、最終的には企業システム内の特権ユーザアクセス制御に到達してこれを利用する。したがって、一実施形態は、PAMを提供することにより、このような不正なインサイダーによるアカウントの使用を防止する。PAMソリューションの主要コンポーネントはパスワードボールト(password vault)であり、これはさまざまなやり方で供給し得る。たとえば、企業サーバ上にインストールされるソフトウェアとして、これも企業サーバ上の仮想アプライアンスとして、パッケージングされたハードウェア/ソフトウェアアプライアンスとして、または、クラウドサービスの一部として、さまざまなやり方で供給し得る。PAM機能は、エンベロープ内で保持されサインインおよびサイン・アウトのためのマニフェストで定期的に変更されるパスワードを格納するために使用される物理的な安全場所と同様である。一実施形態は、パスワードのチェックアウトだけでなく、タイムリミットの設定、強制的な期間変更、自動的なチェックアウトの追跡、およびすべてのアクティビティに関する報告を、可能にする。一実施形態は、要求されたリソースに、ユーザがパスワードを知らない状態で、直接接続する方法を提供する。この機能はまた、セッション管理およびその他の機能の方法に道を開く。 One embodiment provides privileged account management (“PAM”). Typically, all organizations, whether using SaaS, PaaS, IaaS, or on-premises applications, use insider access credentials for system administrators, executive staff, human resources executives, contractors, system integrators, and other superusers. Vulnerable to unauthorized use of privileged accounts by In addition, external threats typically first compromise low-level user accounts and eventually reach and exploit privileged user access controls within enterprise systems. Accordingly, one embodiment prevents account use by such unauthorized insiders by providing PAM. A key component of a PAM solution is a password vault, which can be provisioned in a variety of ways. It may be provided in a variety of ways, for example, as software installed on a corporate server, as a virtual appliance also on a corporate server, as a packaged hardware/software appliance, or as part of a cloud service. The PAM function is similar to a physical secure location used to store passwords that are kept in an envelope and changed periodically in the manifest for sign-in and sign-out. One embodiment allows for password checkouts as well as setting time limits, forced period changes, automatic checkout tracking, and reporting on all activity. One embodiment provides a way to connect directly to a requested resource without the user knowing the password. This feature also paves the way for session management and other features.
一般的に、ほとんどのクラウドサービスは、APIおよび管理インターフェイスを利用している。これらは、侵入者がセキュリティを迂回する機会を与える。したがって、一実施形態は、PAMの実施におけるこれらの欠陥を埋める。クラウドへの移行によってPAMに新たな課題が発生するからである。小規模から中規模の多くのビジネスは現在自身のSaaSシステム(たとえばOffice 365)を管理しているが、大企業は自身のSaaSおよびIaaSサービスの回転数を上げる個々のビジネス単位を持つことが増えている。これらの顧客は、PAM機能がアイデンティティクラウドサービスソリューションに含まれるかまたはそのIaaS/PaaSプロバイダから得られるが、この責務を扱った経験がほとんどない。加えて、場合によっては、多くの異なる地理的に分散したビジネス単位が、同じSaaSアプリケーションの管理責任を分離しようとする。したがって、一実施形態は、こういった状況にある顧客が、既存のPAMをアイデンティティクラウドサービスの全体的なアイデンティティフレームワークの中にリンクさせ、より高い安全性とコンプライアンスに向けて、ビジネスニーズが要求するクラウドロード条件に合わせて確実に調整することを、可能にする。 Generally, most cloud services utilize APIs and management interfaces. These provide an opportunity for intruders to bypass security. Accordingly, one embodiment fills these deficiencies in the implementation of PAM. This is because moving to the cloud creates new challenges for PAM. While many small to medium-sized businesses now manage their own SaaS systems (e.g. Office 365), larger enterprises increasingly have individual business units that rotate their own SaaS and IaaS services. ing. These customers have little experience handling this responsibility, although PAM functionality is included in their identity cloud service solution or obtained from their IaaS/PaaS provider. Additionally, in some cases, many different geographically dispersed business units seek to separate management responsibilities for the same SaaS application. Accordingly, one embodiment allows customers in these situations to link their existing PAM into the overall identity framework of the identity cloud service and provide a platform for greater security and compliance as business needs require. This makes it possible to reliably adjust the cloud loading conditions.
APIプラットフォーム
実施形態が提供するAPIプラットフォームは、機能のコレクションをサービスとしてエクスポーズする。APIはマイクロサービスに集約され、各マイクロサービスは、APIのうちの1つ以上をエクスポーズする。すなわち、各マイクロサービスは異なる種類のAPIをエクスポーズし得る。一実施形態において、各マイクロサービスはそのAPIを通してしか通信しない。一実施形態において、各APIはマイクロサービスであってもよい。一実施形態において、複数のAPIが1つのサービスに、このサービスが提供するターゲット機能に基づいて集約される(たとえばOAuth、SAML、Adminなど)。結果として、同様のAPIは別々のランタイムプロセスとしてエクスポーズされない。APIは、IDCSが提供するサービスを使用するためにサービス消費者が利用できるようにされたものである。
An API platform provided by an API platform embodiment exposes a collection of functionality as a service. APIs are aggregated into microservices, and each microservice exposes one or more of the APIs. That is, each microservice may expose different types of APIs. In one embodiment, each microservice only communicates through its API. In one embodiment, each API may be a microservice. In one embodiment, multiple APIs are aggregated into one service based on the target functionality provided by the service (eg, OAuth, SAML, Admin, etc.). As a result, similar APIs are not exposed as separate runtime processes. The API is made available to service consumers to use the services provided by IDCS.
一般的に、IDCSのウェブ環境において、URLは、3つの部分として、ホストと、マイクロサービスと、リソースとを含む(たとえばホスト/マイクロサービス/リソース)。一実施形態において、マイクロサービスは、特定のURLプレフィックスを有することを特徴とし(たとえば「host/oauth/v1」)、実際のマイクロサービスは「oauth/v1」である。「oauth/v1」の下で複数のAPIが存在し、たとえば、トークン(token)を要求するためのAPI:「host/oauth/v1/token」、ユーザを認可する(authorize)ためのAPI:「host/oauth/v1/authorize」などである。すなわち、URLはマイクロサービスを実現し、URLのリソース部分はAPIを実現する。したがって、同じマイクロサービスの下で複数のAPIが集約される。一実施形態において、URLのホスト部分はテナントを特定する(たとえば、https://tenant3.identity.oraclecloud.com:/oauth/v1/token)。 Generally, in the IDCS web environment, a URL includes three parts: a host, a microservice, and a resource (eg, host/microservice/resource). In one embodiment, a microservice is characterized as having a particular URL prefix (eg, "host/oauth/v1"), and the actual microservice is "oauth/v1". There are multiple APIs under "oauth/v1", for example, API for requesting a token: "host/oauth/v1/token", API for authorizing a user: " host/oauth/v1/authorize". That is, the URL implements a microservice, and the resource part of the URL implements an API. Therefore, multiple APIs are aggregated under the same microservice. In one embodiment, the host portion of the URL identifies the tenant (eg, https://tenant3.identity.oraclecloud.com:/oauth/v1/token).
必要なエンドポイントを有する外部サービスと統合するアプリケーションを構成し当該構成を最新状態に保つことは、一般的に難題である。この難題を克服するために、実施形態は、パブリックディスカバリAPIを周知の場所にエクスポーズし、そこから、アプリケーションは、ADCS APIを消費するために必要なIDCSに関する情報を発見する(discover)ことができる。一実施形態において、2つのディスカバリ文献がサポートされ、それらは、IDCS構成(たとえば、<IDCS-URL>/.well-known/idcs-configurationのIDCS、SAML、SCIM、OAuth、およびOpenID Connect構成を含む)と、(たとえば<IDCS-URL>/.well-known/openid-configurationの)産業標準OpenID Connect構成とである。アプリケーションは、単一のIDCS URLで構成されることにより、ディスカバリ文献を取り出すことができる。 Configuring applications that integrate with external services with the necessary endpoints and keeping the configuration up to date is typically a challenge. To overcome this challenge, embodiments expose a public discovery API to a well-known location from which applications can discover information about the IDCS needed to consume the ADCS API. can. In one embodiment, two discovery documents are supported, including IDCS configuration (e.g., IDCS, SAML, SCIM, OAuth, and OpenID Connect configuration at <IDCS-URL>/.well-known/idcs-configuration). ) and the industry standard OpenID Connect configuration (eg, <IDCS-URL>/.well-known/openid-configuration). Applications can retrieve discovery documents by configuring a single IDCS URL.
図6は、一実施形態におけるIDCSのシステムビュー600を提供するブロック部である。図6において、さまざまなアプリケーション/サービス602のうちのいずれも、IDCS APIに対してHTTPコールを行うことにより、IDCSサービスを使用することができる。このようなアプリケーション/サービス602の例は、ウェブアプリケーション、ネイティブアプリケーション(たとえばWindows(登録商標)アプリケーション、iOS(登録商標)アプリケーション、アンドロイド(登録商標)アプリケーションなど、特定のオペレーティングシステム上で走るように構築されたアプリケーション)、ウェブサービス、顧客アプリケーション、パートナーアプリケーション、または、サービスとしてのソフトウェア(Software as a Service)(「SaaS」)、PaaS、およびサービスとしてのインフラストラクチャ(Infrastructure as a Service)(「IaaS」)など、パブリッククラウドによって提供されるサービスである。 FIG. 6 is a block diagram that provides a system view 600 of IDCS in one embodiment. In FIG. 6, any of the various applications/services 602 can use IDCS services by making HTTP calls to the IDCS API. Examples of such applications/services 602 include web applications, native applications (e.g., Windows applications, iOS applications, Android applications, etc.) built to run on a particular operating system. applications), web services, customer applications, partner applications, or Software as a Service (“SaaS”), PaaS, and Infrastructure as a Service (“IaaS”). ) and other services provided by public clouds.
一実施形態において、IDCSサービスを要求するアプリケーション/サービス602のHTTP要求は、オラクルパブリッククラウドBIG-IPアプライアンス604およびIDCS BIG-IPアプライアンス606(またはロードバランサなどの同様の技術、または、適切なセキュリティルールを実現してトラフィックを保護するサービスとしてのクラウドロードバランサ(Cloud Load Balancer as a Service)(「LBaaS」)と呼ばれているコンポーネント)を通る。しかしながら、この要求はどのようなやり方で受信されてもよい。IDCS BIG-IPアプライアンス606(または、適用できる場合は、ロードバランサまたはクラウドLBaaSなどの同様の技術)において、クラウドプロビジョニングエンジン608は、テナントおよびサービスの調整を実行する。一実施形態において、クラウドプロビジョニングエンジン608は、クラウドにオンボードされている新たなテナントに対応付けられた内部セキュリティアーティファクト、または、顧客が購入した新たなサービスインスタンスを管理する。 In one embodiment, an application/service 602 HTTP request requesting an IDCS service is routed to the Oracle Public Cloud BIG-IP Appliance 604 and the IDCS BIG-IP Appliance 606 (or similar technology such as a load balancer, or appropriate security rules). A component called a Cloud Load Balancer as a Service (“LBaaS”) that protects traffic through a Cloud Load Balancer as a Service (LBaaS). However, this request may be received in any manner. At the IDCS BIG-IP appliance 606 (or similar technology, such as a load balancer or cloud LBaaS, if applicable), a cloud provisioning engine 608 performs tenant and service coordination. In one embodiment, the cloud provisioning engine 608 manages internal security artifacts associated with new tenants being onboarded to the cloud or new service instances purchased by the customer.
このHTTP要求は次にIDCSウェブルーティング層610によって受信される。このルーティング層は、セキュリティゲート(すなわちクラウドゲート)を実現し、サービスルーティングならびにマイクロサービス登録および発見612を提供する。要求されるサービスに応じて、HTTP要求は、IDCS中間層614のIDCSマイクロサービスに転送される。IDCSマイクロサービスは、外部および内部HTTP要求を処理する。IDCSマイクロサービスは、プラットフォームサービスおよびインフラストラクチャサービスを実現する。IDCSプラットフォームサービスは、IDCSのビジネスを実現する、別々にデプロイされたJavaベースのランタイムサービスである。IDCSインフラストラクチャサービスは、IDCSに対してインフラストラクチャサポートを提供する、別々にデプロイされたランタイムサービスである。IDCSはさらに、IDCSサービスによって使用される共有ライブラリとしてパッケージングされた共通コードであるインフラストラクチャライブラリと、共有ライブラリとを含む。インフラストラクチャサービスおよびライブラリは、プラットフォームサービスがその機能を実現するために要求するサポート機能を提供する。 This HTTP request is then received by IDCS web routing layer 610. This routing layer implements a security gate (ie, cloud gate) and provides service routing and microservice registration and discovery 612. Depending on the requested service, the HTTP request is forwarded to IDCS microservices in IDCS middle layer 614. IDCS microservices handle external and internal HTTP requests. IDCS microservices enable platform and infrastructure services. IDCS Platform Services are separately deployed Java-based runtime services that enable the business of IDCS. IDCS infrastructure services are separately deployed runtime services that provide infrastructure support for IDCS. IDCS further includes infrastructure libraries, which are common code packaged as shared libraries used by IDCS services, and shared libraries. Infrastructure services and libraries provide the supporting functionality required by platform services to achieve their functionality.
プラットフォームサービス
一実施形態において、IDCSは標準認証プロトコルをサポートし、したがって、IDCSマイクロサービスは、OpenID Connect、OAuth、SAML2、クロスドメインアイデンティティ管理のためのシステム(System for Cross-domain Identity Management++:「SCIM++」)などのプラットフォームサービスを含む。
In one embodiment of the platform service , IDCS supports standard authentication protocols and, therefore, IDCS microservices support OpenID Connect, OAuth, SAML2, System for Cross-domain Identity Management++ ("SCIM++"). ) and other platform services.
OpenID Connectプラットフォームサービスは、標準OpenID Connectログイン/ログアウトフローを実現する。対話型のウェブベースおよびネイティブアプリケーションは、標準のブラウザベースのOpenID Connectフローを推進することによりユーザ認証を要求し、ユーザの認証されたアイデンティティを伝達するJavaScript(登録商標)オブジェクト表記法(JavaScript Object Notation(「JSON」)ウェブトークン(Web Token「JWT」)である標準アイデンティティトークンを受信する。内部において、ランタイム認証モデルはステートレスであり、ユーザの認証/セッション状態をホストHTTPクッキー(JWTアイデンティティトークンを含む)の形態で維持する。OpenID Connectプロトコルを介して開始された認証対話は、ローカルおよび連携ログインのためにユーザのログイン/ログアウトセレモニーを実現する信頼できるSSOサービスに委任される。この機能のさらなる詳細は以下において図10および図11を参照しながら開示される。一実施形態において、OpenID Connect機能は、たとえばOpenID Foundation標準に従って実現される。 The OpenID Connect platform service implements the standard OpenID Connect login/logout flow. Interactive web-based and native applications require user authentication by promoting the standard browser-based OpenID Connect flow and use JavaScript Object Notation to convey the user's authenticated identity. ("JSON") Web Token ("JWT"). Under the hood, the runtime authentication model is stateless and hosts the user's authentication/session state using an HTTP cookie (including the JWT identity token). ). Authentication interactions initiated via the OpenID Connect protocol are delegated to a trusted SSO service that fulfills user login/logout ceremonies for local and federated logins.Further details on this feature is disclosed below with reference to Figures 10 and 11. In one embodiment, the OpenID Connect functionality is implemented, for example, according to the OpenID Foundation standard.
OAuth2プラットフォームサービスは、トークン認可サービスを提供する。これは、ユーザの権利を伝達するアクセストークンを作成し検証してAPIコールを行うためのリッチなAPIインフラストラクチャを提供する。これは、ある範囲の有用なトークン付与タイプをサポートし、顧客がクライアントをそのサービスに安全に接続することを可能にする。これは、標準の2者間および3者間OAuth2トークン付与タイプを実現する。OpenID Connect(「OIDC」)をサポートすることにより、コンプライアントなアプリケーション(OIDCリレーパーティ(「RP」))が、アイデンティティプロバイダとしてのIDCSと統合されることを可能にする(OIDC OpenIDプロバイダ(「OP」)。同様に、OIDC RPとしてのIDCSをソーシャルOIDC OP(たとえばFacebook(登録商標)、Google(登録商標)など)と統合することにより、顧客は、アプリケーションに対する社会的アイデンティのポリシーベースアクセスを可能にする。一実施形態において、OAuth機能は、たとえば、インターネットエンジニアリングタスクフォース(Internet Engineering Task Force)(「IETF」)、コメント要求(Request for Comments)(「RFC」)6749に従って実現される。 OAuth2 platform services provide token authorization services. It provides a rich API infrastructure for creating and validating access tokens that convey user rights and making API calls. It supports a range of useful token grant types and allows customers to securely connect clients to their services. This implements standard two-party and three-party OAuth2 token grant types. Support for OpenID Connect (“OIDC”) enables compliant applications (OIDC Relay Party (“RP”)) to integrate with IDCS as an identity provider (OIDC OpenID Provider (“OP Similarly, by integrating IDCS as an OIDC RP with social OIDC OPs (e.g., Facebook, Google, etc.), customers can enable policy-based access of social identities to applications. In one embodiment, OAuth functionality is implemented in accordance with, for example, Internet Engineering Task Force (“IETF”) Request for Comments (“RFC”) 6749.
SAML2プラットフォームサービスは、アイデンティティ連携サービスを提供する。これは、顧客が、SAMLアイデンティティプロバイダ(identity provider)(「IDP」)およびSAMLサービスプロバイダ(service provider)(「SP」)関係モデルに基づいて、そのパートナーとの連携合意を設定することを可能にする。一実施形態において、SAML2プラットフォームサービスは、標準SAML2ブラウザポストログインおよびログアウトプロファイルを実現する。一実施形態において、SAML機能は、たとえばIETF、RFC7522に従って実現される。 SAML2 platform services provide identity federation services. This allows customers to set up collaboration agreements with their partners based on the SAML identity provider (“IDP”) and SAML service provider (“SP”) relationship model. do. In one embodiment, SAML2 platform services implement standard SAML2 browser post-login and logout profiles. In one embodiment, SAML functionality is implemented according to, for example, IETF, RFC 7522.
SCIMは、ユーザアイデンティ情報を、たとえばIETF、RFC 7642、7643、7644によって提供される、アイデンティティドメインまたは情報技術(「IT」)システム間でのユーザアイデンティティ情報の交換を自動化するためのオープン標準である。SCIM++プラットフォームサービスは、アイデンティティ管理サービスを提供し、顧客がIDCSのIDPフィーチャー(feature)にアクセスすることを可能にする。管理サービスは、アイデンティティライフサイクル、パスワード管理、グループ管理などをカバーするステートレスなRESTインターフェイス(すなわちAPI)のセットをエクスポーズし、ウェブアクセス可能なリソースのようなアーティファクトをエクスポーズする。 SCIM is an open standard for automating the exchange of user identity information between identity domains or information technology (“IT”) systems, such as provided by IETF, RFC 7642, 7643, 7644. be. The SCIM++ platform service provides identity management services and allows customers to access the IDP features of IDCS. The management service exposes a set of stateless REST interfaces (i.e., APIs) that cover identity lifecycle, password management, group management, etc., and exposes artifacts such as web-accessible resources.
すべてのIDCS構成アーティファクトはリソースであり、管理サービスのAPIは、IDCSリソース(たとえばユーザ、ロール、パスワードポリシー、アプリケーション、SAML/OIDCアイデンティティプロバイダ、SAMLサービスプロバイダ、キー、証明、通知テンプレートなど)の管理を可能にする。管理サービスは、SCIM標準を強化および拡張することにより、すべてのIDCSリソースに対する作成(Create)、読み取り(Read)、更新(Update)、削除(Delete)、および問合せ(Query)(「CRUDQ」)動作のためにスキーマベースのREST APIを実現する。加えて、IDCS自体の管理および構成に使用されるIDCSのすべての内部リソースは、SCIMベースのREST APIとしてエクスポーズされる。アイデンティティストア618へのアクセスはSCIM++APIに分離される。 All IDCS configuration artifacts are resources, and the Management Service API provides management services for IDCS resources (e.g. users, roles, password policies, applications, SAML/OIDC identity providers, SAML service providers, keys, certificates, notification templates, etc.). enable. The Management Service enhances and extends the SCIM standard to provide Create, Read, Update, Delete, and Query (“CRUDQ”) operations on all IDCS resources. Implements a schema-based REST API for In addition, all internal resources of IDCS used to manage and configure IDCS itself are exposed as SCIM-based REST APIs. Access to identity store 618 is separated to the SCIM++ API.
一実施形態において、たとえば、SCIM標準は、SCIM規格によって規定されるユーザおよびグループリソースを管理するように実現されるのに対し、SCIM++は、SCIM規格によって規定される言語を用いてさらに他のIDCS内部リソース(たとえばパスワードポリシー、ロール、設定など)をサポートするように構成される。 In one embodiment, for example, the SCIM standard is implemented to manage user and group resources defined by the SCIM standard, whereas SCIM++ is implemented to manage user and group resources defined by the SCIM standard, while SCIM++ uses the language defined by the SCIM standard to manage further IDCS Configured to support internal resources (e.g. password policies, roles, settings, etc.)
管理サービスは、SCIM2.0標準エンドポイントを、標準SCIM2.0コアスキーマと、必要に応じてスキーマ拡張とを用いてサポートする。加えて、管理サービスは、いくつかのSCIM2.0準拠エンドポイント拡張をサポートすることにより、その他のIDCリソースを、たとえばユーザ、グループ、アプリケーション、設定などを、管理する。管理サービスはまた、CRUDQ動作は実行しないがその代わりに機能サービスを、たとえば「UserPasswordGenerator」、「UserPasswordValidator」などを提供する、リモートプロシージャコールスタイル(remote procedure call-style)(「RPCスタイル」)RESTインターフェイスのセットをサポートする。 The management service supports SCIM 2.0 standard endpoints using the standard SCIM 2.0 core schema and optional schema extensions. In addition, the management service supports several SCIM 2.0 compliant endpoint extensions to manage other IDC resources, such as users, groups, applications, settings, etc. The management service also provides a remote procedure call-style ("RPC-style") REST interface that does not perform CRUDQ operations but instead provides functional services, such as "UserPasswordGenerator", "UserPasswordValidator", etc. supports a set of
IDCS管理APIは、OAuth2プロトコルを認証および認可に使用する。IDCSは、ウェブサーバ、モバイル、およびJavaScriptアプリケーションのためのシナリオといった共通のOAuth2シナリオをサポートする。IDCS APIへのアクセスはアクセストークンによって保護される。IDCS管理APIにアクセスするために、アプリケーションは、IDCS管理コンソールを通してOAuth2クライアントとしてまたはIDCSアプリケーションとして(この場合OAuth2クライアントは自動的に作成される)登録される必要があり、また、所望のIDCS管理ロールを与えられる必要がある。IDCS管理APIコールを行うとき、アプリケーションは先ず、IDCS OAuth2サービスにアクセストークンを要求する。このトークンを取得した後に、このアプリケーションはアクセストークンを、そこにHTTP認可ヘッダを含めて送信する。アプリケーションは、IDCS管理REST APIを直接使用することができる、または、IDCSJavaクライアントAPIライブラリを使用することができる。 The IDCS management API uses the OAuth2 protocol for authentication and authorization. IDCS supports common OAuth2 scenarios such as those for web servers, mobile, and JavaScript applications. Access to the IDCS API is protected by access tokens. In order to access the IDCS management API, an application must be registered as an OAuth2 client or as an IDCS application (in which case the OAuth2 client is automatically created) through the IDCS management console, and must have the desired IDCS management role. need to be given. When making an IDCS management API call, an application first requests an access token from the IDCS OAuth2 service. After obtaining this token, the application sends an access token with an HTTP authorization header included in it. Applications can use the IDCS management REST API directly or can use the IDCS Java client API library.
インフラストラクチャサービス
IDCSインフラストラクチャサービスは、IDCSプラットフォームサービスの機能をサポートする。これらのランタイムサービスは、(ユーザ通知、アプリケーション申込、およびデータベースに対する監査を非同期的に処理するための)イベント処理サービスと、(ジョブをスケジューリングして実行するため、たとえば、ユーザの介入が不要な長時間実行タスクを直ちに実行するまたは設定時間に実行するための)ジョブスケジューラサービスと、キャッシュ管理サービスと、(パブリッククラウドストレージサービスと統合するための)ストレージ管理サービスと、(レポートおよびダッシュボードを生成するための)レポートサービスと、(内部ユーザ認証およびSSOを管理するための)SSOサービスと、(異なる種類のユーザインターフェイス(user interface)(「UI」)クライアントをホストするための)ユーザインターフェイス(「UI」)サービスと、サービスマネージャサービスとを含む。サービスマネージャは、オラクルパブリッククラウドとIDCSとの間の内部インターフェイスである。サービスマネージャは、オラクルパブリッククラウドによって発行されたコマンドを管理し、このコマンドはIDCSによって実現される必要がある。たとえば、顧客が、何かを購入できる状態になる前にクラウドストア内のアカウントに対してサインアップした場合、クラウドは、テナントを作成することを依頼するための要求をIDCSに送信する。この場合、サービスマネージャは、IDCSがサポートするとクラウドが予測するクラウド固有の動作を実現する。
Infrastructure Services IDCS infrastructure services support the functionality of IDCS platform services. These runtime services include event processing services (for asynchronously processing user notifications, application subscriptions, and audits against databases) and event processing services (for scheduling and running jobs, for example, for long runs that do not require user intervention). A job scheduler service (to run timed tasks immediately or at set times), a cache management service (to integrate with public cloud storage services), and a storage management service (to generate reports and dashboards) reporting services (for managing internal user authentication and SSO); and reporting services (for managing internal user authentication and SSO); ”) service and a service manager service. Service Manager is the internal interface between Oracle Public Cloud and IDCS. The Service Manager manages commands issued by Oracle Public Cloud, which need to be fulfilled by IDCS. For example, if a customer signs up for an account in a cloud store before they are ready to purchase something, the cloud sends a request to IDCS to create a tenant. In this case, the service manager implements cloud-specific operations that the cloud expects the IDCS to support.
IDCSマイクロサービスは、ネットワークインターフェイスを通して別のIDCSマイクロサービスをコールしてもよい(すなわちHTTP要求)。 An IDCS microservice may call another IDCS microservice through a network interface (ie, an HTTP request).
一実施形態において、IDCSはまた、データベーススキーマを使用できるようにするスキーマサービス(またはパーシステンス(persistence)サービス)を提供し得る。スキーマサービスは、データベーススキーマを管理する責任をIDCSに委任することを可能にする。したがって、IDCSのユーザはデータベースを管理する必要がない。なぜなら、この機能を提供するIDCSサービスが存在するからである。たとえば、ユーザは、データベースを用いてテナントごとにスキーマをパーシストしてもよく、データベース内にスペースがなくなったときにはスキーマサービスが、ユーザがデータベースを自身で管理しなくてもよいように、別のデータベースを取得し上記空間を拡大するという機能を管理する。 In one embodiment, IDCS may also provide a schema service (or persistence service) that allows database schemas to be used. The Schema Service allows the responsibility of managing database schemas to be delegated to IDCS. Therefore, IDCS users do not need to manage a database. This is because IDCS services exist that provide this functionality. For example, a user might use a database to persist schemas on a per-tenant basis, and when the database runs out of space, the schema service can create another database so that the user does not have to manage the database himself. Manage the function of acquiring and expanding the above space.
IDCSはさらに、IDCSが必要とする/生成するデータリポジトリであるデータストアを含む。これは、(ユーザ、グループなどを格納する)アイデンティティストア618、(IDCSが自身を構成するために使用する構成データを格納する)グローバルデータベース620、(テナントごとにスキーマを分離し顧客ごとに顧客データを格納する)オペレーショナルスキーマ622、(監査データを格納する)監査スキーマ624、(キャッシュされたオブジェクトを格納することにより実施速度を高める)キャッシングクラスタ626などを含む。内部および外部のすべてのIDCSコンシューマは、標準ベースのプロトコルに従ってアイデンティティサービスと統合される。これにより、ドメインネームシステム(domain name system)(「DNS」)を用いて、どこに要求をルーティングすべきかを決定することができ、アプリケーションを消費することをアイデンティティサービスの内部実現を理解することから切離す。 The IDCS further includes a data store, which is a data repository that the IDCS requires/generates. This includes an identity store 618 (which stores users, groups, etc.), a global database 620 (which stores configuration data that IDCS uses to configure itself), and a global database 620 (which stores schemas for each tenant and customer data for each customer). an operational schema 622 (to store audit data), an audit schema 624 (to store audit data), a caching cluster 626 (to increase implementation speed by storing cached objects), and so on. All internal and external IDCS consumers are integrated with the identity service according to standards-based protocols. This allows the domain name system (“DNS”) to be used to determine where a request should be routed, removing consuming applications from understanding the internal implementation of the identity service. Let go.
リアルタイムおよびニア・リアルタイムタスク
IDCSは、要求されたサービスのタスクを、同期リアルタイムタスクと非同期ニア・リアルタイムタスクとに分離する。リアルタイムタスクは、ユーザが進むのに必要なオペレーションのみを含む。一実施形態において、リアルタイムタスクは、最少の遅延で実行されるタスクであり、ニア・リアルタイムタスクは、バックグラウンドにおいて、ユーザが待つことなく実行されるタスクである。一実施形態において、リアルタイムタスクは、実質的に遅延なしでまたはごくわずかな遅延で実行されるタスクであり、ユーザには、ほぼ瞬時に実行されているように見えるタスクである。
Real-time and near-real-time tasks IDCS separates the tasks of the requested service into synchronous real-time tasks and asynchronous near-real-time tasks. Real-time tasks include only the operations necessary for the user to proceed. In one embodiment, real-time tasks are tasks that run with minimal delay, and near-real-time tasks are tasks that run in the background without the user having to wait. In one embodiment, a real-time task is one that executes with substantially no or very little delay and appears to the user to be executed almost instantaneously.
リアルタイムタスクは、特定のアイデンティティサービスの主要なビジネス機能を実行する。たとえば、ログインサービスを要求するとき、アプリケーションは、メッセージを送信してユーザのクレデンシャルを認証しそれに対するセッションクッキーを取得する。ユーザが体験するのは、システムへのログインである。しかしながら、ユーザのログインに関しては、ユーザが誰であるかの検証、監査、通知の送信など、その他いくつかのタスクが実行されるであろう。したがって、クレデンシャルの検証は、ユーザがHTTPクッキーを与えられてセッションを開始するように、リアルタイムで実行されるタスクであるが、通知(たとえば電子メールを送信してアカウント作成を通知すること)、監査(たとえば追跡/記録)などに関連するタスクは、ユーザが最少の遅延で進むことができるよう非同期的で実行することができるニア・リアルタイムタスクである。 Real-time tasks perform the primary business functions of a particular identity service. For example, when requesting login services, an application sends a message to authenticate the user's credentials and obtain a session cookie for them. What the user experiences is logging into the system. However, several other tasks may be performed regarding a user's login, such as verifying who the user is, auditing, sending notifications, etc. Credential validation is thus a task performed in real-time, such as when a user is given an HTTP cookie to begin a session, but also when notifications (e.g. sending an email to notify account creation), audits, etc. Tasks related to (e.g., tracking/recording) etc. are near real-time tasks that can be performed asynchronously so that the user can proceed with minimal delay.
マイクロサービスを求めるHTTP要求が受信されると、対応するリアルタイムタスクが中間層のマイクロサービスによって実行され、必ずしもリアルタイム処理を受けない演算ロジック/イベントなどの残りのニア・リアルタイムタスクは、メッセージキュー628にオフロードされる。メッセージキュー628は、配信および処理が保証された状態でスケーラビリティが高い非同期イベント管理システム630をサポートする。したがって、特定の挙動は、フロントエンドからバックエンドにプッシュされることにより、IDCSが、応答時間のレイテンシを少なくすることにより、ハイレベルサービスを顧客に提供することを、可能にする。たとえば、ログインプロセスは、クレデンシャルの検証、ログレポートの提出、最後のログイン時間の更新などを含み得るが、これらのタスクは、メッセージキューにオフロードして、リアルタイムではなくニア・リアルタイムで実行することができる。 When an HTTP request for a microservice is received, the corresponding real-time task is executed by the middle-tier microservice, and the remaining near-real-time tasks, such as computational logic/events that do not necessarily undergo real-time processing, are placed in the message queue 628. Offloaded. Message queue 628 supports a highly scalable asynchronous event management system 630 with guaranteed delivery and processing. Thus, certain behaviors are pushed from the front end to the back end, allowing the IDCS to provide a high level of service to customers with less latency in response time. For example, the login process may include verifying credentials, submitting log reports, updating the last login time, etc., but these tasks can be offloaded to a message queue and performed in near real-time rather than real-time. Can be done.
一例において、システムが新たなユーザを登録または作成する必要がある場合がある。システムは、IDCS SCIM APIをコールしてユーザを作成する。最終結果として、ユーザがアイデンティティストア618において作成されたときにこのユーザがそのパスワードをリセットするためのリンクを含む通知電子メールを得る。IDCSが、新たなユーザを登録または作成することを求める要求を受けると、対応するマイクロサービスは、オペレーショナルデータベース(図6のグローバルデータベース620内に位置する)にある構成データに注目し、「ユーザ作成」という動作が「ユーザ作成」イベントでマーキングされていると判断する。この動作は、構成データにおいて非同期動作であることが識別される。マイクロサービスは、クライアントに戻り、ユーザの作成が正常に行われたことを示すが、通知電子メールの実際の送信は延期されバックエンドにプッシュされる。そうするために、マイクロサービスは、メッセージングAPI616を用いてこのメッセージを、ストアであるキュー628に入れる。 In one example, the system may need to register or create a new user. The system calls the IDCS SCIM API to create a user. The end result is that when a user is created in the identity store 618, the user receives a notification email containing a link to reset their password. When the IDCS receives a request to register or create a new user, the corresponding microservice looks at the configuration data in the operational database (located within the global database 620 in Figure 6) and performs a "User Created" ” is marked in the “user created” event. This operation is identified in the configuration data as an asynchronous operation. The microservice returns to the client and indicates that the user creation was successful, but the actual sending of the notification email is deferred and pushed to the backend. To do so, the microservice uses messaging API 616 to place this message into a store, queue 628.
キュー628から出すために、インフラストラクチャマイクロサービスであるメッセージングマイクロサービスは、バックグラウンドにおいて継続的に実行され、キュー628の中にあるイベントを探してキュー628をスキャンする。キュー628の中にあるイベントは、監査、ユーザ通知、アプリケーション申込、データ解析などのイベントサブスクライバ630によって処理される。イベントによって示されるタスクに応じて、イベントサブスクライバ630は、たとえば、監査スキーマ624、ユーザ通知サービス634、アイデンティティイベントサブスクライバ632などと通信し得る。たとえば、メッセージングマイクロサービスは、キュー628の中に「ユーザ作成」イベントを発見した場合、対応する通知ロジックを実行し対応する電子メールをユーザに送信する。 To populate the queue 628, the infrastructure microservice, the messaging microservice, runs continuously in the background and scans the queue 628 looking for events in the queue 628. Events in queue 628 are processed by event subscribers 630, such as audits, user notifications, application subscriptions, data analysis, etc. Depending on the task indicated by the event, event subscriber 630 may communicate with audit schema 624, user notification service 634, identity event subscriber 632, etc., for example. For example, if the messaging microservice finds a "user created" event in queue 628, it executes the corresponding notification logic and sends a corresponding email to the user.
一実施形態において、キュー628は、マイクロサービス614によってパブリッシュされたオペレーショナルイベントと、IDCSリソースを管理するAPI616によってパブリッシュされたリソースイベントとをキューの中に入れる。 In one embodiment, queue 628 queues operational events published by microservices 614 and resource events published by APIs 616 that manage IDCS resources.
IDCSは、リアルタイムキャッシング構造を用いてシステムパフォーマンスおよびユーザ体験を向上させる。キャッシュそのものは、マイクロサービスとしても提供される。IDCSは、IDCSによってサポートされている顧客の数の増加に伴って増大するエラスティック・キャッシュクラスタ626を実現する。キャッシュクラスタ626は、以下でより詳細に開示される分散型データグリッドで実現されてもよい。一実施形態において、書込専用リソースがキャッシュをバイパスする。 IDCS uses real-time caching structures to improve system performance and user experience. The cache itself is also provided as a microservice. IDCS implements an elastic cache cluster 626 that grows as the number of customers supported by IDCS increases. Cache cluster 626 may be implemented with a distributed data grid, which is disclosed in more detail below. In one embodiment, write-only resources bypass the cache.
一実施形態において、IDCSランタイムコンポーネントは、ヘルスおよびオペレーショナルメトリクスを、オラクル社のオラクルパブリッククラウドなどのパブリッククラウドのこのようなメトリクスを収集するパブリッククラウドモニタリングモジュール636に対してパブリッシュする。 In one embodiment, the IDCS runtime component publishes health and operational metrics to a public cloud monitoring module 636 that collects such metrics for a public cloud, such as Oracle's Oracle Public Cloud.
一実施形態において、IDCSを用いてユーザを作成してもよい。たとえば、クライアントアプリケーション602は、REST APIコールを発行してユーザを作成してもよい。管理サービス(Admin service)(614のプラットフォームサービス)は、このコールをユーザマネージャ(614のインフラストラクチャライブラリ/サービス)に委任する。そうすると、ユーザマネージャは、このユーザを、IDストア618内の特定テナント用IDストアストライプにおいて作成する。「ユーザ作成成功(User Create Success)」の場合、ユーザマネージャは、オペレーションを監査することにより監査スキーマ624内のテーブルを監査し、メッセージキュー628に対して「identity.user.create.success」をパブリッシュする。アイデンティティサブスクライバ632は、このイベントをピックアップし、新たに作成されたログイン詳細を含む「ウェルカム」電子メールを、新たに作成されたユーザに送信する。 In one embodiment, IDCS may be used to create users. For example, client application 602 may issue a REST API call to create a user. The Admin service (platform service at 614) delegates this call to the user manager (infrastructure library/service at 614). The user manager then creates this user in the tenant specific ID store stripe within ID store 618. If “User Create Success”, the user manager audits the table in the audit schema 624 by auditing the operation and publishes “identity.user.create.success” to the message queue 628. do. Identity subscriber 632 picks up this event and sends a "welcome" email to the newly created user containing the newly created login details.
一実施形態において、IDCSを用いてロールをユーザに与えて、その結果ユーザがアクションをプロビジョニングしてもよい。たとえば、クライアントアプリケーション602は、REST APIコールを発行してユーザにロールを付与してもよい。管理サービス(614のプラットフォームサービス)は、このコールをロールマネージャ(614のインフラストラクチャライブラリ/サービス)に委任してもよい。このロールマネージャは、IDストア618内の特定テナント用IDストアストライプにおけるロールを付与する。「ロール付与成功(Role Grant Success)」の場合、ロールマネージャは、監査スキーマ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日間でターゲットシステムにおいて作成されたアカウントの数を合計する自身のビジネスメトリクスを有し得る。 In one embodiment, IDCS may be used to provide roles to users so that they can be provisioned with actions. For example, client application 602 may issue a REST API call to grant a role to a user. The Management Service (Platform Services at 614) may delegate this call to the Role Manager (Infrastructure Libraries/Services at 614). This role manager grants roles in the ID store stripe for a particular tenant within ID store 618. In the case of “Role Grant Success,” the role manager audits the operation on the audit table in the audit schema 624 and publishes “identity.user.role.grant.success” to the message queue 628. Identity subscriber 632 picks up this event and evaluates the provisioning policy. If there is an active application grant for the role being granted, the provisioning subscriber performs some validation, initiates account creation, calls out to the target system, creates an account on the target system, and the account creation is successful. Mark it as done. Each of these functions results in a corresponding response such as "prov.account.create.initiate", "prov.target.create.initiate", "prov.target.create.success" or "prov.account.create.success". events that occur may end up being published. These events may have their own business metrics that sum the number of accounts created on the target system over the last N days.
一実施形態において、IDCSはユーザのログインのために使用することができる。たとえば、クライアントアプリケーション602は、サポートされている認証フローのうちの1つを用いてユーザのログインを要求してもよい。IDCSは、ユーザを認証し、成功すると、監査スキーマ624における監査テーブルに対するオペレーションを監査する。失敗すると、IDCSは、監査スキーマ624における失敗を監査し、メッセージキュー628の「login.user.login.failure」イベントをパブリッシュする。ログインサブスクライバは、このイベントをピックアップし、ユーザに対するそのメトリクスを更新し、ユーザのアクセス履歴についての追加分析を実行する必要があるか否かを判断する。 In one embodiment, IDCS can be used for user login. For example, client application 602 may request a user login using one of the supported authentication flows. IDCS authenticates the user and, if successful, audits the operations on the audit tables in audit schema 624. Upon failure, IDCS audits the failure in audit schema 624 and publishes a "login.user.login.failure" event in message queue 628. The login subscriber picks up this event, updates its metrics for the user, and decides whether it needs to perform additional analysis on the user's access history.
したがって、「制御の反転」機能を実現する(たとえば実行の流れを変更することにより、後の時点におけるオペレーションの実行を、当該オペレーションが別のシステムの支配下になるように、スケジュールする)ことにより、実施形態は、その他のイベントキューおよびサブスクライバを動的に追加して、小さなユーザサンプルに対する新たな特徴を、より広いユーザベースにデプロイする前にテストする、または、特定の内部または外部の顧客のための特定のイベントを処理することができる。 Therefore, by providing an "inversion of control" capability (e.g., scheduling the execution of an operation at a later point in time by changing the flow of execution, such that the operation is under the control of another system). , Embodiments can dynamically add other event queues and subscribers to test new features on a small sample of users before deploying them to a broader user base, or for specific internal or external customers. be able to handle specific events for.
ステートレス機能
IDCSマイクロサービスはステートレスである。これは、マイクロサービスそのものはステートを保持しないことを意味する。「ステート」とは、アプリケーションがその機能を果たすために使用するデータのことを言う。IDCSは、マルチテナント機能を、すべてのステートを、IDCSデータ層内の特定テナント向けリポジトリにパーシストすることによって提供する。中間層(すなわち要求を処理するコード)は、アプリケーションコードと同じ場所に格納されているデータを有しない。したがって、IDCSは横方向および縦方向双方においてスケーラビリティが高い。
Stateless Functionality IDCS microservices are stateless. This means that microservices themselves do not maintain state. "State" refers to data that an application uses to perform its functions. IDCS provides multi-tenancy functionality by persisting all state to tenant-specific repositories within the IDCS data layer. The middle tier (ie, the code that processes requests) does not have data stored in the same location as the application code. Therefore, IDCS is highly scalable both horizontally and vertically.
縦方向のスケーリング(またはスケールアップ/ダウン)は、システム内の1つのノードにリソースを追加する(またはこのノードからリソースを削除する)ことを意味し、1つのコンピュータにCPUまたはメモリを追加することを伴うのが一般的である。縦方向のスケーラビリティによって、アプリケーションはそのハードウェアの限界までスケールアップすることができる。横方向のスケーリング(またはスケールアウト/イン)は、新たなコンピュータを分散型ソフトウェアアプリケーションに追加するといったように、より多くのノードをシステムに追加する(またはシステムからノードを削除する)ことを意味する。横方向のスケーラビリティにより、アプリケーションはほぼ無限にスケーリング可能であり、ネットワークによって提供される帯域幅の量のみの制約を受ける。 Vertical scaling (or scaling up/down) means adding resources to (or removing resources from) one node in the system, adding more CPU or memory to one computer It is generally accompanied by Vertical scalability allows applications to scale up to the limits of their hardware. Horizontal scaling (or scaling out/in) means adding more nodes to (or removing nodes from) a system, such as adding a new computer to a distributed software application. . Lateral scalability allows applications to scale almost infinitely, limited only by the amount of bandwidth provided by the network.
IDCSの中間層がステートレスであることにより、CPUをさらに追加するだけで横方向にスケーラブルになり、アプリケーションの仕事を実行するIDCSコンポーネントは、特定なアプリケーションが走っている指定された物理的インフラストラクチャを持つ必要がない。IDCSの中間層がステートレスであることにより、非常に多くの顧客/テナントにアイデンティティサービスを提供しているときであっても、IDCSの可用性が高くなる。IDCSアプリケーション/サービスを通る各パスは、専らアプリケーショントランザクションを実行するためにCPU用途に集中するが、データの格納にハードウェアを使用しない。スケーリングは、必要に応じてより多くのコピーを追加できるパーシステンス層にトランザクション用のデータが格納される一方で、アプリケーションが走っているときにより多くのスライスを追加することによって実現される。 The stateless nature of the IDCS middle layer allows it to be horizontally scalable by simply adding more CPUs, and the IDCS components that perform the work of an application can access the specified physical infrastructure on which a particular application is running. There's no need to have it. The statelessness of the IDCS middle layer makes the IDCS highly available even when providing identity services to a large number of customers/tenants. Each path through the IDCS application/service is dedicated to CPU usage to perform application transactions, but does not use hardware to store data. Scaling is achieved by adding more slices while the application is running, while transactional data is stored in a persistence layer that can add more copies as needed.
IDCSウェブ層、中間層、およびデータ層は各々独立してかつ別々にスケーリング可能である。ウェブ層をスケーリングすることにより、より多くのHTTP要求を扱うことができる。中間層をスケーリングすることにより、より多くのサービス機能をサポートすることができる。データ層をスケーリングすることにより、より多くのテナントをサポートすることができる。 The IDCS web tier, middle tier, and data tier are each independently and separately scalable. By scaling the web tier, more HTTP requests can be handled. By scaling the middle tier, more service functionality can be supported. You can support more tenants by scaling your data tier.
IDCS機能ビュー
図6Aは、一実施形態におけるIDCSの機能ビューのブロック図の一例600bである。ブロック図600bにおいて、IDCS機能スタックは、サービスと、共有ライブラリと、データストアとを含む。サービスは、IDCSプラットフォームサービス640bと、IDCSプレミアムサービス650bと、IDCSインフラストラクチャサービス662bとを含む。一実施形態において、IDCSプラットフォームサービス640bおよびIDCSプレミアムサービス650bは、別々にデプロイされたJavaベースのランタイムサービスであり、IDCSのビジネスを実現する。IDCSインフラストラクチャサービス662bは、別々にデプロイされたランタイムサービスであり、IDCSに対するインフラストラクチャサポートを提供する。共有ライブラリは、IDCSサービスによって使用される共有ライブラリとしてパッケージングされた共通コードであるIDCSインフラストラクチャライブラリ680bと、共有ライブラリとを含む。データストアは、IDCSが必要とする/生成するデータリポジトリであり、アイデンティティストア698b、グローバル構成700b、メッセージストア702b、グローバルテナント704b、パーソナライゼーション設定706b、リソース708b、ユーザ一時データ710b、システム一時データ712b、テナントごとのスキーマ(管理されたExaData)714b、オペレーショナルストア(図示せず)、キャッシングストア(図示せず)などを含む。
IDCS Functional View FIG. 6A is an example block diagram 600b of a functional view of IDCS in one embodiment. In block diagram 600b, the IDCS functional stack includes services, shared libraries, and data stores. The services include IDCS platform services 640b,
一実施形態において、IDCSプラットフォームサービス640bは、たとえばOpenID Connectサービス642b、OAuth2サービス644b、SAML2サービス646b、およびSCIM++サービス648bを含む。一実施形態において、IDCSプレミアムサービスは、たとえば、クラウドSSOおよびガバナンス652b、企業ガバナンス654b、AuthNブローカー656b、連携ブローカー658b、およびプライベートアカウント管理660bを含む。
In one embodiment, IDCS platform services 640b include, for example, OpenID Connect service 642b,
IDCSインフラストラクチャサービス662bおよびIDCSインフラストラクチャライブラリ680bは、IDCSプラットフォームサービス640bがその仕事を実行するのに必要とする機能のサポートを提供する。一実施形態において、IDCSインフラストラクチャサービス662bは、ジョブスケジューラ664b、UI666b、SSO668b、レポート670b、キャッシュ672b、ストレージ674b、サービスマネージャ676b(パブリッククラウド制御)、およびイベントプロセッサ678b(ユーザ通知、アプリケーション申込、監査、データ解析)を含む。一実施形態において、IDCSインフラストラクチャライブラリ680bは、データマネージャAPI682b、イベントAPI684b、ストレージAPI686b、認証API688b、認可API690b、クッキーAPI692b、キーAPI694b、およびクレデンシャルAPI696bを含む。一実施形態において、クラウド計算サービス602b(内部Nimbula)は、IDCSインフラストラクチャサービス662bおよびIDCSインフラストラクチャライブラリ680bの機能をサポートする。
一実施形態において、IDCSは、顧客エンドユーザUI604b、顧客管理UI(admin UI)606b、DevOps管理UI608b、およびログインUI610bなど、IDCSサービスのコンシューマのためのさまざまなUI602bを提供する。一実施形態において、IDCSは、アプリケーション(たとえば顧客アプリケーション614b、パートナーアプリケーション616b、およびクラウドアプリケーション618b)の統合612bならびにファームウェア統合620bを可能にする。一実施形態において、さまざまな環境がIDCSと統合されてそのアクセス制御のニーズをサポートしてもよい。このような統合は、たとえば、アイデンティティブリッジ622b(AD統合、WNA、およびSCIMコネクタを提供)、アパッチエージェント624b、またはMSFTエージェント626bによって提供される。
In one embodiment, IDCS provides various UIs 602b for consumers of IDCS services, such as a customer
一実施形態において、内部および外部のIDCSコンシューマは、OpenID Connect630b、OAuth2 632b、SAML2 634b、SCIM636b、およびREST/HTTP638bなどの標準ベースのプロトコル628bに対するIDCSのアイデンティティサービスと統合される。これにより、ドメインネームシステム(domain name system)(「DNS」)を用いて、要求をどこにルーティングするかを判断することができ、アプリケーションの消費を、アイデンティティサービスの内部実現を理解することから切離す。
In one embodiment, internal and external IDCS consumers are integrated with IDCS's identity services for standards-based
図6AのIDCS機能ビューはさらに、IDCSが、ユーザ通知(クラウド通知サービス718b)、ファイルストレージ(クラウドストレージサービス716b)、およびDevOPsのためのメトリクス/警告(クラウドモニタサービス(EM)722bおよびクラウドメトリクスサービス(グラファイト)720b)のために依存する共通機能を提供する、パブリッククラウドインフラストラクチャサービスを含む。
The IDCS functional view of FIG. 6A further shows that IDCS provides user notifications (
クラウドゲート
一実施形態において、IDCSはウェブ層において「クラウドゲート」を実現する。クラウドゲートは、ウェブアプリケーションがユーザSSOをアイデンティティ管理システム(たとえばIDCS)に外部化することを可能にするウェブサーバプラグインであり、これは、企業IDMスタックと協力するWebGateまたはWebAgent技術と同様である。クラウドゲートは、IDCS APIに対するアクセスを安全にするセキュリティゲートキーパの役割を果たす。一実施形態において、クラウドゲートは、OAuthに基づいてHTTPリソースを保護するためにウェブポリシー施行点(Policy Enforcement Point)(「PEP」)を提供するウェブ/プロキシサーバプラグインによって実現される。
Cloud Gate In one embodiment, IDCS implements "Cloud Gate" at the web layer. Cloud Gate is a web server plugin that allows web applications to externalize user SSO to an identity management system (e.g. IDCS), similar to WebGate or WebAgent technologies that work with enterprise IDM stacks. . Cloud Gate acts as a security gatekeeper that secures access to the IDCS API. In one embodiment, Cloud Gate is implemented by a web/proxy server plugin that provides a Web Policy Enforcement Point (“PEP”) to secure HTTP resources based on OAuth.
図7は、クラウドゲート702を実現する実施形態のブロック図700である。クラウドゲート702は、ウェブサーバ712内で実行され、ポリシー施行点(「PEP」)の役割を果たす。ポリシー施行点は、オープン標準(たとえばOAuth2、OpenID Connectなど)を用いるIDCSポリシー決定点(Policy Decision Point)(「PDP」)と統合され、一方でウェブブラウザおよびアプリケーションのREST APIリソース714へのアクセスを安全にするように構成されている。いくつかの実施形態において、PDPは、OAuthおよび/またはOpenID Connectマイクロサービス704で実現される。たとえば、ユーザブラウザ706がユーザ710のログインを求める要求をIDCSに送信すると、対応するIDCS PDPは、クレデンシャルを検証した後に、このクレデンシャルが十分であるか否か(たとえば第2のパスワードなどのその他のクレデンシャルを要求するか否か)を判断する。図7の実施形態において、クラウドゲート702は、ローカルポリシーを有するので、PEPとしてもPDPとしてもその役割を果たし得る。
FIG. 7 is a block diagram 700 of an embodiment implementing
ワンタイム・デプロイメントの一部として、クラウドゲート702には、OAuth2クライアントとしてのIDCSが登録され、これが、IDCSに対してOIDCおよびOAuth2オペレーションを要求することを可能にする。その後、これは、要求マッチングルール(URLをたとえばワイルドカード、通常表現などに対して如何にしてマッチングするか)の適用を受ける、アプリケーションの保護されたリソースおよび保護されていないリソースに関する構成情報を保持する。クラウドゲート702をデプロイすることにより、異なるセキュリティポリシーを有する異なるアプリケーションを保護することができ、保護されるアプリケーションはマルチテナントであってもよい。
As part of the one-time deployment,
ブラウザベースのユーザアクセス中、クラウドゲート702は、ユーザ認証フローを開始するOIDC RP718として機能する。ユーザ710が有効なローカルユーザセッションを有していない場合、クラウドゲート702は、ユーザをSSOマイクロサービスにリダイレクトし、SSOマイクロサービスとともにOIDC「認可コード」フローに参加する。このフローは、アイデンティティトークンとしてのJWTの配信で終了する。クラウドゲート708は、JWTを検証し(たとえば署名、満了、宛先/オーディエンスなどに注目し)、ユーザ710に関するローカルセッションクッキーを発行する。これは、保護されているリソースへのウェブブラウザのアクセスを安全にしかつローカルセッションクッキーを発行、更新、および検証するセッションマネージャ716として機能する。これはまた、そのローカルセッションクッキーの削除のためのログアウトURLを提供する。
During browser-based user access,
クラウドゲート702はまた、HTTPベーシックAuth認証者の役割を果たし、IDCSに対するHTTPベーシックAuthクレデンシャルを検証する。この行動は、セッションレスおよびセッションベースの(ローカルセッションクッキー)モードでサポートされる。この場合、サーバ側IDCSセッションは生成されない。
REST APIクライアント708によるプログラムアクセス中、クラウドゲート702は、アプリケーションの保護されているREST API714のためのOAuth2リソースサーバ/フィラー720の役割を果たし得る。これは、認可ヘッダおよびアクセストークンに対して要求が存在するか否かを検査する。クライアント708(たとえばモバイル、ウェブアプリケーション、JavaScriptなど)が(IDCSによって発行された)アクセストークンを、保護されているREST API714とともに使用するために示すと、クラウドゲート702は、APIへのアクセスを許可する前にアクセストークンを検証する(たとえば署名、満了、オーディエンスなど)。元のアクセストークンは修正なしで送られる。
During programmatic access by
一般的に、OAuthを用いてクライアントアイデンティティ伝播トークン(たとえばクライアントが誰であるかを示す)またはユーザアイデンティティ伝播トークン(たとえばユーザが誰であるかを示す)を生成する。本実施形態において、クラウドゲートにおけるOAuthの実現は、たとえばIETF、RFC7519によって提供されるようなウェブトークンのフォーマットを定めるJWTに基づく。 Generally, OAuth is used to generate client identity propagation tokens (eg, indicating who the client is) or user identity propagation tokens (eg, indicating who the user is). In this embodiment, the implementation of OAuth in Cloud Gate is based on JWT, which defines the format of web tokens, such as that provided by IETF, RFC7519.
ユーザがログインすると、JWTが発行される。JWTは、IDCSによって署名され、IDCSにおけるマルチテナント機能をサポートする。クラウドゲートは、IDCSが発行したJWTを検証することにより、IDCSにおけるマルチテナント機能を可能にする。したがって、IDCSは、物理構造においても、セキュリティモデルを支持する論理ビジネスプロセスにおいてもマルチテナンシーを提供する。 When a user logs in, a JWT is issued. The JWT is signed by IDCS and supports multi-tenancy functionality in IDCS. Cloud Gate enables multi-tenancy functionality in IDCS by validating JWTs issued by IDCS. Thus, IDCS provides multi-tenancy both in the physical structure and in the logical business processes that support the security model.
テナンシーの種類
IDCSは3種類のテナンシーとして、顧客テナンシー、クライアントテナンシー、およびユーザテナンシーを特定する。顧客またはリソーステナンシーは、IDCSの顧客が誰であるか(すなわち作業が誰に対して実行されているか)を特定する。クライアントテナンシーは、どのクライアントアプリケーションがデータにアクセスしようとしているか(すなわちどのアプリケーションが作業を実行しているか)を特定する。ユーザテナンシーは、どのユーザがアプリケーションを用いてデータにアクセスしているか(すなわち誰によって作業が実行されているか)を特定する。たとえば、専門サービス企業が大型ディスカウントショップを対象とするシステム統合機能を提供しこの大型ディスカウントショップのシステムのアイデンティティ管理を提供するためにIDCSを使用するとき、ユーザテナンシーは、この専門サービス企業に相当し、クライアントテナンシーはシステム統合機能を提供するために使用されるアプリケーションに相当し、顧客テナンシーは大型ディスカウントショップである。
Types of Tenancy IDCS specifies three types of tenancy: customer tenancy, client tenancy, and user tenancy. Customer or resource tenancy identifies who the customer of the IDCS is (ie, for whom the work is being performed). Client tenancy identifies which client applications are attempting to access data (ie, which applications are performing work). User tenancy identifies which users are using the application to access data (ie, by whom the work is being performed). For example, when a professional services company uses IDCS to provide system integration functionality for a large discount store and to provide identity management for this large discount store's systems, the user tenancy is equivalent to the professional services company. However, the client tenancy corresponds to the application used to provide system integration functionality, and the customer tenancy is a large discount store.
これら3つのテナンシーを分離および統合することによってクラウドベースのサービスにおけるマルチテナント機能が可能になる。一般的に、オンプレミスの物理的なマシンにインストールされているオンプレミスソフトウェアの場合、これら3つのテナンシーを特定する必要はない。なぜなら、ユーザはログインするのに物理的にマシン上にいなければならないからである。しかしながら、クラウドベースのサービス構造の場合、実施形態は、トークンを持いて、誰がどのアプリケーションを使用してどのリソースにアクセスするかを判断する。3つのテナンシーは、トークンによってコーディファイ(codify)され、クラウドゲートによって施行され、中間層のビジネスサービスによって使用される。一実施形態において、OAuthサーバがトークンを生成する。さまざまな実施形態において、このトークンは、OAuth以外のセキュリティプロトコルとともに使用されてもよい。 Separating and integrating these three tenancies enables multi-tenant functionality in cloud-based services. Generally, for on-premises software installed on on-premises physical machines, there is no need to specify these three tenancies. This is because the user must be physically present on the machine to log in. However, in the case of a cloud-based service structure, embodiments have tokens to determine who uses which applications to access which resources. The three tenancies are codified by tokens, enforced by Cloud Gate, and used by mid-tier business services. In one embodiment, an OAuth server generates the token. In various embodiments, this token may be used with security protocols other than OAuth.
ユーザ、クライアント、およびリソーステナンシーを分離することにより、IDCSが提供するサービスのユーザには実質的なビジネス上の利点が与えられる。たとえば、そうすることにより、ビジネス(たとえば健康ビジネス)のニーズおよびそのアイデンティティ管理の問題を理解するサービスプロバイダは、IDCSが提供するサービスを購入し、IDCSのサービスを消費する自身のバックエンドアプリケーションを開発し、このバックエンドアプリケーションをターゲットビジネスに提供することができる。したがって、サービスプロバイダは、IDCSのサービスを拡張してその所望の機能を提供するとともにそれらを特定のターゲットビジネスに対して差出すことができる。サービスプロバイダは、ソフトウェアを構築し実行してアイデンティサービスを提供する必要はないが、その代わりに、IDCSのサービスを拡張しカスタマイズしてターゲットビジネスのニーズに合うようにすることができる。 The separation of users, clients, and resource tenancies provides substantial business benefits to users of IDCS-provided services. For example, by doing so, a service provider that understands the needs of a business (e.g. a health business) and its identity management issues can purchase services provided by IDCS and develop its own back-end applications that consume the services of IDCS. You can then provide this backend application to your target business. Thus, service providers can extend the services of the IDCS to provide their desired functionality and target them to specific target businesses. Service providers are not required to build and run software to provide identity services, but can instead extend and customize the IDCS's services to suit the needs of their target business.
周知のシステムの中には、顧客テナンシーである単一のテナンシーしか説明しないものがある。しかしながら、そのようなシステムは、顧客ユーザ、顧客のパートナー、顧客のクライアント、クライアント自身、または、アクセスが顧客から委任されたクライアントなどのユーザの組み合わせによるアクセスを処理するときには不十分である。本実施形態において複数のテナンシーを規定し施行することにより、これらの多様なユーザに対して管理機能を特定することが容易になる。 Some known systems only account for a single tenancy, the customer tenancy. However, such systems are inadequate when handling access by a combination of users, such as a customer user, a partner of the customer, a client of the customer, the client itself, or a client to whom access has been delegated by the customer. By defining and enforcing multiple tenancies in this embodiment, it becomes easier to specify management functions for these diverse users.
一実施形態において、IDCSの1エンティティは、複数のテナントに同時に属しているのではなく、1つのテナントのみに属し、「テナンシー」はアーティファクトが存在する場所である。一般的に、特定の機能を実現するコンポーネントは複数存在し、これらのコンポーネントは複数のテナントに属することが可能であるまたはインフラストラクチャに属することが可能である。インフラストラクチャは、テナントの代わりに機能する必要があるとき、テナントの代わりにエンティティサービスと対話する。この場合、インフラストラクチャそのものは自身のテナンシーを有し、顧客は自身のテナンシーを有する。要求がサブミットされたとき、この要求に関わる複数のテナンシーが存在する。 In one embodiment, one entity in the IDCS does not belong to multiple tenants at the same time, but only one tenant, and the "tenancy" is where the artifacts reside. Generally, there are multiple components that implement a particular functionality, and these components can belong to multiple tenants or belong to an infrastructure. The infrastructure interacts with entity services on behalf of the tenant when it needs to act on behalf of the tenant. In this case, the infrastructure itself has its own tenancy and the customer has its own tenancy. When a request is submitted, there are multiple tenancies associated with this request.
たとえば、「テナント1」に属するクライアントが、「テナント3」におけるユーザを指定する「テナント2」のためのトークンを取得することを求める要求を実行する場合がある。別の例として、「テナント1」に存在するユーザが、「テナント2」が所有するアプリケーションにおけるアクションを実行する必要がある場合がある。よって、ユーザは、「テナント2」のリソースネームスペースに行きそのためのトークンを要求する必要がある。したがって、権限の委任は、「誰が」「何を」「誰」に対して行うことができるかを特定することによって実現される。もう1つの例として、第1の組織(「テナント1」)のために働く第1のユーザが、第2の組織(「テナント2」)のために働く第2のユーザが第3の組織(「テナント3」)がホストする文書にアクセスすることを、許可してもよい。
For example, a client belonging to "Tenant 1" may issue a request to obtain a token for "
一例において、「テナント1」のクライアントは、「テナント3」のアプリケーションにアクセスするために「テナント2」のユーザのためのアクセストークンを要求してもよい。クライアントは、「http://tenant3/oauth/token」に行きこのトークンを求めるOAuth要求を呼び出すことによって当該トークンを要求してもよい。クライアントは、「クライアントアサーション」を要求に含めることにより、自身が「テナント1」に在住するクライアントであることを明らかにする。このクライアントアサーションは、クライアントID(たとえば「クライアント1」)とクライアントテナンシー(「テナント1」)とを含む。「テナント1」の「クライアント1」として、クライアントは、「テナント3」に対するトークンを求める要求を呼び出す権利を有し、「テナント2」のユーザのためのトークンを所望する。したがって、「ユーザアサーション」も同じHTTP要求の一部として送られる。生成されるアクセストークンは、アプリケーションテナンシー(「テナント3」)であるターゲットテナンシーのコンテキストにおいて発行され、ユーザテナンシー(「テナント2」)を含む。
In one example, a client in "Tenant 1" may request an access token for a user in "
一実施形態において、データ層における各テナントは、独立したストライプとして実現される。データ管理の観点からすると、アーティファクトはテナントに存在する。サービスの観点からすると、サービスは、異種のテナントとどのようにして協力するかを知っており、複数のテナンシーは、サービスのビジネス機能における異なるディメンションである。図8は、ある実施形態において複数のテナンシーを実現するシステムの一例800を示す。システム800はクライアント802を含み、クライアント802は、如何にしてデータベース806のデータ用いて作業するかを理解しているマイクロサービス804が提供するサービスを要求する。このデータベースは複数のテナント808を含み、各テナントは対応するテナンシーのアーティファクトを含む。一実施形態において、マイクロサービス804は、トークンを得ようとしてhttps://tenant3/oauth/tokenを通して要求されるOAuthマイクロサービスである。OAuthマイクロサービスの機能が、マイクロサービス804において、データベース806からのデータを用いて実行されることにより、クライアント802の要求が正当であるか否かが検証され、正当である場合は、異なるテナンシー808からのデータが使用されてトークンが構成される。したがって、システム800は、各テナンシーに与えられるサービスをサポートするだけでなく各種テナントに代わって機能し得るサービスをサポートすることによりクロステナント環境において作業できるという点において、マルチテナントである。
In one embodiment, each tenant in the data layer is implemented as an independent stripe. From a data management perspective, artifacts reside in the tenant. From a service perspective, services know how to work with disparate tenants, and multiple tenancy is a different dimension in a service's business capabilities. FIG. 8 illustrates an
システム800は好都合である。理由は次の通りである。マイクロサービス804はデータベース806のデータから物理的に切離されており、クライアントにより近い場所を通ってデータを複製することにより、マイクロサービス804をクライアントに対するローカルサービスとして提供することができ、システム800はサービスのアベイラビリティを管理しそれをグローバルに提供することができる。
一実施形態において、マイクロサービス804はステートレスである。これは、マイクロサービス804を走らせるマシンが、特定のテナントに対するサービスを示すマーカを保持していないことを意味する。その代わりに、テナンシーは、たとえば、入ってくる要求のURLのホスト部分にマーキングされてもよい。このテナンシーはデータベース806のテナント808のうちの1つを示す。多数のテナント(たとえば何百万ものテナント)をサポートする場合、マイクロサービス804は、データベース806への同数の接続を有することはできない。マイクロサービス804はその代わりに、データベースユーザというコンテキストにおいてデータベース806への実際の物理接続を提供する接続プール810を使用する。
In one embodiment, microservices 804 are stateless. This means that the
一般的に、接続は、基礎をなすドライバまたはプロバイダに接続ストリングを提供することによって構築される。接続ストリングは、特定のデータベースまたはサーバをアドレス指定するために、かつ、インスタンスおよびユーザ認証クレデンシャルを与えるために使用される(たとえば「Server=sql_box;Database=Common;User ID=uid;Pwd=password;」)。接続は、一旦構築されると、開閉が可能であり、プロパティ(たとえばコマンドタイムアウト長さ、または存在するのであればトランザクション)を設定することができる。接続ストリングは、データプロバイダのデータアクセスインターフェイスによって指示されるキーと値とのペアのセットを含む。接続プールは、データベースに対する未来の要求が必要なときに接続を再使用できるように保持されるデータベース接続のキャッシュである。接続プーリングにおいて、接続は、作成後にプールに置かれ、新たな接続を確立しなくてもよいように、再使用される。たとえば、マイクロサービス804とデータベース808との間に10の接続が必要な場合、接続プール810には、すべてデータベースユーザというコンテキストにおいて(たとえば特定のデータベースユーザに関連して、たとえば、誰がこの接続の所有者か、誰のクレデンシャルが検証中なのか、それはデータベースユーザか、それはシステムクレデンシャルかなどに関連して)開いている10の接続があるであろう。
Typically, connections are established by providing a connection string to the underlying driver or provider. The connection string is used to address a particular database or server and to provide instance and user authentication credentials (for example, "Server=sql_box;Database=Common;User ID=uid;Pwd=password; ”). Once a connection is established, it can be opened and closed, and properties (eg, command timeout length, or transaction, if present) can be set. The connection string includes a set of key-value pairs as directed by the data provider's data access interface. A connection pool is a cache of database connections that is maintained so that connections can be reused when future requests to the database are needed. In connection pooling, connections are placed in a pool after they are created and reused so that new connections do not have to be established. For example, if 10 connections are required between a
接続プール810内の接続は、何にでもアクセスできるシステムユーザのために作成される。したがって、テナントに代わって要求を処理するマイクロサービス804による監査および特権を正しく扱うために、データベース動作は、特定のテナントに割り当てられたスキーマ所有者に関連する「プロキシユーザ」812というコンテキストで実行される。このスキーマ所有者は、このスキーマ作成の目的であったテナンシーにのみアクセスでき、このテナンシーの値はこのスキーマ所有者の値である。データベース806内のデータを求める要求がなされると、マイクロサービス804は、接続プール810内の接続を用いてこのデータを提供する。したがって、マルチテナンシーは、リソーステナンシーに対応付けられたデータストアプロキシユーザというコンテキストにおいて(たとえばそれに関連して)作成されたデータ接続のトップにある要求ごとに構築された特定テナント向けデータストアバインディングというコンテキストにおいて(たとえばそれに関連して)入ってくる要求を処理するステートレスでエラスティックな中間層サービスを持つことによって得られ、データベースは、サービスとは無関係にスケーリングできる。
Connections in
以下は、プロキシユーザ812を実現するための機能の例を提供する。
The following provides examples of functionality for implementing
この機能において、マイクロサービス804は、接続プール810内のデータベース接続を使用する一方で、接続プール810から引出された接続に対する「プロキシユーザ(Proxy User)」設定を、「テナント(Tenant)」にセットし、テナントというコンテキストにおいてデータオペレーションを実行する。
In this feature,
すべてのテーブルをストライピングすることにより同じデータベースにおいて異なるテナント用に異なるコラムを構成するとき、1つのテーブルは、混合されたすべてのテナントのデータを含み得る。これに対し、一実施形態は、テナント駆動のデータ層を提供する。本実施形態は、異なるテナント用に同一データベースをストライピングするのではなく、テナントごとに異なる物理データベースを提供する。たとえば、マルチテナンシーは、プラガブルデータベース(たとえばオラクル社のOracle Database 12c)を用いて実現されてもよく、この場合、各テナントには別々のパーティションが割り当てられる。データ層では、リソースマネージャが要求を処理し、その後、その要求のデータソースを求める(メタデータとは別)。本実施形態は、要求ごとに各データソース/ストアへのランタイムスイッチを実行する。各テナントのデータをその他のテナントから分離することにより、本実施形態は改善されたデータセキュリティを提供する。 When configuring different columns for different tenants in the same database by striping all tables, one table may contain data for all tenants mixed. In contrast, one embodiment provides a tenant-driven data layer. This embodiment provides different physical databases for each tenant, rather than striping the same database for different tenants. For example, multi-tenancy may be achieved using a pluggable database (eg, Oracle Database 12c), where each tenant is assigned a separate partition. In the data layer, resource managers process requests and then ask for the data source for that request (apart from the metadata). The present embodiment performs a runtime switch to each data source/store on a per-request basis. By separating each tenant's data from other tenants, this embodiment provides improved data security.
一実施形態において、互いに異なるトークンは、異なるテナンシーをコーディファイする。URLトークンは、サービスを要求するアプリケーションのテナンシーを特定し得る。アイデンティティトークンは、認証すべきユーザのアイデンティティをコーディファイし得る。アクセストークンは複数のテナンシーを特定し得る。たとえば、アクセストークンは、このようなアクセスのターゲットであるテナンシー(たとえばアプリケーションテナンシー)と、アクセス権が付与されたユーザのユーザテナンシーとをコーディファイし得る。クライアントアサーショントークンは、クライアントIDおよびクライアントテナンシーを特定し得る。ユーザアサーショントークンは、ユーザおよびユーザテナンシーを特定し得る。 In one embodiment, different tokens coordinate different tenancies. The URL token may identify the tenancy of the application requesting the service. The identity token may codify the identity of the user to be authenticated. Access tokens may specify multiple tenancies. For example, an access token may codify the tenancy that is the target of such access (eg, application tenancy) and the user tenancy of the user granted access. The client assertion token may identify the client ID and client tenancy. A user assertion token may identify a user and user tenancy.
一実施形態において、アイデンティティトークンは、少なくとも、ユーザテナント名(すなわちユーザが在住している場所)を示す「クレーム/ステートメント」を含む。認証トークンに関連する「クレーム」(セキュリティ分野の当業者が使用)は、ある主体が自身または別の主体に関して作成するステートメントである。ステートメントは、たとえば名称、アイデンティティ、キー、グループ、権限、または能力に関するものであってもよい。クレームは、プロバイダによって発行され、1つ以上の値が与えられた後に、セキュリティトークンサービス(security token service)(「STS」)として一般的に知られている発行者が発行したセキュリティトークンにパッケージングされる。 In one embodiment, the identity token includes at least a "claim/statement" indicating the user tenant name (ie, where the user resides). A "claim" (as used by those skilled in the security art) in connection with an authentication token is a statement that one entity makes about itself or another entity. The statements may be about names, identities, keys, groups, permissions, or capabilities, for example. Claims are issued by a provider, provided with one or more values, and then packaged into a security token issued by the issuer, commonly known as a security token service (“STS”). be done.
一実施形態において、アクセストークンは、少なくとも、アクセストークンを求める要求がなされた時点のリソーステナント名(たとえば顧客)を示すクレーム/ステートメントと、ユーザテナント名を示すクレームと、要求しているOAuthクライアントの名称を示すクレームと、クライアントテナント名を示すクレームとを含む。一実施形態において、アクセストークンは、以下のJSON機能に従って実現されてもよい。 In one embodiment, the access token includes at least a claim/statement indicating the resource tenant name (e.g., customer) at the time the request for the access token was made, a claim indicating the user tenant name, and the requesting OAuth client. It includes a claim indicating the name and a claim indicating the client tenant name. In one embodiment, the access token may be implemented according to the following JSON functions.
一実施形態において、クライアントアサーショントークンは、少なくとも、クライアントテナント名を示すクレームと、要求しているOAuthクライアントの名称を示すクレームとを含む。 In one embodiment, the client assertion token includes at least a claim indicating the client tenant name and a claim indicating the name of the requesting OAuth client.
本明細書に記載のトークンおよび/または複数のテナンシーは、IDCS以外の任意のマルチテナントクラウドベースサービスによって実現されてもよい。たとえば、本明細書に記載のトークンおよび/または複数のテナンシーは、SaaSまたは企業リソースプランニング(Enterprise Resource Planning)(「ERP」)サービスにおいて実現されてもよい。 The tokens and/or multiple tenancies described herein may be implemented by any multi-tenant cloud-based service other than IDCS. For example, the tokens and/or multiple tenancies described herein may be implemented in a SaaS or Enterprise Resource Planning ("ERP") service.
図9は、一実施形態におけるIDCSのネットワークビュー900のブロック図である。図9は、一実施形態においてアプリケーション「ゾーン」904間で行われるネットワーク対話を示す。アプリケーションは、要求される保護レベルと、その他さまざまなシステムへの接続の実現に基づいてゾーンに分割される(たとえばSSLゾーン、no SSLゾーンなど)。アプリケーションゾーンのうち、いくつかはIDCS内部からのアクセスを要するサービスを提供するアプリケーションゾーンであり、いくつかはIDCS外部からのアクセスを要するサービスを提供するアプリケーションゾーンであり、いくつかはオープンアクセスである。したがって、各保護レベルは各ゾーンに対して強化される。
FIG. 9 is a block diagram of a
図9の実施形態において、サービス間の通信は、HTTP要求を用いて行われる。一実施形態において、IDCSは、本明細書に記載のアクセストークンを用いて、サービスを提供するだけでなく、IDCSへのアクセスおよびIDCS自身の内部におけるアクセスを安全なものにする。一実施形態において、IDCSマイクロサービスは、RESTfulインターフェイスを通してエクスポーズされ、本明細書に記載のトークンによって安全なものにされる。 In the embodiment of FIG. 9, communication between services is done using HTTP requests. In one embodiment, the IDCS uses the access tokens described herein to not only provide services, but also to secure access to and within the IDCS itself. In one embodiment, the IDCS microservice is exposed through a RESTful interface and secured with the tokens described herein.
図9の実施形態において、さまざまなアプリケーション/サービス902のうちのいずれか1つが、IDCS APIに対してHTTPコールすることにより、IDCSサービスを使用してもよい。一実施形態において、アプリケーション/サービス902のHTTP要求は、オラクルパブリッククラウドロードバランシング外部仮想IPアドレス(「VIP」)906(またはその他同様の技術)、パブリッククラウドウェブルーティング層908、およびIDCSロードバランシング内部VIPアプライアンス910(またはその他同様の技術)を通って、IDCSウェブルーティング層912により受信されてもよい。IDCSウェブルーティング層912は、IDCSの外部または内部からの要求を受信し、IDCSプラットフォームサービス層914またはIDCSインフラストラクチャサービス層916を通してルーティングする。IDCSプラットフォームサービス層914は、OpenID Connect、OAuth、SAML,SCIMなどのIDCSの外部から呼び出されたIDCSマイクロサービスを含む。IDCSインフラストラクチャサービス層916は、その他のIDCSマイクロサービスの機能をサポートするためにIDCSの内部から呼び出されたサポートマイクロサービスを含む。IDCSインフラストラクチャマイクロサービスの例は、UI、SSO、レポート、キャッシュ、ジョブスケジューラ、サービスマネージャ、キーを作るための機能などである。IDCSキャッシュ層926は、IDCSプラットフォームサービス層914およびIDCSインフラストラクチャサービス層916のためのキャッシング機能をサポートする。
In the embodiment of FIG. 9, any one of the various applications/
IDCSへの外部アクセスおよびIDCS内部アクセス双方のセキュリティを強化することにより、IDCSの顧客に、それが実行するアプリケーションのための傑出したセキュリティコンプライアンスを与えることができる。 By enhancing the security of both external and internal IDCS access, IDCS customers can be provided with outstanding security compliance for the applications they run.
図9の実施形態において、構造化照会言語(Structured Query Language)(「SQL」)に基づいて通信するデータ層918およびLDAPに基づいて通信するIDストア層920以外については、OAuthプロトコルを使用することにより、IDCS内のIDCSコンポーネント(たとえばマイクロサービス)間の通信を保護し、IDCS外部からのアクセスを安全なものにするために使用される同じトークンをIDCS内のセキュリティのためにも使用する。すなわち、ウェブルーティング層912は、要求がIDCSの外部から受けたものであろうとIDCSの内部から受けたものであろうと、受信した要求を処理するための同じトークンおよびプロトコルを使用する。したがって、IDCSは、システム全体を保護するために1つの一貫したセキュリティモデルを提供することにより、傑出したセキュリティコンプライアンスを可能にする。なぜなら、システム内に実現されるセキュリティモデルが少ないほど、システムの安全性は高くなるからである。
In the embodiment of FIG. 9, the OAuth protocol is used except for the
IDCSクラウド環境において、アプリケーションは、ネットワークコールを行うことによって通信する。ネットワークコールは、HTTP、伝送制御プロトコル(Transmission Control Protocol)(「TCP」)、ユーザデータグラムプロトコル(User Datagram Protocol)(「UDP」)などの適用可能なネットワークプロトコルに基づいていればよい。たとえば、アプリケーション「X」は、アプリケーション「Y」と、HTTPに基づいて、アプリケーション「Y」をHTTPユニフォーム・リソース・ロケータ(Uniform Resource Locator)(「URL」)としてエクスポーズすることにより、通信し得る。一実施形態において、「Y」は、各々がある機能に対応する多数のリソースをエクスポーズするIDCSマイクロサービスである。「X」(たとえば別のIDCSマイクロサービス)は、「Y」をコールする必要があるとき、「Y」と、呼び出す必要があるリソース/機能とを含むURLを構成し(たとえばhttps:/host/Y/resource)、ウェブルーティング層912を通って「Y」に導かれる対応するRESTコールを行う。
In an IDCS cloud environment, applications communicate by making network calls. The network call may be based on an applicable network protocol such as HTTP, Transmission Control Protocol ("TCP"), User Datagram Protocol ("UDP"), or the like. For example, application "X" may communicate with application "Y" based on HTTP by exposing application "Y" as an HTTP Uniform Resource Locator ("URL"). . In one embodiment, "Y" is an IDCS microservice that exposes multiple resources, each corresponding to a certain functionality. When "X" (e.g. another IDCS microservice) needs to call "Y", it constructs a URL containing "Y" and the resource/function it needs to call (e.g. https:/host/ Y/resource), makes a corresponding REST call that is routed to “Y” through the
一実施形態において、IDCS外部の呼出元は、「Y」がどこにあるかを知る必要がない場合があるが、ウェブルーティング層912はアプリケーション「Y」がどこで走っているかを知る必要がある。一実施形態において、IDCSは、発見機能を実現する(OAuthサービスによって実現される)ことにより、各アプリケーションがどこで走っているかを判断し、スタティックなルーティング情報の可用性が必要ではなくなるようにする。
In one embodiment, the caller outside of IDCS may not need to know where "Y" is, but the
一実施形態において、企業マネージャ(enterprise manager)(「EM」)922は、オンプレミスおよびクラウドベース管理をIDCSに拡張する「一枚のガラス」を提供する。一実施形態において、Chef Software社の構成管理ツールである「シェフ(Chef)」サーバ924は、さまざまなIDCS層のための構成管理機能を提供する。一実施形態において、サービスデプロイメントインフラストラクチャおよび/または永続格納モジュール928は、テナントライフサイクル管理動作、パブリッククラウドライフサイクル管理動作、またはその他の動作のために、OAuth2 HTTPメッセージをIDCSウェブルーティング層912に送信してもよい。一実施形態において、IDCSインフラストラクチャサービス層916は、ID/パスワードHTTPメッセージを、パブリッククラウド通知サービス930またはパブリッククラウドストレージサービス932に送信してもよい。
In one embodiment, an enterprise manager ("EM") 922 provides a "single pane of glass" that extends on-premises and cloud-based management to IDCS. In one embodiment, Chef Software's configuration management tool,
クラウドアクセス制御‐SSO
一実施形態は、クラウドスケールSSOサービスを実現するために軽量クラウド標準をサポートする。軽量クラウド標準の例としては、HTTP、REST、および、ブラウザを通してアクセスを提供する標準(ウェブブラウザは軽量であるため)が挙げられる。逆に、SOAPは、クライアントを構築するためにより多くの管理、構成、およびツールを必要とする重いクラウド標準の一例である。本実施形態は、アプリケーションのためにOpenID Connectセマンティックスを使用することにより、IDCSに対してユーザ認証を要求する。本実施形態は、軽量HTTPクッキーベースのユーザセッション追跡を用いて、ステートフルなサーバ側セッションサポートなしで、IDCSにおけるユーザのアクティブなセッションを追跡する。本実施形態は、使用するアプリケーションに対して、認証されたアイデンティティを自身のローカルセッションに戻すマッピングを行うときに、JWTベースのアイデンティティトークンを使用する。本実施形態は、連携されているアイデンティティ管理システムとの統合をサポートし、IDCSに対してユーザ認証を要求するために企業デプロイメントのSAML IDPサポートをエクスポーズする。
Cloud access control - SSO
One embodiment supports lightweight cloud standards to achieve cloud-scale SSO services. Examples of lightweight cloud standards include HTTP, REST, and standards that provide access through a browser (because web browsers are lightweight). Conversely, SOAP is an example of a heavy cloud standard that requires more management, configuration, and tooling to build clients. This embodiment requests user authentication from IDCS by using OpenID Connect semantics for the application. The present embodiment uses lightweight HTTP cookie-based user session tracking to track users' active sessions in IDCS without stateful server-side session support. The present embodiment uses a JWT-based identity token when mapping an authenticated identity back to its local session for the consuming application. This embodiment supports integration with federated identity management systems and exposes SAML IDP support for enterprise deployments to require user authentication to IDCS.
図10は、一実施形態におけるIDCS内のSSO機能のシステムアーキテクチャビューのブロック図1000である。本実施形態は、クライアントアプリケーションが標準ベースのウェブプロトコルを推進してユーザ認証フローを開始することを可能にする。クラウドシステムとSSOの統合を要求するアプリケーションは、企業データセンターにあってもよく、遠隔パートナーデータセンターにあってもよく、またはオンプレミスの顧客によって操作されてもよい。一実施形態において、異なるIDCSプラットフォームサービスが、接続されているネイティブなアプリケーション(すなわちIDCSと統合するためにOpenID Connectを利用するアプリケーション)からのログイン/ログアウト要求を処理するためのOpenID Connect、接続されているアプリケーションからのブラウザベースのログイン/ログアウト要求を処理するためのSAML IDPサービス、外部SAML IDPに対してユーザ認証を調整するためのSAML SPサービス、および、ローカルなまたは連携されたログインフローを含みIDCSホストセッションクッキーを管理するためのエンドユーザログインセレモニーを調整するための内部IDCS SSOサービスなどの、SSOのビジネスを実現する。一般的に、HTTPは、フォームありでまたはフォームなしで機能する。フォームありで機能するとき、このフォームはブラウザ内で見えるフォームである。フォームなしで機能するとき、これはクライアントからサーバへの通信として機能する。OpenID ConnectもSAMLも、フォームをレンダリングする能力を必要とするが、これは、ブラウザの存在によって実現される、または、ブラウザが存在しているかのように機能するアプリケーションによって仮想的に実行される。一実施形態において、ユーザ認証/SSOをIDCSを通して実現するアプリケーションクライアントは、IDCSにおいて、OAuth2クライアントとして登録される必要があり、クライアント識別子およびクレデンシャル(たとえばID/パスワード、ID/証明書など)を取得する必要がある。 FIG. 10 is a block diagram 1000 of a system architecture view of SSO functionality within IDCS in one embodiment. This embodiment allows client applications to promote standards-based web protocols to initiate user authentication flows. Applications that require SSO integration with cloud systems may reside in corporate data centers, remote partner data centers, or may be operated by on-premises customers. In one embodiment, different IDCS platform services are connected to OpenID Connect for processing login/logout requests from connected native applications (i.e., applications that utilize OpenID Connect to integrate with IDCS). A SAML IDP service for handling browser-based login/logout requests from applications with IDCS, a SAML SP service for coordinating user authentication to external SAML IDPs, and a local or federated login flow. Enable SSO business, such as internal IDCS SSO services for coordinating end-user login ceremonies for managing host session cookies. Generally, HTTP works with or without forms. When working with a form, this form is the form that is visible within the browser. When working without forms, this acts as a communication from client to server. Both OpenID Connect and SAML require the ability to render forms, but this is accomplished through the presence of a browser, or is performed virtually by an application that functions as if a browser were present. In one embodiment, an application client that achieves user authentication/SSO through IDCS needs to register as an OAuth2 client in IDCS and obtain a client identifier and credentials (e.g., ID/password, ID/certificate, etc.) There is a need.
図10の実施形態の例は、2つのプラットフォームマイクロサービスとしてのOAuth2 1004およびSAML2 1006と、1つのインフラストラクチャマイクロサービスとしてのSSO1008とを含む、ログイン機能をまとめて提供する3つのコンポーネント/マイクロサービスを含む。図10の実施形態において、IDCSは「アイデンティティメタシステム」を提供する。このメタシステムにおいて、SSOサービス1008は、異なる種類のアプリケーションに対して提供される。これらのアプリケーションは、3者間OAuthフローを必要としOpenID Connectリレーパーティ(relaying party)(「RP」、そのユーザ認証機能をIDPにアウトソーシングするアプリケーション)として機能するブラウザベースのウェブまたはネイティブアプリケーション1010、2者間OAuthフローを必要としOpenID Connect RPとして機能するネイティブアプリケーション1011、およびSAML SPとして機能するウェブアプリケーション1012などである。
The example embodiment of FIG. 10 uses three components/microservices that collectively provide login functionality, including OAuth2 1004 and SAML2 1006 as two platform microservices and SSO 1008 as one infrastructure microservice. include. In the embodiment of FIG. 10, IDCS provides an "identity metasystem." In this metasystem, SSO services 1008 are provided for different types of applications. These applications are browser-based web or
一般的に、アイデンティティメタシステムは、デジタルアイデンティティのための相互運用可能なアーキテクチャであり、複数の基礎となる技術、実装、およびプロバイダの集合体を用いることを可能にする。LDAP、SAML、およびOAuthは、アイデンティティ機能を提供する異なるセキュリティ標準の例であり、アプリケーションを構築するための基礎となることが可能であり、アイデンティティメタシステムは、このようなアプリケーションに対して統一されたセキュリティシステムを提供するように構成されてもよい。LDAPセキュリティモデルは、アイデンティティを扱うための特定のメカニズムを指定し、システムを通るすべてのパスは厳密に保護されねばならない。SAMLは、一組のアプリケーションが、異なるセキュリティドメインの異なる組織に属する別の一組のアプリケーションとの間で安全に情報を交換できるようにするために開発されたものである。これら2つのアプリケーションの間に信頼はないので、SAMLは、一方のアプリケーションが、同じ組織に属していない別のアプリケーションを認証できるように開発された。OAuthは、ウェブベースの認証を実行するための軽量プロトコルであるOpenID Connectを提供する。 In general, an identity metasystem is an interoperable architecture for digital identity that allows for the use of a collection of multiple underlying technologies, implementations, and providers. LDAP, SAML, and OAuth are examples of different security standards that provide identity functionality and can be the basis for building applications, and an identity metasystem is a unified and The security system may be configured to provide a secure security system. The LDAP security model specifies specific mechanisms for handling identities, and all paths through the system must be strictly protected. SAML was developed to allow one set of applications to securely exchange information with another set of applications belonging to different organizations in different security domains. Since there is no trust between these two applications, SAML was developed to allow one application to authenticate another application that does not belong to the same organization. OAuth provides OpenID Connect, a lightweight protocol for performing web-based authentication.
図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クッキー1014が提供される)、このアーキテクチャにおいてセッションを発行する権限を有する唯一のシステムである。IDCSセッションは、ブラウザ1002がSSOクッキー1014を使用することによって実現される。ブラウザ1002はまた、ローカルセッションクッキー1016を用いてそのローカルセッションを管理する。 In the embodiment of FIG. 10, when an OpenID application 1010 connects to an OpenID server in the IDCS, its "channel" requests SSO service. Similarly, when a SAML application 1012 connects to a SAML server in IDCS, its "channel" also requests SSO services. In IDCS, each microservice (eg, OpenID microservice 1004 and SAML microservice 1006) processes a respective application, and these microservices require SSO functionality from SSO microservice 1008. This architecture can be extended to support any number of other security protocols by adding microservices for each protocol and then using SSO microservices 1008 for SSO functionality. The SSO microservice 1008 issues sessions (ie, is provided with the SSO cookie 1014) and is the only system authorized to issue sessions in this architecture. The IDCS session is realized by browser 1002 using SSO cookie 1014. Browser 1002 also uses local session cookies 1016 to manage its local session.
一実施形態において、たとえば、ブラウザ内で、ユーザは、SAMLに基づいて第1のアプリケーションを使用してログインし、その後、OAuthなどの異なるプロトコルを用いて構築された第2のアプリケーションを使用してもよい。ユーザには、同じブラウザ内の第2のアプリケーション上のSSOが与えられる。したがって、ブラウザは、ステートまたはユーザエージェントであり、クッキーを管理する。 In one embodiment, for example, within a browser, a user logs in using a first application based on SAML and then uses a second application built using a different protocol, such as OAuth. Good too. The user is given SSO on a second application within the same browser. Therefore, the browser is the state or user agent and manages cookies.
一実施形態において、SSOマイクロサービス1008は、ログインセレモニー1018、ID/パスワードリカバリ1020、第1回ログインフロー1022、認証マネージャ1024、HTTPクッキーマネージャ1026、およびイベントマネージャ1028を提供する。ログインセレモニー1018は、顧客設定および/またはアプリケーションコンテキストに基づいてSSO機能を実現し、ローカルフォーム(たとえばベーシックAuth)、外部SAML IDP、外部OIDC IDPなどに従って構成されてもよい。ID/パスワードリカバリ1020は、ユーザのIDおよび/またはパスワードの回復のために使用される。第1回ログインフロー1022は、ユーザが1回目にログインしたときに実現される(すなわちSSOセッションはまだ存在しない)。認証マネージャ1024は、認証に成功すると認証トークンを発行する。HTTPクッキーマネージャ1026は認証トークンをSSOクッキーに保存する。イベントマネージャ1028はSSO機能に関連するイベントをパブリッシュする。 In one embodiment, SSO microservices 1008 provide login ceremony 1018, ID/password recovery 1020, first login flow 1022, authentication manager 1024, HTTP cookie manager 1026, and event manager 1028. Login ceremony 1018 implements SSO functionality based on customer settings and/or application context and may be configured according to local forms (eg, Basic Auth), external SAML IDP, external OIDC IDP, etc. ID/Password Recovery 1020 is used to recover a user's ID and/or password. The first login flow 1022 is implemented when the user logs in for the first time (ie, no SSO session exists yet). Authentication manager 1024 issues an authentication token upon successful authentication. HTTP cookie manager 1026 stores the authentication token in an SSO cookie. Event manager 1028 publishes events related to SSO functionality.
一実施形態において、OAuthマイクロサービス1004とSSOマイクロサービス1008との間の対話は、ブラウザリダイレクトに基づいており、SSOマイクロサービス1008は、HTMLフォームを用いてユーザに問いかけ、クレデンシャルを検証し、セッションクッキーを発行する。 In one embodiment, the interaction between OAuth microservice 1004 and SSO microservice 1008 is based on browser redirects, where SSO microservice 1008 queries the user using an HTML form, validates credentials, and uses session cookies. Issue.
一実施形態において、たとえば、OAuthマイクロサービス1004は、ブラウザ1002から認証要求を受け、3者間OAuthフローに従ってアプリケーションのユーザを認証する。よって、OAuthマイクロサービス1004は、OIDCプロバイダ1030として機能し、ブラウザ1002をSSOマイクロサービス1008にリダイレクトし、アプリケーションコンテキストに沿って進む。ユーザが有効なSSOセッションを有するか否かに応じて、SSOマイクロサービス1008は、既存のセッションを検証するかまたはログインセレモニーを実行する。認証または検証に成功すると、SSOマイクロサービス1008は、認証コンテキストをOAuthマイクロサービス1004に返す。そうすると、OAuthマイクロサービス1004はブラウザ1002を認可(「AZ」コードを有するコールバックURLにリダイレクトする。ブラウザ1002は、AZコードをOAuthマイクロサービス1004に送信し、必要なトークン1032を要求する。また、ブラウザ1002は、HTTP認可ヘッダにおいてそのクライアントクレデンシャル(IDCSをOAuth2クライアントとして登録したときに取得)を含む。これに対し、OAuthマイクロサービス1004は、要求されたトークン1032をブラウザ1002に与える。一実施形態において、ブラウザ1002に与えられるトークン1032は、JWアイデンティティと、IDCS OAuth2サーバによって署名されたアクセストークンとを含む。この機能のさらなる詳細は、以下で図11を参照しながら開示される。 In one embodiment, for example, OAuth microservice 1004 receives authentication requests from browser 1002 and authenticates users of the application according to a three-way OAuth flow. Thus, OAuth microservice 1004 acts as an OIDC provider 1030 and redirects browser 1002 to SSO microservice 1008 to follow the application context. Depending on whether the user has a valid SSO session, the SSO microservice 1008 either validates the existing session or performs a login ceremony. Upon successful authentication or verification, SSO microservice 1008 returns an authentication context to OAuth microservice 1004. The OAuth microservice 1004 then redirects the browser 1002 to the authorization (callback URL with the "AZ" code. The browser 1002 sends the AZ code to the OAuth microservice 1004 and requests the necessary token 1032. The browser 1002 includes its client credentials (obtained when registering IDCS as an OAuth2 client) in the HTTP authorization header. In response, the OAuth microservice 1004 provides the requested token 1032 to the browser 1002. One embodiment In , the token 1032 provided to the browser 1002 includes a JW identity and an access token signed by the IDCS OAuth2 server. Further details of this functionality are disclosed below with reference to FIG. 11.
一実施形態において、たとえば、OAuthマイクロサービス1004は、ネイティブアプリケーション1011から認可要求を受け、2者間OAuthフローに従ってユーザを認証する。この場合、OAuthマイクロサービス1004の認証マネージャ1034は対応する認証を(たとえばクライアント1011から受けたID/パスワードに基づいて)実行し、トークンマネージャ1036は、認証に成功すると、対応するアクセストークンを発行する。 In one embodiment, for example, OAuth microservice 1004 receives authorization requests from native application 1011 and authenticates users according to a two-party OAuth flow. In this case, the authentication manager 1034 of the OAuth microservice 1004 performs the corresponding authentication (for example, based on the ID/password received from the client 1011), and the token manager 1036 issues the corresponding access token if the authentication is successful. .
一実施形態において、たとえば、SAMLマイクロサービス1006は、ブラウザからSSO POST要求を受け、SAML SPとして機能するウェブアプリケーション1012のユーザを認証する。SAMLマイクロサービス1006は次に、SAML IDP1038として機能し、ブラウザ1002をSSOマイクロサービス1008にリダイレクトし、アプリケーションコンテキストに沿って進む。ユーザが有効なSSOセッションを有しているか否かに応じて、SSOマイクロサービス1008は、既存のセッションを検証するか、またはログインセレモニーを実行する。認証または検証に成功すると、SSOマイクロサービス1008は、認証コンテキストをSAMLマイクロサービス1006に返す。そうすると、SAMLマイクロサービスは、必要なトークンでSPにリダイレクトする。 In one embodiment, for example, SAML microservice 1006 receives an SSO POST request from a browser and authenticates a user of web application 1012 acting as a SAML SP. SAML microservice 1006 then acts as SAML IDP 1038 and redirects browser 1002 to SSO microservice 1008 and follows the application context. Depending on whether the user has a valid SSO session, the SSO microservice 1008 either validates the existing session or performs a login ceremony. Upon successful authentication or validation, SSO microservice 1008 returns an authentication context to SAML microservice 1006. The SAML microservice then redirects to the SP with the required token.
一実施形態において、たとえば、SAMLマイクロサービス1006は、SAML SP1040として機能してもよく、遠隔SAML IDP1042(たとえばアクティブディレクトリ連携サービス(active directory federation service)(「ADFS」)に進んでもよい。一実施形態は、標準SAML/ADフローを実現する。一実施形態において、SAMLマイクロサービス1006とSSOマイクロサービス1008との間の対話は、ブラウザのリダイレクトに基づいており、SSOマイクロサービス1008は、HTMLフォームを用いてユーザに問いかけ、クレデンシャルを検証し、セッションクッキーを発行する。 In one embodiment, for example, SAML microservice 1006 may function as a SAML SP 1040 and may go to a remote SAML IDP 1042 (e.g., active directory federation service ("ADFS"). In one embodiment implements a standard SAML/AD flow. In one embodiment, the interaction between SAML microservice 1006 and SSO microservice 1008 is based on browser redirects, and SSO microservice 1008 uses an HTML form. queries the user, verifies credentials, and issues a session cookie.
一実施形態において、IDCS内部のコンポーネント(たとえば1004、1006、1008)と、IDCS外部のコンポーネント(たとえば1002、1011、1042)との間の対話は、ファイアウォール1044を通して行われる。 In one embodiment, interactions between components internal to IDCS (eg, 1004, 1006, 1008) and components external to IDCS (eg, 1002, 1011, 1042) occur through firewall 1044.
ログイン/ログアウトフロー
図11は、一実施形態における、IDCSによって提供されるSSO機能のメッセージシーケンスフロー1100である。ユーザがブラウザ1102を用いてクライアント1106(たとえばブラウザベースのアプリケーションまたはモバイル/ネイティブアプリケーション)にアクセスするとき、クラウドゲート1104は、アプリケーション施行点として機能し、ローカルポリシーテキストファイルに規定されているポリシーを施行する。クラウドゲート1104は、ユーザがローカルアプリケーションセッションを有していないことを検出した場合、ユーザの認証を要求する。そうするために、クラウドゲート1104は、ブラウザ1102をOAuth2マイクロサービス1110にリダイレクトすることにより、OAuth2マイクロサービス1110に対するOpenID Connectログインフローを開始する(3者間AZ Grantフローであり、範囲=「openid profile」)。
Login/Logout Flow Figure 11 is a message sequence flow 1100 for the SSO functionality provided by IDCS in one embodiment. When a user accesses a client 1106 (e.g., a browser-based application or a mobile/native application) using a browser 1102, Cloud Gate 1104 acts as an application enforcement point and enforces the policies specified in the local policy text file. do. If Cloud Gate 1104 detects that the user does not have a local application session, it requests the user's authentication. To do so, Cloud Gate 1104 initiates an OpenID Connect login flow to OAuth2 microservice 1110 by redirecting browser 1102 to OAuth2 microservice 1110 (a three-way AZ Grant flow with scope = "openid profile ”).
ブラウザ1102の要求は、IDCSルーティング層ウェブサービス1108およびクラウドゲート1104を横断してOAuth2マイクロサービス1110に到達する。OAuth2マイクロサービス1110は、アプリケーションコンテキスト(すなわちアプリケーションを記述するメタデータ、たとえば接続するアプリケーションのアイデンティティ、クライアントID、構成、アプリケーションは何ができるかなど)を構成し、ブラウザ1102をログインのためにSSOマイクロサービス1112にリダイレクトする。 The browser 1102 request traverses the IDCS routing layer web service 1108 and Cloud Gate 1104 to reach the OAuth2 microservice 1110. The OAuth2 microservice 1110 configures the application context (i.e., metadata that describes the application, such as the identity of the connecting application, client ID, configuration, what the application can do, etc.) and directs the browser 1102 to the SSO microservice for login. Redirect to service 1112.
ユーザが有効なSSOセッションを有する場合、SSOマイクロサービス1112は、ログインセレモニーを開始することなく既存のセッションを検証する。ユーザが有効なSSOセッションを有していない場合(すなわちセッションクッキーが存在しない)、SSOマイクロサービス1112は、顧客のログインプリファレンスに従ってユーザログインセレモニーを開始する(たとえば商標付ログインページを表示する)。そうするために、SSOマイクロサービス1112は、ブラウザ1102を、JavaScriptで実現されるログインアプリケーションサービス1114にリダイレクトする。ログインアプリケーションサービス1114はブラウザ1102にログインページを提供する。ブラウザ1102はログインクレデンシャルを含むREST POSTをSSOマイクロサービス1112に送信する。SSOマイクロサービス1112は、アクセストークンを生成し、REST POSTのクラウドゲート1104に送信する。クラウドゲート1104は、認証情報を管理(Admin)SCIMマイクロサービス1116に送信することによりユーザのパスワードを検証する。管理SCIMマイクロサービス1116は、認証が成功したと判断し、対応するメッセージをSSOマイクロサービス1112に送信する。 If the user has a valid SSO session, the SSO microservice 1112 validates the existing session without initiating a login ceremony. If the user does not have a valid SSO session (ie, the session cookie is not present), the SSO microservice 1112 initiates a user login ceremony (eg, displays a branded login page) according to the customer's login preferences. To do so, SSO microservice 1112 redirects browser 1102 to login application service 1114 implemented in JavaScript. Login application service 1114 provides a login page to browser 1102. Browser 1102 sends a REST POST containing login credentials to SSO microservice 1112. SSO microservice 1112 generates an access token and sends it to Cloud Gate 1104 in a REST POST. Cloud Gate 1104 verifies the user's password by sending the authentication information to Admin SCIM microservice 1116. Management SCIM microservice 1116 determines that the authentication is successful and sends a corresponding message to SSO microservice 1112.
一実施形態において、ログインセレモニー中、ログインページは同意ページを表示しない。「ログイン」オペレーションはさらなる同意を要しないからである。代わりに、アプリケーションに対してエクスポーズされている特定のプロファイル属性についてユーザに知らせるプライバシーポリシーが、ログインページ上に記載される。ログインセレモニー中、SSOマイクロサービス1112は顧客のIDPプリファレンスを尊重し、構成され次第、構成されたIDPに対する認証のためにIDPにリダイレクトする。 In one embodiment, the login page does not display a consent page during the login ceremony. This is because the "login" operation does not require further consent. Instead, a privacy policy is written on the login page that informs the user about the specific profile attributes that are exposed to the application. During the login ceremony, the SSO microservice 1112 respects the customer's IDP preferences and, once configured, redirects to the IDP for authentication against the configured IDP.
認証または検証が成功すると、SSOマイクロサービス1112は、ブラウザ1102を、ユーザの認証トークンを含む、新たに作成/更新されたSSOホストHTTPクッキー(たとえば「HOSTURL」が示すホストのコンテキストで作成されたクッキー)を用いて、OAuth2マイクロサービス1110に戻るようにブラウザ1102をリダイレクトする。OAuth2マイクロサービス1110は、AZコード(たとえばOAuthコンセプト)をブラウザ1102に戻しクラウドゲート1104にリダイレクトする。ブラウザ1102はAZコードをクラウドゲート1104に送信し、クラウドゲート1104はREST POSTをOAuth2マイクロサービス1110に送信してアクセストークンおよびアイデンティティトークンを要求する。これらのトークンはどちらも、OAuthマイクロサービス1110にスコーピングされる(オーディエンストークンクレームによって示される)。クラウドゲート1104はこれらのトークンをOAuth2マイクロサービス1110から受ける。 Upon successful authentication or validation, the SSO microservice 1112 directs the browser 1102 to the newly created/updated SSO host HTTP cookie (e.g., the cookie created in the context of the host indicated by "HOSTURL") containing the user's authentication token. ) to redirect the browser 1102 back to the OAuth2 microservice 1110. OAuth2 microservice 1110 redirects the AZ code (eg, OAuth concept) back to browser 1102 and to Cloud Gate 1104. Browser 1102 sends the AZ code to Cloud Gate 1104, which sends a REST POST to OAuth2 microservice 1110 requesting an access token and an identity token. Both of these tokens are scoped to OAuth microservice 1110 (indicated by the audience token claim). Cloud Gate 1104 receives these tokens from OAuth2 microservice 1110.
クラウドゲート1104は、アイデンティティトークンを用いて、認証されたユーザのアイデンティティをその内部アカウント表現にマッピングし、これは、このマッピングを自身のHTTPクッキーに保存してもよい。クラウドゲート1104は次に、ブラウザ1102をクライアント1106にリダイレクトする。すると、ブラウザ1102は、クライアント1106に到達し、対応するレスポンスをクライアント1106から受ける。この時点以降、ブラウザ1102は、アプリケーションのローカルクッキーが有効である限り、アプリケーション(すなわちクライアント1106)にシームレスにアクセスすることができる。ローカルクッキーが無効になると、認証プロセスは繰返される。 Cloud Gate 1104 uses the identity token to map the authenticated user's identity to its internal account representation, and it may save this mapping in its HTTP cookie. Cloud Gate 1104 then redirects browser 1102 to client 1106. The browser 1102 then reaches the client 1106 and receives a corresponding response from the client 1106. From this point on, browser 1102 can seamlessly access the application (ie, client 1106) as long as the application's local cookie is valid. If the local cookie is invalidated, the authentication process repeats.
クラウドゲート1104はさらに、要求に含められたアクセストークンを用いて、「userinfo」をOAuth2マイクロサービス1110からまたはSCIMマイクロサービスから取得する。このアクセストークンは、「プロファイル」スコープによって与えられる属性の「userinfo」リソースにアクセスするには十分である。これは、SCIMマイクロサービスを介して「/me」リソースにアクセスするのにも十分である。一実施形態において、デフォルトで、含まれているアクセストークンは、「プロファイル」スコープの下で与えられるユーザプロファイル属性に対してのみ十分である。他のプロファイル属性へのアクセスは、クラウドゲート1104によって発行されたAZグラントログイン要求において提示された追加の(任意の)スコープに基づいて認可される。 Cloud Gate 1104 further uses the access token included in the request to obtain "userinfo" from OAuth2 microservice 1110 or from the SCIM microservice. This access token is sufficient to access the "userinfo" resource for attributes given by the "profile" scope. This is also sufficient to access the "/me" resource via the SCIM microservice. In one embodiment, by default, the included access token is sufficient only for user profile attributes given under the "Profile" scope. Access to other profile attributes is authorized based on additional (optional) scopes presented in the AZ grant login request issued by Cloud Gate 1104.
ユーザがOAuth2が統合された別のアプリケーションにアクセスする場合、同じプロセスが繰返される。 If the user accesses another application with OAuth2 integration, the same process is repeated.
一実施形態において、SSO統合アーキテクチャは、ブラウザベースのユーザログアウトに対し、同様のOpenID Connectユーザ認証フローを使用する。一実施形態において、既存のアプリケーションセッションを有するユーザは、クラウドゲート1104にアクセスしてログアウトを開始する。その代わりに、ユーザは、IDCS側でログアウトを開始している場合がある。クラウドゲート1104は、特定用途向けのユーザセッションを終了し、OAuth2マイクロサービス1110に対しOAuth2 OpenID プロバイダ(「OP」)ログアウト要求を開始する。OAuth2マイクロサービス1110は、ユーザのホストSSOクッキーを削除するSSOマイクロサービス1112にリダイレクトする。SSOマイクロサービス1112は、ユーザのSSOクッキーにおいて追跡された既知のログアウトエンドポイントに対し一組のリダイレクト(OAuth2 OPおよびSAML IDP)を開始する。 In one embodiment, the SSO integration architecture uses a similar OpenID Connect user authentication flow for browser-based user logout. In one embodiment, a user with an existing application session accesses Cloud Gate 1104 to initiate a logout. Instead, the user may have initiated a logout on the IDCS side. Cloud Gate 1104 terminates the application-specific user session and initiates an OAuth2 OpenID provider (“OP”) logout request to OAuth2 microservice 1110. OAuth2 microservice 1110 redirects to SSO microservice 1112, which deletes the user's host SSO cookie. SSO microservice 1112 initiates a set of redirects (OAuth2 OP and SAML IDP) to known logout endpoints tracked in the user's SSO cookie.
一実施形態において、クラウドゲート1104がSAMLプロトコルを用いてユーザ認証(たとえばログイン)を要求する場合、同様のプロセスが、SAMLマイクロサービスとSSOマイクロサービス1112との間で開始される。 In one embodiment, when Cloud Gate 1104 requires user authentication (eg, login) using the SAML protocol, a similar process is initiated between SAML microservices and SSO microservices 1112.
クラウドキャッシュ
一実施形態は、クラウドキャッシュと呼ばれるサービス/機能を提供する。クラウドキャッシュは、IDCSに与えられて、LDAPベースのアプリケーション(たとえば電子メールサーバ、カレンダーサーバー、何らかのビジネスアプリケーションなど)との通信をサポートする。なぜなら、IDCSはLDAPに従って通信するのではないが、このようなアプリケーションはLDAPに基づいてのみ通信するように構成されているからである。典型的には、クラウドディレクトリは、REST APIを介してエクスポーズされ、LDAPプロトコルに従って通信するのではない。一般的に、企業ファイアウォオールを通してLDAP接続を管理するには、セットアップおよび管理が難しい特殊な構成が必要である。
Cloud Cache One embodiment provides a service/feature called Cloud Cache. A cloud cache is provided to IDCS to support communication with LDAP-based applications (eg, email servers, calendar servers, some business applications, etc.). This is because IDCS does not communicate according to LDAP, but such applications are configured to communicate only based on LDAP. Typically, cloud directories are exposed via REST APIs and do not communicate according to the LDAP protocol. Managing LDAP connections through a corporate firewall typically requires specialized configurations that are difficult to set up and manage.
LDAPベースのアプリケーションをサポートするために、クラウドキャッシュは、LDAP通信を、クラウドシステムとの通信に適したプロトコルに変換する。一般的に、LDAPベースのアプリケーションは、LDAPを介してデータベースを使用する。代わりに、アプリケーションは、SQLのような異なるプロトコルを介してデータベースを使用するように構成されてもよい。しかしながら、LDAPはツリー構造のリソースの階層表現を提供するのに対し、SQLはデータをテーブルとフィールドとして表現する。したがって、LDAPは検索機能用であることがより望ましいであろう。一方、SQLはトランザクション機能用であることがより望ましいであろう。 To support LDAP-based applications, the cloud cache converts LDAP communications into a protocol suitable for communicating with cloud systems. Generally, LDAP-based applications use databases through LDAP. Alternatively, the application may be configured to use the database via a different protocol such as SQL. However, LDAP provides a hierarchical representation of resources in a tree structure, whereas SQL represents data as tables and fields. Therefore, it would be more desirable for LDAP to be used for search functions. On the other hand, it would be more desirable for SQL to be for transactional functions.
一実施形態において、IDCSが提供するサービスを、LDAPベースのアプリケーションで使用して、たとえば、アプリケーションのユーザを認証する(すなわちアイデンティティサービス)、またはアプリケーションのセキュリティポリシーを施行する(すなわちセキュリティサービス)ことができる。一実施形態において、IDCSとのインターフェイスは、ファイアウォールを通り、HTTP(たとえばREST)に基づく。典型的に、企業ファイアウォールは、内部LDAP通信へのアクセスを、当該通信がセキュア・ソケット・レイヤ(Secure Sockets Layer)(「SSL」)を実現する場合であっても許可しない。また、企業ファイアウォールは、TCPポートがファイアウォールを通してエクスポーズされることを許可しない。しかしながら、クラウドキャッシュは、LDAPとHTTPとの間の変換を行って、LDAPベースのアプリケーションが、IDCSが提供するサービスに到達できるようにし、ファイアウォールはHTTPに対してオープンである。 In one embodiment, the services provided by IDCS can be used in an LDAP-based application, for example, to authenticate users of the application (i.e., identity service) or to enforce the application's security policy (i.e., security service). can. In one embodiment, the interface with IDCS is through a firewall and is based on HTTP (eg, REST). Typically, corporate firewalls do not allow access to internal LDAP communications, even if those communications implement Secure Sockets Layer ("SSL"). Also, corporate firewalls do not allow TCP ports to be exposed through the firewall. However, Cloud Cache converts between LDAP and HTTP to allow LDAP-based applications to reach the services provided by IDCS, and the firewall is open to HTTP.
一般的に、LDAPディレクトリは、マーケティングおよび開発などのビジネスライン(line of business)で使用されてもよく、ユーザ、グループ、業務などを規定する。一例において、マーケティングおよび開発ビジネスは、多様な顧客を対象としている場合があり、顧客ごとに、独自のアプリケーション、ユーザ、グループ、業務などを有し得る。LDAPキャッシュディレクトリを実行し得るビジネスラインの別の例は、無線サービスプロバイダである。この場合、無線サービスプロバイダのユーザが行う各コールは、LDAPディレクトリに対してユーザのデバイスを認証し、LDAPディレクトリ内の対応する情報の一部は課金システムと同期させてもよい。これらの例において、LDAPは、実行時に探索されるコンテンツを物理的に分離するための機能を提供する。 Generally, LDAP directories may be used in lines of business, such as marketing and development, to define users, groups, operations, and so on. In one example, a marketing and development business may serve a variety of customers, and each customer may have its own applications, users, groups, operations, and so on. Another example of a business line that may implement an LDAP cache directory is a wireless service provider. In this case, each call made by a user of the wireless service provider authenticates the user's device against the LDAP directory, and some of the corresponding information in the LDAP directory may be synchronized with the billing system. In these examples, LDAP provides the ability to physically separate the content being explored at runtime.
一例において、無線サービスプロバイダは、短期マーケティングキャンペーンを支援するIDCSが提供するサービスを使用する一方で、自身のアイデンティティ管理サービスをそのコアビジネス(たとえば通常のコール)のために扱ってもよい。この場合、クラウドキャッシュは、LDAPを、クラウドに対して実行する一組のユーザおよび一組のグループを有する場合は「平坦にする」。一実施形態において、IDCSにおいて実現されるクラウドキャッシュの数はいくつであってもよい。 In one example, a wireless service provider may use the services provided by IDCS to support short-term marketing campaigns, while handling its own identity management services for its core business (eg, regular calls). In this case, the cloud cache "flattens" LDAP when it has one set of users and one set of groups running to the cloud. In one embodiment, any number of cloud caches may be implemented in IDCS.
分散型データグリッド
一実施形態において、IDCSにおけるキャッシュクラスタは、たとえばその開示を本明細書に引用により援用する米国特許公開第2016/0092540号に開示されている分散型データグリッドに基づいて実現される。分散型データグリッドは、分散環境またはクラスタ環境内で1つ以上のクラスタにおいてコンピュータサーバの集合体が、一緒に作業することにより情報を管理し計算などの関連動作を管理するシステムである。分散型データグリッドを用いることで、サーバ間で共有されるアプリケーションオブジェクトおよびデータを管理することができる。分散型データグリッドは、短いレスポンスタイム、高いスループット、予測可能なスケーラビリティ、継続的なアベイラビリティ、および情報の信頼性を提供する。具体的な例として、たとえばオラクル社のOracle Coherenceのデータグリッドのような分散型データグリッドは、情報をインメモリに格納することによりさらに高いパフォーマンスを達成し、複数のサーバにわたって同期が取られた情報のコピーを保持するにあたって冗長性を用いることにより、サーバ故障イベント時におけるシステムの回復力とデータの継続的なアベイラビリティとを保証する。
Distributed Data Grid In one embodiment, the cache cluster in IDCS is implemented based on the distributed data grid disclosed in, for example, U.S. Patent Publication No. 2016/0092540, the disclosure of which is incorporated herein by reference. . A distributed data grid is a system in which a collection of computer servers in one or more clusters work together in a distributed or clustered environment to manage information and related operations such as calculations. Distributed data grids can be used to manage application objects and data that are shared between servers. Distributed data grids provide short response times, high throughput, predictable scalability, continuous availability, and information reliability. As a specific example, distributed data grids, such as Oracle's Oracle Coherence data grid, achieve even higher performance by storing information in-memory and synchronized information across multiple servers. Redundancy is used in maintaining copies of the data to ensure system resiliency and continued availability of data in the event of a server failure.
一実施形態において、IDCSは、Coherenceなどの分散型データグリッドを実現して、すべてのマイクロサービスがブロックされることなく共有キャッシュオブジェクトへのアクセスを要求できるようにする。Coherenceは、従来のリレーショナルデータベース管理システムと比較して、より高い信頼性、スケーラビリティ、およびパフォーマンスが得られるように設計された、所有権を主張できるJavaベースのインメモリデータグリッドである。Coherenceは、ピアトゥピア(すなわち中央マネージャがない)インメモリ分散型キャッシュを提供する。 In one embodiment, IDCS implements a distributed data grid, such as Coherence, that allows all microservices to request access to shared cache objects without being blocked. Coherence is a proprietary, Java-based, in-memory data grid designed for greater reliability, scalability, and performance compared to traditional relational database management systems. Coherence provides a peer-to-peer (i.e., no central manager) in-memory distributed cache.
図12は、データを格納しデータアクセス権をクライアント1250に与え本発明の実施形態を実現する分散型データグリッド1200の一例を示す。「データグリッドクラスタ」または「分散型データグリッド」は、分散環境またはクラスタ環境内で1つ以上のクラスタ(たとえば1200a、1200b、1200c)において一緒に作業することにより情報を格納し関連する計算などの動作を管理する複数のコンピュータサーバ(たとえば1220a、1220b、1220c、および1220d)を含むシステムである。分散型データグリッド1200は、クラスタ1200aにおいて5つのデータノード1230a、1230b、1230c、1230d、および1230eとともに4つのサーバ1220a、1220b、1220c、1220dを含むものとして示されているが、分散型データグリッド1200は、任意の数のクラスタおよび各クラスタにおける任意の数のサーバおよび/またはノードを含み得る。ある実施形態において、分散型データグリッド1200は本発明を実現する。
FIG. 12 illustrates an example of a distributed
図12に示されるように、分散型データグリッドは、一緒に作業する多数のサーバ(たとえば1220a、1220b、1220c、および1220d)にデータを分散させることによってデータ格納および管理機能を提供する。データグリッドクラスタの各サーバは、たとえば、1つから2つのプロセッサソケットと1プロセッサソケット当たり2つから4つのCPUコアとを有する「コモディティ(commodity)x86」サーバハードウェアプラットフォームのような、従来のコンピュータシステムであってもよい。各サーバ(たとえば1220a、1220b、1220c、および1220d)は、1つ以上のCPUと、ネットワークインターフェイスカード(Network Interface Card)(「NIC」)と、たとえば最小で4GBのRAM最大で64GB以上のRAMを含むメモリとで構成されている。サーバ1220aは、CPU1222aと、メモリ1224aと、NIC1226aとを有するものとして示されている(これらの要素は他のサーバ1220b、1220c、1220d上にもあるが図示されていない)。任意で、各サーバにフラッシュメモリ(たとえばSSD 1228a)を設けることで過剰な記憶容量を提供してもよい。提供時、SSD容量は、好ましくはRAMのサイズの10倍である。データグリッドクラスタ1200aのサーバ(たとえば1220a、1220b、1220c、1220d)は、高帯域幅のNIC(たとえばPCI-XまたはPCIe)を用いて高性能ネットワークスイッチ1220(たとえばギガビット以上のイーサネット(登録商標))に接続されている。
As shown in FIG. 12, a distributed data grid provides data storage and management functionality by distributing data across multiple servers (eg, 1220a, 1220b, 1220c, and 1220d) that work together. Each server in the data grid cluster is a conventional computer, such as a "commodity x86" server hardware platform with one to two processor sockets and two to four CPU cores per processor socket. It may be a system. Each server (e.g., 1220a, 1220b, 1220c, and 1220d) may have one or more CPUs, a Network Interface Card ("NIC"), and, for example, a minimum of 4 GB of RAM and a maximum of 64 GB or more of RAM. Contains memory. Server 1220a is shown as having a
クラスタ1200aは、故障中にデータが失われる可能性を避けるために最小で4つの物理サーバを含むことが好ましいが、典型的な設備はより多くのサーバを有する。各クラスタに存在するサーバが多いほど、フェイルオーバーおよびフェイルバックの効率は高く、サーバの故障がクラスタに与える影響は小さくなる。サーバ間の通信時間を最短にするために、各データグリッドクラスタは、サーバ間の単一ホップ通信を提供する単一のスイッチ1202に限定されることが理想的である。このように、クラスタは、スイッチ1202上のポートの数によって制限される。したがって、典型的なクラスタは4~96の物理サーバを含む。
Although cluster 1200a preferably includes a minimum of four physical servers to avoid the possibility of data loss during a failure, typical installations have many more servers. The more servers there are in each cluster, the higher the efficiency of failover and failback, and the less impact a server failure has on the cluster. To minimize communication time between servers, each data grid cluster is ideally limited to a
分散型データグリッド1200のほとんどの広域ネットワーク(Wide Area Network)(「WAN」)構成において、WAN内の各データセンターは、独立しているが相互に接続されているデータグリッドクラスタ(たとえば1200a、1200b、および1200c)を有する。WANは、たとえば図12に示されるクラスタよりも多くのクラスタを含み得る。加えて、相互接続されているが独立しているクラスタ(たとえば1200a、1200b、1200c)を用いることにより、および/または相互接続されているが独立しているクラスタを、互いに離れているデータセンター内に配置することにより、分散型データグリッドは、自然災害、火災、洪水、長期停電などによって生じる、1つのクラスタのすべてのサーバの同時損失を防止すべく、クライアント1250に対するデータおよびサービスを保証することができる。
In most Wide Area Network ("WAN") configurations of distributed
1つ以上のノード(たとえば1230a、1230b、1230c、1230dおよび1230e)は、クラスタ1200aの各サーバ(たとえば1220a、1220b、1220c、1220d)上で動作する。分散型データグリッドにおいて、ノードは、たとえばソフトウェアアプリケーション、仮想マシンなどであってもよく、サーバは、ノードがその上で動作するオペレーティングシステム、ハイパーバイザなど(図示せず)を含み得る。Oracle Coherenceのデータグリッドでは、各ノードはJava仮想マシン(Java virtual machine)(「JVM」)である。CPUの処理能力およびサーバ上で利用できるメモリに応じて、各サーバ上に多数のJVM/ノードを設けてもよい。JVM/ノードは、分散型データグリッドの要求に応じて、追加、起動、停止、および削除されてもよい。Oracle Coherenceを実行するJVMは、起動時に自動的に参加しクラスタ化する。クラスタに加わるJVM/ノードは、クラスタメンバまたはクラスタノードと呼ばれる。 One or more nodes (eg, 1230a, 1230b, 1230c, 1230d, and 1230e) run on each server (eg, 1220a, 1220b, 1220c, 1220d) of cluster 1200a. In a distributed data grid, nodes may be, for example, software applications, virtual machines, etc., and servers may include the operating system, hypervisor, etc. (not shown) on which the nodes operate. In an Oracle Coherence data grid, each node is a Java virtual machine (“JVM”). There may be multiple JVMs/nodes on each server depending on the CPU processing power and memory available on the server. JVMs/nodes may be added, started, stopped, and removed as required by the distributed data grid. The JVM running Oracle Coherence automatically joins and clusters upon startup. JVMs/nodes that join a cluster are called cluster members or cluster nodes.
アーキテクチャ
各クライアントまたはサーバは、情報伝達のためにバスまたはその他の通信機構を含み、情報処理のためにバスに結合されたプロセッサを含む。プロセッサは、どのタイプの汎用または専用プロセッサであってもよい。各クライアントまたはサーバはさらに、プロセッサによって実行される命令および情報を格納するためのメモリを含み得る。メモリは、ランダムアクセスメモリ(「RAM」)、読出専用メモリ(「ROM」)、磁気もしくは光ディスクなどのスタティックストレージ、またはその他任意の種類のコンピュータ読取可能媒体を組み合わせたもので構成することができる。各クライアントまたはサーバはさらに、ネットワークへのアクセス提供のためにネットワークインターフェイスカードなどの通信デバイスを含み得る。したがって、ユーザは、各クライアントまたはサーバに対して、直接、またはネットワークを通して遠隔から、またはその他任意の手段で、インターフェイスすることができる。
Architecture Each client or server includes a bus or other communication mechanism for communicating information and includes a processor coupled to the bus for processing information. The processor may be any type of general purpose or special purpose processor. Each client or server may further include memory for storing instructions and information executed by the processor. The memory may consist of random access memory ("RAM"), read-only memory ("ROM"), static storage such as magnetic or optical disks, or any other type of computer-readable medium in combination. Each client or server may further include a communication device such as a network interface card for providing access to a network. Accordingly, a user may interface with each client or server directly, remotely through a network, or by any other means.
コンピュータ読取可能な媒体は、プロセッサからアクセスすることが可能な利用可能な媒体であればどのようなものでもよく、揮発性媒体および不揮発性媒体、リムーバブルおよび非リムーバブル媒体、ならびに通信媒体を含む。通信媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、または、たとえば搬送波もしくはその他の搬送機構などの変調されたデータ信号内のその他のデータを含んでいてもよく、任意の情報伝達媒体を含む。 Computer-readable media can be any available media that can be accessed by a processor and includes volatile and nonvolatile media, removable and non-removable media, and communication media. Communication media may include computer-readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information-carrying media. include.
プロセッサはさらに、液晶ディスプレイ(「LCD」)などのディスプレイにバスを介して結合されてもよい。キーボード、およびコンピュータマウスなどのカーソル制御デバイスが、さらにバスに結合されることにより、ユーザが各クライアントまたはサーバに対してインターフェイスできるようにしてもよい。 The processor may further be coupled to a display, such as a liquid crystal display (“LCD”), via a bus. A keyboard and cursor control device, such as a computer mouse, may also be coupled to the bus to allow a user to interface with each client or server.
一実施形態において、メモリは、プロセッサが実行すると機能を提供するソフトウェアモジュールを格納する。モジュールは、各クライアントまたはサーバにオペレーティングシステム機能を提供するオペレーティングシステムを含む。モジュールはさらに、クラウドアイデンティティ管理機能を提供するためのクラウドアイデンティティ管理モジュールと、本明細書に開示されているその他すべての機能とを含み得る。 In one embodiment, the memory stores software modules that, when executed by the processor, provide functionality. The module includes an operating system that provides operating system functionality to each client or server. The module may further include a cloud identity management module to provide cloud identity management functionality and all other functionality disclosed herein.
クライアントは、クラウドサービスなどのウェブサービスにアクセスし得る。一実施形態において、ウェブサービスは、オラクル社のWebLogicサーバ上で実現されてもよい。他の実施形態ではウェブサービスの他の実装形態を使用してもよい。ウェブサービスは、クラウドデータを格納しているデータベースにアクセスする。 Clients may access web services such as cloud services. In one embodiment, web services may be implemented on Oracle's WebLogic server. Other implementations of web services may be used in other embodiments. Web services access databases that store cloud data.
IAM機能の例
一実施形態において、IAM機能は、メモリにまたはその他のコンピュータ読取可能なもしくは有形の媒体に格納されたソフトウェアによって実現され、プロセッサによって実行される。
Example of IAM Functionality In one embodiment, IAM functionality is implemented by software stored in memory or other computer-readable or tangible media and executed by a processor.
アイデンティティ管理サービスの実行の要求を受ける。一実施形態において、この要求は、アイデンティティ管理サービスと当該アイデンティティ管理サービスを実行するように構成されたマイクロサービスとを特定するAPIに対するコールを含む。一実施形態において、マイクロサービスは、他のモジュール/マイクロサービスと通信することが可能な内蔵モジュールであり、各マイクロサービスは、他からコンタクトが可能な無名のユニバーサルポートを有する。たとえば、一実施形態において、図6に示されるように、各種アプリケーション/サービス602は、IDCSマイクロサービス614を使用するためにIDCS APIに対してHTTPコールを行うことができる。一実施形態において、マイクロサービスはランタイムコンポーネント/プロセスである。 Receive requests to perform identity management services. In one embodiment, the request includes a call to an API that identifies the identity management service and the microservice configured to perform the identity management service. In one embodiment, microservices are self-contained modules that can communicate with other modules/microservices, and each microservice has an unnamed universal port that can be contacted by others. For example, in one embodiment, as shown in FIG. 6, various applications/services 602 can make HTTP calls to the IDCS API to use IDCS microservices 614. In one embodiment, microservices are runtime components/processes.
一実施形態において、この要求はURLを含む。一実施形態において、マイクロサービスはURLのプレフィックスにおいて特定される。一実施形態において、URLのリソース部分はAPIを特定する。一実施形態において、URLのホスト部分は要求に関連するリソースのテナンシーを特定する。たとえば、IDCSのウェブ環境における「ホスト/マイクロサービス/リソース」のようなURLにおいて、マイクロサービスは特定のURLプレフィックスを有することを特徴とし(たとえば「host/oauth/v1」)、実際のマイクロサービスは「oauth/v1」であり、「oauth/v1」の下で複数のAPIが存在し、たとえば、トークン(token)を要求するためのAPI:「host/oauth/v1/token」、ユーザを認証するためのAPI:「host/oauth/v1/authorize」などである。すなわち、URLはマイクロサービスを実現し、URLのリソース部分はAPIを実現する。したがって、同じマイクロサービスの下で複数のAPIが集約される。一実施形態において、URLのホスト部分はテナントを特定する(たとえば、https://tenant3.identity.oraclecloud.com:/oauth/v1/token")。 In one embodiment, this request includes a URL. In one embodiment, microservices are identified in the prefix of the URL. In one embodiment, the resource portion of the URL identifies the API. In one embodiment, the host portion of the URL identifies the tenancy of the resource associated with the request. For example, in a URL such as "host/microservice/resource" in the IDCS web environment, a microservice is characterized by having a specific URL prefix (for example, "host/oauth/v1"), and the actual microservice is "oauth/v1", and there are multiple APIs under "oauth/v1", for example, API to request a token: "host/oauth/v1/token", to authenticate the user API for: "host/oauth/v1/authorize" etc. That is, the URL implements a microservice, and the resource part of the URL implements an API. Therefore, multiple APIs are aggregated under the same microservice. In one embodiment, the host portion of the URL identifies the tenant (eg, https://tenant3.identity.oraclecloud.com:/oauth/v1/token").
次に要求が認証される。一実施形態において、要求は、本明細書においてたとえば図6のウェブルーティング層610および/または図7のクラウドゲート702を参照しながら説明したクラウドゲートのようなセキュリティゲートによって認証される。
The request is then authenticated. In one embodiment, the request is authenticated by a security gate, such as Cloud Gate, described herein with reference to, for example, web routing layer 610 of FIG. 6 and/or
次に、たとえば本明細書において図6のIDCS「APIプラットフォーム」およびIDCS中間層614のマイクロサービスへのアクセスを参照しながら説明したように、マイクロサービスがAPIに基づいてアクセスされる。一実施形態において、マイクロサービスとの通信は、マイクロサービスの無名ユニバーサルポートを通じて構成される。一実施形態において、マイクロサービスの無名ユニバーサルポートは、従来マイクロサービスがエクスポーズする(たとえば従来のHTTPポートとしての)標準通信チャネルであり、同一サービス内のその他いずれかのモジュール/マイクロサービスがそれに対してトークできるようにする標準通信チャネルである。一実施形態において、マイクロサービスは、1つ以上のAPIをエクスポーズすることによって1つ以上の機能を提供する。一実施形態において、マイクロサービスとの通信は、1つ以上のAPIを通じてのみ実現される。すなわち、マイクロサービスへの接触/コンタクトは、このようなAPIにコールすることによってのみ実現される。一実施形態において、マイクロサービスとの通信は、軽量プロトコルに従って構成される。一実施形態において、軽量プロトコルは、HTTPおよびRESTを含む。一実施形態において、要求は、RESTful HTTP APIに対するコールを含む。したがって、一実施形態はディスパッチ機能を提供する。各HTTP要求は、URIおよび動詞を含む。本実施形態は、URIのエンドポイント(ホスト/サービス/リソース)をパースし、これを、HTTP動詞(たとえば、POST、PUT、PATCH、またはDelete)と組み合わせることにより、適切なモジュールの適切な方法をディスパッチする(または呼び出す)。このパターンは、RESTによくあるものであり、さまざまなパッケージ(たとえばJersey)によってサポートされる。 The microservices are then accessed based on the API, eg, as described herein with reference to the IDCS "API Platform" of FIG. 6 and accessing microservices in the IDCS middle layer 614. In one embodiment, communication with the microservice is configured through the microservice's anonymous universal port. In one embodiment, a microservice's anonymous universal port is a standard communication channel (e.g., as a traditional HTTP port) that the microservice exposes to which any other module/microservice within the same service It is a standard communication channel that allows people to communicate and talk. In one embodiment, a microservice provides one or more functionality by exposing one or more APIs. In one embodiment, communication with microservices is accomplished solely through one or more APIs. That is, contacting/contacting a microservice is only accomplished by calling such an API. In one embodiment, communication with microservices is configured according to a lightweight protocol. In one embodiment, lightweight protocols include HTTP and REST. In one embodiment, the request includes a call to a RESTful HTTP API. Accordingly, one embodiment provides dispatch functionality. Each HTTP request includes a URI and a verb. The present embodiment parses the endpoint (host/service/resource) of the URI and combines this with an HTTP verb (e.g., POST, PUT, PATCH, or Delete) to determine the appropriate method for the appropriate module. Dispatch (or call). This pattern is common in REST and is supported by various packages (eg Jersey).
次に、たとえば本明細書において図6のIDCS「APIプラットフォーム」およびIDCS中間層614のマイクロサービスへのアクセスを参照しながら説明したように、アイデンティティ管理サービスがマイクロサービスによって実行される。一実施形態において、マイクロサービスは、ステートレスであり、横方向にスケーラブルであり、独立してデプロイ可能である。一実施形態において、マイクロサービスの各物理的実装は、複数のテナントを安全にサポートするように構成される。一実施形態において、アイデンティティ管理サービスは、ログインサービス、SSOサービス、フェデレーションサービス、トークンサービス、ディレクトリサービス、プロビジョニングサービス、またはRBACサービスを含む。 Identity management services are then performed by the microservices, eg, as described herein with reference to the IDCS "API platform" of FIG. 6 and IDCS middle layer 614 access to microservices. In one embodiment, microservices are stateless, horizontally scalable, and independently deployable. In one embodiment, each physical implementation of a microservice is configured to securely support multiple tenants. In one embodiment, the identity management service includes a login service, an SSO service, a federation service, a token service, a directory service, a provisioning service, or an RBAC service.
データレプリケーション
一般的に、オラクルパブリッククラウド(Oracle Public Cloud)(「OPC」)のようなパブリッククラウドは、仮想マシン(virtual machine)(「VM」)、アプリケーション、またはストレージ等のリソースを一般大衆がインターネットを通じて利用できるようにすることにより、世界中の顧客にIaaS、PaaSおよびSaaSサービスを提供しこれらをサポートすることを意図している。パブリッククラウドは、異なる地理的地域にそれぞれが存在する複数のデータセンターを有することにより、各データセンターの最も近くに位置する顧客に対してサービスを最小の遅延で提供するものとして知られている。実施形態において、パブリッククラウドサービスは、「地域」と呼ぶ物理的境界によって分離されている顧客をカバーする異なるデータセンターにデプロイされてもよい。
Data Replication Public clouds, such as Oracle Public Cloud (“OPC”), typically provide resources such as virtual machines (“VMs”), applications, or storage that are accessible to the general public over the Internet. The company intends to provide and support IaaS, PaaS and SaaS services to customers around the world by making them available through the Internet. Public clouds are known for having multiple data centers, each located in a different geographic region, thereby providing services with minimal delay to customers located closest to each data center. In embodiments, public cloud services may be deployed in different data centers serving customers that are separated by physical boundaries referred to as "regions."
図13は、一実施形態に係る、各々が「地域」を形成するデプロイされた複数のデータセンター(「DC」で示される)を有するパブリッククラウド1300を示す。たとえば、データセンター1301はカナダの一都市に位置し、データセンター1302はドイツの一都市に位置し、データセンター1303はオーストラリアの一都市に位置する。実施形態において、1つ以上のデータセンターが、1つ以上の「コントロールプレーン」デプロイメント(「CP」で示される)が管理する1つの「アイランド」に統合される。アイランドは、1つの「クラウド」に統合された地域の集まりであり、1つのコントロールプレーンによって管理される。たとえば、コントロールプレーン1310はデータセンター1301、1304、1305、1306および1307を管理し、コントロールプレーン1311はデータセンター1308および1309を管理する。スケーラビリティ要求とそれぞれの地域における顧客負荷とに基づいて、典型的なコントロールプレーンデプロイメントは1つ以上の地域に対応することができる。一実施形態において、あるコントロールプレーンコンポーネントが2つ以上の地域に対応するという状況において、このコンポーネントは1つのアイデンティティですべての地域とやり取りする権限を必要とする。
FIG. 13 illustrates a
顧客アカウントは、各種パブリッククラウドサービスを購入/取得する各ユーザ/顧客ごとに、クラウド1300によって管理される。顧客が利用できる一種のサービスとして、上で開示したマルチテナントアイデンティティ管理サービス、またはIDCSを挙げることができ、このサービスを、コントロールプレーンコンポーネントとして実現しすべての地域(すなわちすべてのデータセンター)において別々にデプロイすることにより、その地域のリソースを保護することができる。上述のように、一実施形態において、特定の地域でデプロイされていないコントロールプレーンは、これがデプロイされていない地域のコンポーネントまたはテナントとやり取りするためには固有の権限を必要とする。たとえば、ある地域に指定されたコントロールプレーンコンポーネントが、別の地域に位置する(すなわち異なるIDCSデプロイメントでホストされている)IDCS顧客テナンシーにアクセスすることを所望する場合がある。そのためには、一方の地域のIDCSに割り当てられたコンポーネント/顧客が他方の地域のIDCSに対してIDCS APIを呼び出す(たとえば図6のIDCSマイクロサービス614のうちの特定のマイクロサービスにアクセスする)ことができるように、これらのデプロイメント間で信頼が確立されている必要がある。周知の解決策では、ある地域に指定されこの地域に割り当てられたユーザは、この地域のリソースのみにアクセスでき、その他の地域のリソースにはアクセスできず、この地域のみから認証を受けることができ、その他の地域から認証を受けることはできない。
A customer account is managed by the
これに対し、実施形態の場合、ある地域の「グローバルアクセストークン」または「グローバルトークン」と呼ばれる新規のアクセストークンを有するユーザは、このグローバルトークンを用いて別の地域(すなわち遠隔地域)のリソースにアクセスすることができる。実施形態は、ユーザ/顧客がどこにいようとリソースおよび認証機能を提供すべくさまざまなIDCS地域を管理するために、如何にして地域間で信頼を確立するかに向けらている。一般的に、地域間信頼機能を可能にするためにはグローバルトークンをユーザに与える必要がある。そうすると、このグローバルトークンは宛先トラストセンターによって消費される。 In contrast, in embodiments, a user with a new access token, referred to as a "global access token" or "global token" in one region, can use this global token to access resources in another region (i.e., a remote region). can be accessed. Embodiments are directed to how to establish trust between regions to manage various IDCS regions to provide resources and authentication functionality to users/customers wherever they are located. Generally, a global token needs to be given to the user to enable cross-region trust functionality. This global token is then consumed by the destination trust center.
たとえば、「クライアント」(すなわちユーザまたはサービスにアクセスするための任意のアプリケーションもしくはプログラム的アプローチ)が、シカゴのデータセンター1307(シカゴはこのデータセンターが最初に構築された場所)のみに存在する場合がある。各クライアントは、自身のアイデンティティを有しており、それを検証してトークンを取得する必要がある。クライアントが、たとえばシドニーに位置するデータセンター1303等の、クラウド1300の他のデータセンター(すなわち他のデータセンターのIDCSデプロイメント)のうちのいずれにも存在していないまたはフットプリントを有していないと仮定する。そのため、クライアントは、シドニーの近くに物理的に位置していても、シドニーには存在していないので、シドニーのデータセンターから認証を受けることはできない。この問題を解決するために、実施形態は、グローバルアクセストークンを生成することにより、必要な地域間の信頼を提供する。よって、クライアントは、シカゴでの認証後に、シドニーにおけるグローバルアクセストークンの回復を要求することになる。シカゴDC1307は、グローバルトークンを生成しグローバル秘密鍵を用いてグローバルトークンに署名する。グローバル秘密鍵はすべてのDCで入手できる。実施形態において、グローバルアクセストークンを使用してIDCS REST APIのみにアクセスし、そのため、このグローバルトークンを用いて複数地域にまたがる非IDCS REST APIにアクセスするとエラーが生じるであろう。
For example, a "client" (i.e., any application or programmatic approach for accessing a user or service) may reside only in
シドニーDC1303のIDCSデプロイメントは、グローバルトークンが提示されると、このグローバルトークンを消費し検証する。そうすると、クライアントは、シドニーでは指定されていないものの、シドニーのリソースにアクセスできる。実施形態の場合、クライアントは、1つのIDCSデプロイメントで指定されるだけでよいが、それでもなお他のデプロイメントのリソースにアクセスできる。
The IDCS deployment at
しかしながら、クライアントが別の地域のリソースにアクセスすること以上を所望する場合がある。たとえば、周知のシステムにおいて、クライアントがアイデンティティクラウドアカウントまたはIDCSデプロイメントをある地域(たとえばシカゴまたは「マスター」データセンター)で作成することを所望する場合、顧客はそのアカウントを作成する。しかしながら、同じ顧客がそのアイデンティティを別の地域(たとえばアムステルダム)で用いてその地域の作業負荷を使用することを所望する場合、この顧客は先ずアムステルダムで新たなアイデンティティクラウドアカウントを作成しなければならないが、そうすると、同じ顧客に対して別々の2つのアイデンティティアカウントが作成されることになる。そうでなければ、顧客は第1の地域とは通信を続けることができるものの、顧客がアムステルダムにいてシカゴの作業負荷の使用を強いられた場合は大きな遅延が生じることになる。 However, a client may desire more than just accessing resources in another region. For example, in known systems, if a client desires to create an identity cloud account or IDCS deployment in a certain region (eg, Chicago or a "master" data center), the customer creates that account. However, if the same customer wants to use that identity in another region (for example, Amsterdam) and use that region's workload, the customer must first create a new Identity Cloud account in Amsterdam. , then two separate identity accounts would be created for the same customer. Otherwise, the customer could continue to communicate with the first region, but would experience significant delays if the customer was in Amsterdam and forced to use Chicago's workload.
これに対し、本発明の実施形態は、シカゴ(すなわち「マスター」データセンター)における顧客のアイデンティティクラウドアカウントを、アムステルダム(すなわち「レプリカ」データセンター)またはその他任意の地域に自動的にレプリケートする。一実施形態において、顧客/テナントは、シカゴの既存のアカウントをアムステルダムから使用するという選択肢が与えられ、その場合、情報がアムステルダムにブートストラップされ、その後は変更が絶えず取り込まれてレプリケートされる。 In contrast, embodiments of the present invention automatically replicate a customer's identity cloud account in Chicago (ie, the "master" data center) to Amsterdam (ie, the "replica" data center) or any other location. In one embodiment, a customer/tenant is given the option of using an existing account in Chicago from Amsterdam, where the information is bootstrapped to Amsterdam and changes are continuously captured and replicated thereafter.
実施形態において、地域は、IDCSサービスをデプロイすることが可能なエンティティを表す。地域はアイランドに含まれる。各地域のIDCSデプロイメントは、デプロイメント固有のデータおよびメタデータアーティファクトを有する。 In embodiments, a region represents an entity that can deploy IDCS services. The area is included in the island. Each regional IDCS deployment has deployment-specific data and metadata artifacts.
実施形態において、「マスター」地域はマスターテナントが位置する場所であり、レプリカ地域は「レプリカ」テナントが位置する場所である。実施形態におけるマスターテナントは、顧客によって選ばれた特定の地域における物理的IDCSテナントストライプである。各ストライプは、データベーススキーマに格納され、レプリカテナントストライプにレプリケートされる顧客のマスターデータセットを保持する。実施形態におけるレプリカテナントは、以下で開示される結果整合レプリケーションプロセスによって作成され管理される物理的IDCSテナントストライプである。各ストライプは、データベーススキーマに格納され、顧客のレプリカデータを保持する。レプリケーションクラスタは、1つの地域がマスター地域でありその他の地域がレプリカ地域であるアイランド内のIDCS地域のセットである。 In embodiments, the "master" region is where the master tenant is located and the replica region is where the "replica" tenant is located. The master tenant in an embodiment is a physical IDCS tenant stripe in a particular region selected by the customer. Each stripe holds a customer's master data set that is stored in a database schema and replicated to replica tenant stripes. A replica tenant in an embodiment is a physical IDCS tenant stripe that is created and managed by the eventually consistent replication process disclosed below. Each stripe is stored in a database schema and holds replica data for a customer. A replication cluster is a set of IDCS regions within an island where one region is the master region and the other regions are replica regions.
しかしながら、複数の地域にまたがるレプリケーションまたはブートストラップはいくつかの問題を引き起こす。たとえば、変更ログはマスターで作成されてレプリカに送信される。図14は、本発明の実施形態に係る、マスターIDCSデプロイメント1401(「IDCS1」)とレプリカIDCSデプロイメント1402(「IDCS2」)との間におけるレプリケーション変更イベント/ログの処理フローを示す。一実施形態において、図14(ならびに以下の図15および図17)のフロー図の機能は、メモリまたはその他のコンピュータ読取可能なもしくは有形の媒体に格納されたソフトウェアによって実現され、プロセッサによって実行される。その他の実施形態において、この機能は、ハードウェアによって(たとえば特定用途向け集積回路(「ASIC])、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)などの使用を通して)、または、ハードウェアとソフトウェアの任意の組み合わせによって実現されてもよい。 However, replication or bootstrapping across multiple regions poses several problems. For example, a change log is created on the master and sent to the replica. FIG. 14 illustrates the processing flow of replication change events/logs between a master IDCS deployment 1401 (“IDCS1”) and a replica IDCS deployment 1402 (“IDCS2”) according to an embodiment of the invention. In one embodiment, the functions of the flow diagram of FIG. 14 (and FIGS. 15 and 17 below) are implemented by software stored in memory or other computer-readable or tangible medium and executed by a processor. . In other embodiments, this functionality is provided by hardware (e.g., through the use of application specific integrated circuits ("ASICs"), programmable gate arrays ("PGAs"), field programmable gate arrays ("FPGAs"), etc.); Alternatively, it may be realized by any combination of hardware and software.
マスター1401は、管理サービス(admin service)1405(すなわち図11の管理SCIMマイクロサービス1116のような管理SCIMマイクロサービス)と、レプリケーションサービス1408(実施形態ではマイクロサービスとしても実現される)とを含む。同様に、レプリカ1402も、管理SCIMマイクロサービス(図示せず)と、レプリケーションサービス1407とを含む。データストア1406および1412は、リソースのうちのいくつかとその他の関連データとを格納する。一実施形態において、各リソースはIDCS REST APIリソースである。
実施形態において、各IDCSデプロイメント1401、1402はそれぞれ1つ以上のシャードキュー(sharded queue)1430、1431を含む。シャードキューは、システムパーティショニングによって複数の独立した物理キューにトランスペアレントに分割される1つの論理キューである。一実施形態において、シャードキューはJavaメッセージングサービス(Java Messaging Service)(「JMS」)シャードキューである。
In embodiments, each
1420で、レプリケート可能なリソースのうちの1つに対するSCIM書込要求が、マスター1401の管理サービス1405に届く。
At 1420, a SCIM write request for one of the replicable resources reaches the
1421で、管理サービス1405は、この要求を処理しデータストア1406にリソースを書き込む。一実施形態において、リソースを「書き込む」ことは、SQLステートメントを使用しJavaデータベース接続(Java Database Connection)(「JDBC」)を介してリソースをデータベースに「パーシストする(persist)」ことを含む。
At 1421,
1422で、管理サービス1405は、(データストア1406にリソースを書き込んだ結果として)変更イベントを生成し、複数のシャードキュー1430のうちの1つに書き込む。一実施形態において、テナントに関する変更イベントは常に、計算されたハッシュに基づいて同じシャードにエンキュー(enqueue)される。
At 1422,
1423で、各シャードキュー1430におけるレプリケーション変更イベントが、レプリケーションサービス1408の専用トランスポートハンドラ1435により、キュー1430にエンキューされたときと同じ順序でデキュー(dequeue)される。
At 1423, replication change events in each
1451で、トランスポートハンドラ1435は、バルクメッセージの形態の変更イベントを、REST APIコールを介してレプリカ1402のレプリケーションサービス1407にプッシュする。一実施形態において、メッセージは、RFC7644に準拠する標準SCIM「バルク動作」に記載されているヘッダが追加された変更イベントを含むJSONフォーマットである。
At 1451, the
1452で、レプリケーションサービス1407は、ローカルシャードキュー1431にバルクメッセージを同時に書き込む。一実施形態において、1452で与えられる、マスター1401からトランスポートされた変更イベントは常に、1402の対応する同じシャードにエンキューされる。たとえば、1422にで変更イベントがシャードQ1に挿入された場合、同じ変更ログがレプリカ(1402)に入り1452でシャードQ1に入る。
At 1452,
1453で、専用適用ハンドラ1430が、シャードキュー1431からメッセージをデキューする。
At 1453, dedicated apply
1454で、適用ハンドラ1430は、メッセージをデキューしたときと同じ順序でメッセージをローカルデータストア1412に書き込む。
At 1454, apply
一般的に、図14のレプリケーション機能により、すなわち、テナントからのメッセージをマスター地域の同じシャードキューにエンキューし、トランスポートハンドラがデキューされたメッセージを同じ順序で処理し、テナントに関するトランスポートされたメッセージをレプリカ地域の同じシャードにエンキューし、適用ハンドラがデキューされたメッセージを同じ順序で処理することにより、マスターにおけるすべての変更イベントがデータの競合(conflict)なしで順次処理されることを保証する。 In general, the replication functionality in Figure 14 allows messages from tenants to be enqueued into the same shard queue in the master region, transport handlers to process dequeued messages in the same order, and transported messages about tenants to on the same shard in the replica region, and the apply handler processes the dequeued messages in the same order, ensuring that all change events on the master are processed sequentially without data conflicts.
しかしながら、1つのマスターで変更イベントがマスター地域(マスター1401)からレプリカ地域(レプリカ1402)へと順次処理されるにもかかわらず、データ競合が発生し得るシナリオはなおもいくつか存在する。たとえば、データ競合が発生し得る理由として、(1)テナントデータブートストラップ中、エクスポートされたブートストラップデータと進行中の変更イベントとがオーバーラップする場合があり、テナントブートストラップ後にこれらのオーバーラップしている変更イベントを適用するとデータ競合が生じる可能性があること、または(2)先ずレプリカ地域に書き込みその後レプリカ地域におけるテナントサービスプロビジョニングのサービス水準合意(service-level agreements)(「SLA」)の向上のためにマスターに逆同期(reverse sync)するとデータ競合が生じる可能性があることが、挙げられる。しかしながら、実施形態において、これらのシナリオの競合回避はまた、レプリカにおいて、マスターにおける同じシーケンスに従うので、回避される。 However, even though change events are processed sequentially in one master from the master region (master 1401) to the replica region (replica 1402), there are still several scenarios in which data conflicts can occur. For example, data races can occur because (1) during tenant data bootstrapping, exported bootstrap data and ongoing change events may overlap; after tenant bootstrapping, these overlaps may overlap; (2) improve service-level agreements (“SLAs”) for tenant service provisioning in the replica region; For this reason, reverse syncing to the master may cause data conflicts. However, in embodiments, conflict avoidance for these scenarios is also avoided since the same sequence at the master is followed at the replica.
図15は、本発明の実施形態に係る、マスターIDCSデプロイメント1401とレプリカIDCSデプロイメント1402との間における競合解決の処理フローを示す。
FIG. 15 shows a process flow for conflict resolution between a
1501で、専用適用ハンドラ1470が、変更イベントを各シャードキュー1431からデキューする。
At 1501, dedicated apply
1502で、適用ハンドラ1470は、変更をローカルデータストア1412において適用しようと試み、次にデータ競合があるか否かを判断する。以下の表1は、さまざまな種類の動作(すなわち、すべてのIDCSリソースに対する、作成(Create)、読出(Read)、更新(Update)、削除(Delete)、およびクエリ(Query)(「CRUDQ」)動作についてのスキーマベースのREST APIの結果としての動作)と、起こり得るデータ競合の種類を示している。
At 1502, apply
表1の競合解決ロジックの1つは、データ競合に応じて実現される。表1の競合解決ロジック1b、2aまたは4aが実現される場合、1503でリソースがマスター1401からフェッチされる。
One of the conflict resolution logics in Table 1 is implemented in response to data conflicts. If the
1504で、適用ハンドラ1470はレプリカ1402においてリソースをリコンサイルする。
At 1504, apply
本発明の実施形態における機能は、(データベースレベル、キャッシュレベルなどではなく)アプリケーションレベル/レイヤで実行される。具体的には、機能は、データベースではなく、1つ以上のマイクロサービス(たとえば管理サービス1405および/またはレプリケーションサービス1408、1407)によって実行される。そのため、実施形態は他の解決策よりも遥かに高速で実行し、実施形態はオンデマンドで自動的にリコンサイルすることができる。実施形態は、シングルマスターレプリケーションフローにおけるデータ競合を回避する。なぜなら、テナントについてのすべての変更イベントは、トランスポートハンドラおよび適用ハンドラ双方によって逐次的に処理されるからである。
The functionality in embodiments of the invention is performed at the application level/layer (rather than at the database level, cache level, etc.). Specifically, the functionality is performed by one or more microservices (eg,
図16は、本発明の実施形態に係る、マスターIDCSデプロイメント1401およびレプリカIDCSデプロイメント1402の詳細をさらに示すブロック図である。マスター1401で、テナントDB1604(すなわちデータストア)に接続された管理サービス1602、1603が、REST API要求1601を受ける。
FIG. 16 is a block diagram illustrating further details of a
マスター1401およびレプリカ1402は各々、ハッシュに基づいてメッセージ(一実施形態ではオラクルのアドバンスト・キューイング(Advanced Queuing)(「AQ」)メッセージ、またはアパッチ・カフカ(Apache Kafka)メッセージ)をパーティションに対して発行するシャードキュー1610、1620を含む。マスター1401において、メッセージングトランスポートハンドラ1622は、1シャード当たり1つのスレッドトランスポートを与えることによってシーケンスを維持する。各々が1度につき1つのバッファを保持するワーカースレッドが、レプリケーションサービス1625に与えられる。レプリケーションサービス1625は、1度につき1つのバッファを受け適用キュー(すなわちシャードキュー1620)に対して発行することによりシーケンスを維持するエンドポイントとして機能する。メッセージング適用ハンドラ1630は、1シャード当たり1つのスレッド適用を与えることによってシーケンスを維持する。レプリケーションサービス1625も、テナントDB1640(すなわちデータストア)に変更を適用するためのエンドポイントとして機能する。実施形態において、IDCSデプロイメントの各レプリケーションサービスは、「マスター」および/または「レプリカ」として働く機能を有する。
図16は、図14をより詳細にした図であり、パーティション、キュー、およびワーカースレッドを含む。図16は、キューイングシステムを介した変更ログの実際のフローを示す。「マスター」側では、2つの管理サービス(admin service)としての1602および1603が並列に動作する。1610、1622、1620および1630は、一実施形態ではオラクル社の「アドバンスト・キューイング」(「AQ」)として実現される「pub-sub」(出版-購読(publish-subscribe))システムを形成し、図14の1430、1435、1407および1452の内部をさらに詳細に示す。たとえば、1602または1603が1610に対してメッセージを発行すると直ちにテナントIDに対応する変更ログについてハッシュが計算される。このことは、特定のテナントに対応する変更ログが常に同一の「パーティション」にハッシュされることを意味する。受信側(すなわちレプリカ)では、同じロジックが適用され、テナントに対応する変更ログは常にレプリカ上の同じパーティションを介して進む(1620)。また、パーティションの数は固定されているので、計算されたハッシュは、「modテナントID」を用いてパーティションのうちの1つに割り当てられることに注意されたい(1610)。
FIG. 16 is a more detailed diagram of FIG. 14, including partitions, queues, and worker threads. Figure 16 shows the actual flow of change logs through the queuing system. On the "master" side, two
図17は、本発明の実施形態に係る、レプリケーションに応じた競合解決のフロー図である。先に説明したように、競合解決は、シングルマスターレプリケーションモデル(すなわち図14に関連して説明したモデル)を使用する場合であってもデータに関連する変更アプリケーションの障害を解決するために必要である。なぜなら、レプリカIDCSインスタンスに対する変更は、マルチスレッドレプリケーション処理フローロジックが原因で、または過去失敗した変更を再度適用するときに、順不同で適用される可能性があるからである。実施形態は、更新タイムスタンプを用いることによってデータ競合を解決し、この場合、各変更エントリの動作タイムスタンプを、既存のターゲットエントリの更新タイムスタンプと比較することにより、変更を適用すべきかまたはスキップすべきかを判断する。 FIG. 17 is a flow diagram of conflict resolution according to replication according to an embodiment of the present invention. As previously discussed, conflict resolution is necessary to resolve data-related modification application failures even when using a single-master replication model (i.e., the model described in connection with Figure 14). be. This is because changes to replica IDCS instances may be applied out of order due to multi-threaded replication processing flow logic or when reapplying previously failed changes. Embodiments resolve data conflicts by using update timestamps, where changes are determined to be applied or skipped by comparing the operational timestamp of each change entry with the update timestamp of an existing target entry. Decide what to do.
既存のターゲットエントリを用いて更新タイムスタンプに基づく競合解決をサポートすることに加えて、実施形態はまた、削除されたエントリに対するツームストン(tombstone)を管理する。これらのツームストンエントリは、既に削除されたターゲットエントリに対して順不同の修正変更を適用するときの競合を解決するために使用される。 In addition to supporting conflict resolution based on update timestamps with existing target entries, embodiments also manage tombstones for deleted entries. These tombstone entries are used to resolve conflicts when applying out-of-order corrective changes to target entries that have already been deleted.
計画された競合解決ロジックに基づいて、実施形態は、変更をスキップする/適用するか否か、または、変更リトライのために変更をメッセージキューに戻すか否かを、判断する。競合解決ロジックに基づいてスキップされたまたは適用された変更はパージすることができる。 Based on the planned conflict resolution logic, embodiments determine whether to skip/apply the change or return the change to the message queue for change retry. Changes that were skipped or applied based on conflict resolution logic can be purged.
変更アプリケーションは、以下の理由により失敗する可能性がある。
1.ネットワーク、ターゲットDBもしくはIDCSレプリケートサービスがダウンするというようなシステム/リソースの問題またはその過渡的安定性の問題、
2.レプリケートサービス処理が順不同で変化すること、または、
3.前の変更を適用するときの管理エラー(admin error)またはIDCSにおけるソフトウェアバグを原因とするレプリカIDCSインスタンスに関するデータ問題。
Modification applications can fail for the following reasons:
1. System/resource issues or transient stability issues such as the network, target DB or IDCS Replicate service going down;
2. Replication service processing changes out of order, or
3. Data problems with replica IDCS instances due to admin errors when applying previous changes or software bugs in IDCS.
理由(1)および(2)は、競合解決ロジックに加え、設定されたリトライ試み数当たりの適切な変更リトライによって解決されるであろう。理由(3)は、恒久的な変更アプリケーション障害を生じさせる可能性がある。したがって、一実施形態において、失敗した変更は、人間による介入のために例外キューに移動させる必要がある。 Reasons (1) and (2) would be resolved by conflict resolution logic plus appropriate modification of retries per configured number of retry attempts. Reason (3) may result in permanent change application failure. Therefore, in one embodiment, failed changes need to be moved to an exception queue for human intervention.
IDCSメッセージングサービスは、レプリケーション処理フローにリトライ変更を適用するために強化された指数関数的遅延機能とともに、ビルトインメッセージリトライロジックを有する。これはまた、(1構成当たりの)適用されなかった回数があまりにも多い変更メッセージを保持するために使用される例外キューを有する。 The IDCS messaging service has built-in message retry logic with enhanced exponential delay functionality to apply retry changes to replication processing flows. It also has an exception queue that is used to hold change messages that have not been applied too many times (per configuration).
上記エラーハンドリング方法の結果、実施形態は、以下のレプリケーション競合回避設計の保証を得る。
・メッセージは失われない。
・メッセージは順不同で到来しない。
・ネットワーク/DBエラー/タイムアウトのため、二重メッセージの可能性がある。
・リコンサイル/ブートストラップの結果、これも二重メッセージとして機能する失効メッセージが生じ得る。
As a result of the above error handling method, embodiments obtain the following replication conflict avoidance design guarantees.
・Messages are not lost.
・Messages do not arrive out of order.
- Possible double message due to network/DB error/timeout.
- Reconciliation/bootstrap can result in revocation messages that also function as double messages.
図17の機能について、一実施形態では以下の必要条件が存在する。
・DB生成システム時間を、リソースが最後に修正された時間として設定。これは、全リソースリコンシリエーションによって生じた二重変更ログおよび失効変更ログをドロップするために、データ比較のためのタイムスタンプ/クロックの1つのソースを維持するのに必要である。
・マスターIDCSインスタンスにおいて、リソースが最後に修正された時間をDBから読み戻して変更ログ時間として捕捉。
・レプリカIDCSインスタンスにおいて、リソースが最後にレプリケートされた時間は、変更ログおよび全リソースのリコンシリエーションを適用すると更新される。マスターからの変更ログ時間を、最後にレプリケートされた時間として用いることにより、1つのクロックソースを維持する。
For the functionality of FIG. 17, the following requirements exist in one embodiment.
- Set the DB generation system time as the time the resource was last modified. This is necessary to maintain one source of timestamps/clocks for data comparison in order to drop duplicate changelogs and stale changelogs caused by full resource reconciliation.
- In the master IDCS instance, read back the time when the resource was last modified from the DB and capture it as the change log time.
- In a replica IDCS instance, the time the resource was last replicated is updated when applying the change log and reconciliation of all resources. Maintain one clock source by using the change log time from the master as the last replicated time.
一般的なエラーは以下を含む。
・1702において、テナントが存在しない(または)DB関連エラー(または)接続エラー(または)タイムアウト。適用ハンドラは成功するまでリトライする。
・1704において、サービスアイソレーション/リスタートは、ヘルスチェックフレームワークの一部として処理される。
Common errors include:
- In 1702, tenant does not exist (or) DB related error (or) connection error (or) timeout. The apply handler retries until it succeeds.
- At 1704, service isolation/restart is handled as part of the health check framework.
動作およびエラーハンドリング処理は以下を含む。
●作成(1706)
〇リソースが既に存在(1708)
●ペイロードの最後に修正された時間をレプリカDBの最後にレプリケートされた時間と比較
●タイムスタンプが同一であれば、変更ログをドロップ
●そうでなければ全リソースリコンシリエーションを実行
●置換/更新(1710)
〇リソースが存在しない(1712)
●全リソースリコンシリエーションを実行(1714)
〇リソースデータ不整合/破損によるエラー(1712)
●全リソースリコンシリエーションを実行(1714)
〇二重更新属性レベル(結果としてMVAの場合二重エントリになる可能性)
●ペイロードの最後に修正された時間をレプリカDBの最後にレプリケートされた時間と比較
●タイムスタンプが同一または小さい場合、変更ログをドロップ
●そうでなければ変更ログを適用
〇CMVAを追加/置換/削除-これは、メッセージが失われた場合に限り可能。生じてはならないこと。
●削除(1716)
〇リソースは存在しない(1718)
●メッセージを複製:変更ログをドロップ
●lostを作成:生じてはならないこと。
●リコンサイル(1714)
〇マスターIDCSインスタンスから全リソースを取得しレプリカに適用。レプリカの最後にレプリケートされた時間をマスターからのリソースが最後に修正された時間と比較し、既にキューにある失効変更ログをドロップ。
Operation and error handling processes include:
●Creation (1706)
〇Resource already exists (1708)
● Compare the last modified time of the payload with the last replicated time of the replica DB
●If the timestamps are the same, drop the changelog
●If not, perform all resource reconciliation ●Replace/Update (1710)
〇Resource does not exist (1712)
● Execute all resource reconciliation (1714)
〇Error due to resource data inconsistency/corruption (1712)
● Execute all resource reconciliation (1714)
〇Double update attribute level (possibility of double entry as a result in case of MVA)
● Compare the last modified time of the payload with the last replicated time of the replica DB
● Drop changelog if timestamps are the same or smaller
● Otherwise apply change log. Add/Replace/Delete CMVA - This is only possible if the message is lost. Things that should not happen.
●Delete (1716)
〇Resource does not exist (1718)
● Duplicate message: Drop change log ● Create lost: Should not happen.
●Reconcile (1714)
〇 Acquire all resources from the master IDCS instance and apply them to the replica. Compares the replica's last replicated time to the last time the resource from the master was modified and drops stale change logs that are already queued.
開示されているように、実施形態は、マルチテナントクラウドシステムを用いて、異なる地理的領域の複数のアイデンティティ管理システムデプロイメント間のデータのレプリケーションを提供する。したがって、ある地理的領域のあるデプロイメントのテナントは、第2の地理的領域の同じリソースにアクセスできる。実施形態は、変更イベントの逐次処理を用いてこのデータをレプリケートする。実施形態はさらに、データレプリケーション中に発生し得るいかなるデータ競合についても解決を提供する。 As disclosed, embodiments provide replication of data between multiple identity management system deployments in different geographic areas using a multi-tenant cloud system. Thus, tenants of one deployment in one geographic area can access the same resources in a second geographic area. Embodiments replicate this data using sequential processing of change events. Embodiments further provide resolution for any data conflicts that may occur during data replication.
リソースメタデータレプリケーション
リソースマネージャは、IDCSの共通データアクセス層である。これは、メタデータ駆動型であり、よって、SCIM準拠リソースタイプおよびスキーマ定義において定義されたどのリソースタイプも管理することができる。リソースマネージャは、属性、データタイプ、必要な値、カノニカル値などの、スキーマに基づいた検証を含む、すべてのリソースタイプに対するすべての共通ロジックを扱う。これはまた、デフォルト値の設定、「作成/更新日」の値の設定、「による作成/更新」の値の設定、機密属性の保護、ターゲット属性へのマッピング、認可チェック、およびイベントパブリッシュも扱う。リソースタイプデータマネージャの外部インターフェイスはHTTP/REST(IDCS管理サーバ(Admin server)においてデプロイされ「ServiceUp」コマンドによって呼び出される)であり、その内部実現はJavaインターフェイスを通じてなされる。一実施形態において、実装は、Hundred-Kilobyte Kernel(「HK2」)を用いて、Java固有要求(Java Specific Request)(「JSR」)330に基づいて注入される。リソースタイプペイロードは、SCIM2.0によって概要が示されているリソースモデルに従う。たとえば、「/Applications」および「/Credentials」は固有のリソースタイプである。
The Resource Metadata Replication Resource Manager is the common data access layer of IDCS. It is metadata driven and thus can manage any resource type defined in the SCIM compliant resource type and schema definitions. The resource manager handles all common logic for all resource types, including schema-based validation of attributes, data types, required values, canonical values, etc. It also handles setting default values, setting "created/updated" values, setting "created/updated by" values, protecting sensitive attributes, mapping to target attributes, authorization checking, and event publishing. . The external interface of the resource type data manager is HTTP/REST (deployed on the IDCS Admin server and invoked by the "ServiceUp" command), and its internal implementation is done through the Java interface. In one embodiment, the implementation is injected based on a Java Specific Request ("JSR") 330 using the Hundred-Kilobyte Kernel ("HK2"). The Resource Type payload follows the resource model outlined by SCIM 2.0. For example, "/Applications" and "/Credentials" are unique resource types.
リソース定義およびスキーマは、「/ResourceTypes」および「/Schemas」(すなわち、リソースタイプ定義(resource type definition)または「RTD」であり、これらは、エンドポイント、このエンドポイントについてサポートされる動作、コアおよび拡張スキーマ名などのような情報を含むリソースメタデータである)を通して発見可能である。リソースタイプデータマネージャは、テナント(たとえば、ユーザ、グループ、トークン、リソースタイプ、スキーマなど)ごとの動作データ、テナント設定(すなわちサービス間テナント固有設定およびサービス固有テナント固有設定)、およびグローバル構成(すなわちサービス間グローバル構成およびサービス固有グローバル構成)を管理する。 Resource definitions and schemas are "/ResourceTypes" and "/Schemas" (i.e., resource type definitions or "RTDs"), which define the endpoint, the supported behaviors for this endpoint, the core and resource metadata that includes information such as extended schema names, etc.). The resource type data manager stores operational data per tenant (e.g., users, groups, tokens, resource types, schemas, etc.), tenant settings (i.e., service-to-service tenant-specific settings and service-specific tenant-specific settings), and global configuration (i.e., service-to-service tenant-specific settings). global configuration and service-specific global configuration).
IDCSの実施形態は、アイデンティティデータを格納して管理し、他のオブジェクトと参照関係を有するオブジェクトを格納する必要がある。したがって、実施形態は、このようなオブジェクトを格納できるスキーマを定義して使用する。このオブジェクトの参照関係は、各々の固有のシナリオに応じて、参照側オブジェクトまたは被参照側オブジェクトのいずれかに格納することができる。一般的に、スキーマは、リソースを記述する属性定義のセットである。SCIM RFC7643は、「$ref」を介して単純な参照関係を格納し扱うためのメカニズムを指定する。 Embodiments of IDCS require storing and managing identity data and storing objects that have reference relationships with other objects. Therefore, embodiments define and use a schema that can store such objects. This object reference relationship can be stored in either the referencing object or the referenced object, depending on each unique scenario. Generally, a schema is a set of attribute definitions that describe a resource. SCIM RFC7643 specifies a mechanism for storing and handling simple reference relationships via "$ref".
上で開示されたテナントデータレプリケーションに関して、IDCSにおけるリソース定義のメタデータであるグローバルリソースタイプおよびスキーマ等の特定のグローバルリソースも、データセンターおよび地域間でレプリケートする必要があり、必要に応じてアップグレードする必要もある。メタデータアップグレードの一部として、追加する新たなリソースタイプおよびスキーマ、ならびに、属性の追加または削除を説明するためのいくつかの既存のリソースタイプおよびスキーマの更新が存在し得る。レプリケートされた環境内のある地域がアップグレードされた場合、このアップグレードされた地域から他の地域へのデータレプリケーションは、他の地域もリソースタイプおよびスキーマメタデータの更新されたバージョンを有する場合に限り、機能し得る。実施形態は、IDCSにおけるグローバルメタデータのレプリケーションおよびアップグレード、ならびに、まだアップグレードされていない地域がアップグレードされた地域からのレプリケーション変更を解釈する機能を持つことを保証することを、対象とする。この手法は、データ損失または競合を回避するとともに、大域性により高アベイラビリティおよびディザスタリカバリを保証する。 Regarding tenant data replication as disclosed above, certain global resources such as global resource types and schemas, which are resource definition metadata in IDCS, also need to be replicated across data centers and regions, and upgraded if necessary. There is also a need. As part of a metadata upgrade, there may be new resource types and schemas to add, as well as updates to some existing resource types and schemas to account for adding or removing attributes. If a region in a replicated environment is upgraded, data replication from this upgraded region to other regions will only occur if the other regions also have updated versions of resource types and schema metadata. It can work. Embodiments are directed to the replication and upgrade of global metadata in IDCS and ensuring that regions that have not yet been upgraded have the ability to interpret replication changes from regions that have been upgraded. This approach avoids data loss or contention and ensures high availability and disaster recovery due to globality.
上で図14~図17に関連して開示されたように、ある地域から別の地域にデータをレプリケートするとき、スキーマ変更があった場合は新たな属性および新たなリソースも追加される。しかしながら、マスターおよび/またはレプリカ地域が最初にアップグレードされる場合があり(たとえば新たなリリースを説明するために)、新たな属性は、他方の地域で、アップグレードされる前であってもサポートされる必要がある。したがって、実施形態は、どちらの地域が最初にアップグレードされるかに応じて、前方(すなわちマスターからレプリカへの)および後方(すなわちレプリカからマスターへの)レプリケーションをサポートする。新たな属性について、レプリケートする必要があるスキーマメタデータは、その属性は何か、その属性のタイプ、および、その属性が格納されるデータベーステーブルおよびカラムを、含み得る。実施形態において、スキーマメタデータはJSONフォーマットである。 As disclosed above in connection with FIGS. 14-17, when replicating data from one region to another, new attributes and new resources are also added if there is a schema change. However, the master and/or replica regions may be upgraded first (e.g. to account for a new release) and new attributes are supported in the other region even before they are upgraded. There is a need. Thus, embodiments support forward (ie, master to replica) and backward (ie, replica to master) replication, depending on which region is upgraded first. For a new attribute, the schema metadata that needs to be replicated may include what the attribute is, the type of the attribute, and the database table and column in which the attribute is stored. In embodiments, the schema metadata is in JSON format.
開示されているように、実施形態は、アイランドレプリケーションクラスタマップ、グローバルアクセストークン(すなわち、ある地域で発行され別の地域で回収されるアクセストークンに署名するために使用されるトークン/キー)などのような、アイランド全体で同一でなければならないデータ/メタデータをレプリケートするために確保される大域的にレプリケートされたIDCSストライプを、IDCSが持つことを可能にする、(データベースレベルとは対照的な)アプリケーションレベルのレプリケーション設計を用いる。このデータは、グローバルデータベース(たとえば、「Global_IDaaS DB」とも呼ばれる図6のグローバルデータベース620)に格納される。レプリケートされるメタデータは、データベーステーブルマッピングへのリソースおよびデータベーステーブルカラムマッピングへのSCIM属性を含む、グローバルリソースタイプおよびスキーマを含む。このメタデータは、レプリケーションサービスが変更ログメッセージを処理するために必要とするものである。したがって、リソースタイプおよびスキーマのレプリケーションおよびアップグレードは、実施形態において図14~図17に関連して上で開示されたデータレプリケーションの前提条件である。 As disclosed, embodiments include island replication cluster maps, global access tokens (i.e., tokens/keys used to sign access tokens issued in one region and collected in another region), etc. allows IDCS to have globally replicated IDCS stripes that are reserved for replicating data/metadata that must be the same across islands, such as ) using an application-level replication design. This data is stored in a global database (eg, global database 620 of FIG. 6, also referred to as "Global_IDaaS DB"). The metadata that is replicated includes global resource types and schemas, including resource to database table mappings and SCIM attributes to database table column mappings. This metadata is required by the replication service to process change log messages. Therefore, replication and upgrade of resource types and schemas is a prerequisite for the data replication disclosed above in connection with FIGS. 14-17 in embodiments.
メタデータを形成するグローバルリソースが、上で開示されたテナントストライプデータレプリケーションと同じプロセスに従ってレプリケートされる場合、これはマルチマスターレプリケーションになりデータ競合を引き起こすであろう。したがって、すべての地域が同じ最新グローバルリソースタイプおよびスキーマを含むことを保証するために、実施形態は、別のレプリケーションクラスタ構成を作成し、地域のうちの1つをアイランドマスター地域として指定し(典型的に、アイランドマスターは最新リリースバージョンを有する)、アイランド内のその他すべての地域をレプリカ地域として指定する。実施形態は、アイランドマスターにおけるグローバルリソースを、アイランド範囲内のその他すべての地域にレプリケートする。アップグレードの場合、実施形態は、先ず、アイランドマスター内のグローバルリソースを、その他の地域のうちのいずれのアップグレードよりも前に、アップグレードする。実施形態において、アイランドマスターは固定されない。他の1つの地域が、更新されたグローバルリソースおよびスキーマを有しアップグレードされる場合、アイランドマスターおよび残りの地域は、マスター地域に続いてアップグレードされるレプリカとして扱われると考えられる。 If the global resources that form the metadata are replicated following the same process as tenant stripe data replication disclosed above, this will result in multi-master replication and will cause data conflicts. Therefore, to ensure that all regions contain the same latest global resource type and schema, embodiments create a separate replication cluster configuration and designate one of the regions as the island master region (typically The island master has the latest released version) and designates all other regions within the island as replica regions. Embodiments replicate global resources at the island master to all other regions within the island range. For upgrades, embodiments first upgrade global resources in the island master before upgrading any of the other regions. In embodiments, the island master is not fixed. If one other region is upgraded with updated global resources and schemas, the island master and remaining regions are considered to be treated as replicas that are subsequently upgraded to the master region.
図18は、実施形態に係るグローバルリソースのレプリケーション構成の概略図を示す。この構成は、そのグローバルリソースデータがアイランド1802内の他のすべてのレプリカ地域にレプリケートされる、「地球」アイランド1802内の、単一のマスター地域1801(シカゴ)または「アイランドマスター」を含む。これは、アイランドが異なるテナントセットに対して複数のマスター地域を含むことができるデータレプリケーションのシナリオとは異なる。
FIG. 18 shows a schematic diagram of a global resource replication configuration according to the embodiment. This configuration includes a single master region 1801 (Chicago) or "Island Master" within the "Earth"
地域アップグレードの一部として、追加される新たなリソースタイプおよびスキーマが存在してもよく、既存のリソースタイプおよびスキーマの一部は新たな属性のサポートのために更新されてもよい。レプリケートされた環境内の地域のうちの1つがアップグレードされたときは、開示されているように、実施形態において、このアップグレードされた地域から別のレプリカ地域へのデータレプリケーションは、レプリカ地域におけるレプリケーションサービスも、リソースタイプおよびスキーマの更新されたバージョンを、レプリカ地域がまだアップグレードされていなくても有する場合に限り、機能し得る。そうすると、レプリケーションサービスは、変更が、アップグレードされたマスター地域からのものであると解釈することができ、データレプリケーション中のデータ損失または競合を回避することもできる。マスター地域のバージョン互換性およびレプリカ地域のレプリケーションサービスをサポートするために、実施形態は、図14~図17のデータレプリケーション機能を利用する。アイランドマスター地域におけるリソースタイプおよびスキーマが新たなバージョンにアップグレードされるときは常に、マスターからのアップグレードされたリソースを含む変更ログメッセージが、レプリカ地域におけるレプリケーションサービスに送られて、レプリカのGLOBAL_IDaaS DBを更新する。次に、レプリカ地域におけるレプリケーションサービスはグローバルデータベースからの更新されたグローバルリソースを消費し、一方、他のサービスは依然として古いバージョンのバイナリにおけるリソースを消費する。 As part of a regional upgrade, there may be new resource types and schemas added, and some existing resource types and schemas may be updated to support new attributes. When one of the regions in a replicated environment is upgraded, in embodiments as disclosed, data replication from this upgraded region to another replica region is performed by a replication service in the replica region. can also work only if the replica region has updated versions of resource types and schemas, even if they have not yet been upgraded. The replication service can then interpret the changes as coming from the upgraded master region and also avoid data loss or conflicts during data replication. To support version compatibility in the master region and replication services in the replica region, embodiments utilize the data replication functionality of FIGS. 14-17. Whenever a resource type and schema in the island master region is upgraded to a new version, a change log message containing the upgraded resources from the master is sent to the replication service in the replica region to update the replica's GLOBAL_IDaaS DB. do. Replication services in the replica region then consume updated global resources from the global database, while other services still consume resources in the old version of the binary.
図19は、実施形態に係るマスター地域1901(「アイランドマスター」1901またはマスターデータセンター)からレプリカ地域1902(またはレプリカデータセンター)へのグローバルリソースレプリケーションおよびアップグレードを示す。実施形態において、マスター地域1901およびレプリカ地域1902の双方が、同じ「地球」アイランド1905の一部である。
FIG. 19 illustrates global resource replication and upgrade from a master region 1901 (“island master” 1901 or master data center) to a replica region 1902 (or replica data center) according to an embodiment. In an embodiment, both
1910で、アップグレードバージョン番号が与えられると、実施形態は、前のリリース/バージョンと比較して修正/追加されたグローバルリソースタイプおよびスキーマの情報を含むマニフェストファイルを生成する。一実施形態において、Gradleタスク「GenerateManifestTask」がマニフェストを生成する。マスターIDCSインスタンスにおいて、タスクは、コンパイル時間に実行され、前のリリース/バージョンと比較して修正/追加されたRTD/スキーマの1つのマニフェストファイルを生成する。 At 1910, given the upgrade version number, embodiments generate a manifest file that includes modified/added global resource types and schema information compared to the previous release/version. In one embodiment, a Gradle task "GenerateManifestTask" generates the manifest. In the master IDCS instance, a task is executed at compile time to generate one manifest file for the RTD/schema with modifications/additions compared to the previous release/version.
実施形態において、マニフェストファイルは、idaas/core-common/src/generated/resources/の下に位置する。その名称は、<current version number>rtd-scema-manifest.json、たとえば、18.2.6-rtd-schema-manifest.jsonである。これは以下の内容を含む。 In embodiments, the manifest file is located under idaas/core-common/src/generated/resources/. Its name is <current version number>rtd-schema-manifest.json, for example 18.2.6-rtd-schema-manifest.json. This includes:
具体的にidaasの下にあるタスクの実行を求めるコマンドは、./gradlew generateManifestである。
そうすると、マスターIDCSインスタンスにおいて、管理サービス(Admin service)は、バージョンアップグレードによるRTD/スキーマ変更の変更ログを生成する。コマンドは、./admin - srv -boot.config=/scratch/idcs/app/data/conf/boot.conf.local database initmetadataupgrade tr <releaseNumber>であり、App CLIがコールされて、マニフェストファイルにおいて与えられたパスからRTD/スキーマをロードする。
The command that specifically requests execution of tasks under idaas is ./gradlew generateManifest.
Then, in the master IDCS instance, the Admin service generates a change log of RTD/schema changes due to version upgrade. The command is ./admin - srv -boot.config=/scratch/idcs/app/data/conf/boot.conf.local database initmetadataupgrade tr <releaseNumber> and the App CLI is called to update the file given in the manifest file. Load the RTD/schema from the path.
1912で、実施形態は、管理サービス(Admin service)1920を呼び出し、マニフェストファイルに基づいてグローバルリソースをアップグレードしグローバルデータベース1921に書き込む。
At 1912, the embodiment calls an
1914で、図16の1422と同様に、管理サービス1920は、レプリケーションイベントを、複数のシャードキュー1930のうちの1つにこのイベントを書き込むことによってパブリッシュする。
At 1914, similar to 1422 of FIG. 16,
1915で、レプリケーショントランスポートハンドラ1932は、グローバルリソース変更ログイベントを、アイランド内のその他すべての地域に(たとえばレプリカ地域1902およびその他任意のレプリカ地域に)プッシュする。
At 1915,
1940で、レプリカ地域におけるレプリケーションサービス1962は、上記イベントを受け、レプリカにおける現在のバージョン番号を、マスターのデータアップグレードバージョン番号と比較する。レプリカバージョン番号がマスターアップグレード番号以下である場合、1942で、レプリケーションサービス1962は、グローバルリソース変更を、Global_IDaaS DB 1971に適用する。そうでなければ、変更は1943で破棄される。なぜなら、レプリカは既に最高メタデータバージョンを有するからである。 At 1940, the replication service 1962 at the replica region receives the above event and compares the current version number at the replica with the data upgrade version number at the master. If the replica version number is less than or equal to the master upgrade number, then at 1942 the replication service 1962 applies the global resource changes to the Global_IDaaS DB 1971. Otherwise, the changes are discarded at 1943. This is because the replica already has the highest metadata version.
1944で、レプリケーションサービス1962は、グローバルリソースをDB1971からロードし、対応するキャッシュをリフレッシュする。これにより、確実に、レプリケーションサービス1962は更新されたバージョンを消費することになるため、アップグレードされたマスター1901からのデータレプリケーションを処理しているときに、データ損失/競合はない(すなわち図14~図17に示されている通り)。 At 1944, Replication Service 1962 loads global resources from DB 1971 and refreshes the corresponding cache. This ensures that the replication service 1962 consumes the updated version, so there is no data loss/contention while processing data replication from the upgraded master 1901 (i.e., As shown in Figure 17).
1945で、実施形態は、すべての非レプリケーションサービス1965(たとえば、Admin、Job、Reportsなど)を変更してグローバルリソースをGlobal_IDaaS DB 1944の代わりにバイナリ分布からロードする。これにより、レプリケーションサービス1962におけるリソースへの更新が、非レプリケーションサービスランタイム処理にもサービスリブートにも影響しないことが保証される。なぜなら、ロードされるリソースは常にバイナリバージョンとアライメントされるからであり、その理由は、最新メタデータが使用されずAPIコンテキストが変更されないことにある。
At 1945, embodiments modify all non-replication services 1965 (eg, Admin, Job, Reports, etc.) to load global resources from the binary distribution instead of the
具体的には、図19のグローバルリソースのレプリケーションの機能が完了すると、グローバルDBは最新バージョンにアップグレードされ、各レプリカのレプリケーションサービスは新たなバージョンを用いることで後のレプリケーションイベントの互換性の問題を回避する。しかしながら、各レプリカにおいて、他の非レプリケーションサービスはまだアップグレードされず、プログラムが構築されコンパイルされたときにjar/zipファイル(バイナリ分布)に格納された、その時点のスキーマ/リソースタイプバージョンを使用しなければならない。 Specifically, when the global resource replication function in Figure 19 is completed, the global DB is upgraded to the latest version, and the replication service of each replica uses the new version to avoid compatibility issues in later replication events. To avoid. However, at each replica, other non-replication services have not yet been upgraded and are still using the current schema/resource type version stored in the jar/zip file (binary distribution) when the program was built and compiled. There must be.
開示されているように、実施形態は、データベースからデータベースへのレプリケーションではなく、アプリケーションからアプリケーションへのレプリケーションを対象とし、図18の固有のグローバルアイランドマスター構成を使用する。実施形態において、変更ログはレプリカで使用されてレプリケーションサービスにおけるスキーマ/リソースを更新する。実施形態におけるこのスキーマメタデータはJSONである。レプリケートするとき、レプリカが既にマスターよりも高いバージョンである場合、変更は無視される。 As disclosed, embodiments are directed to application-to-application replication rather than database-to-database replication, and use the unique global island master configuration of FIG. 18. In embodiments, change logs are used at replicas to update schemas/resources in a replication service. This schema metadata in embodiments is JSON. When replicating, if the replica is already at a higher version than the master, the changes will be ignored.
実施形態は、グローバルリソースの自動レプリケーションおよび単純化された管理を実現する。実施形態において、IDCSマスターおよびレプリカインスタンス間にDBレベルのデータバインディングはない。結果として、各IDCSインスタンスは、同じレプリケーションクラスタ内の他のIDCSインスタンスに影響を与えることなく、独立してアップグレード可能である。マスターおよびレプリカインスタンス間の唯一のデータバインディングは、図14~図17の制御されたアプリケーションデータレプリケーションフローを通したデータバインディングのみである。 Embodiments provide automatic replication and simplified management of global resources. In embodiments, there is no DB-level data binding between IDCS master and replica instances. As a result, each IDCS instance can be upgraded independently without impacting other IDCS instances within the same replication cluster. The only data binding between the master and replica instances is through the controlled application data replication flows of FIGS. 14-17.
本明細書ではいくつかの実施形態が具体的に例示および/または記載されている。しかしながら、開示されている実施形態の修正および変形は、本発明の精神および意図する範囲から逸脱することなく、上記教示によってカバーされ以下の請求項の範囲に含まれることが、理解されるであろう。 Several embodiments are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the disclosed embodiments are covered by the above teachings and within the scope of the following claims without departing from the spirit and intended scope of the invention. Dew.
Claims (13)
第1のデータセンターで、第1のクライアントを認証し前記第1のクライアントに対応するリソースを格納するステップを含み、前記第1のデータセンターは、前記第1のクライアントを認証し前記リソースをレプリケートするように構成された第2のデータセンターと通信し、
前記第1のデータセンターにおけるグローバルリソースの新たなバージョンへのアップグレードに応じて、前記アップグレードに応じて修正または追加されたグローバルリソースタイプおよびスキーマのリストを含むマニフェストファイルを生成するステップと、
前記第1のデータセンターで、前記マニフェストファイルに基づいてグローバルリソースをアップグレードし、前記アップグレードしたグローバルリソースを第1のグローバルデータベースに書き込み、前記アップグレードしたグローバルリソースに対応する変更イベントメッセージを生成するステップと、
前記変更イベントメッセージを前記第2のデータセンターにプッシュするステップと、
前記第2のデータセンターで、現在のバージョンを前記新たなバージョンと比較するステップと、
前記第2のデータセンターで、前記現在のバージョンが前記新たなバージョンよりも新しくないときは前記変更イベントメッセージを第2のグローバルデータベースに適用するステップと、
前記第2のデータセンターで、前記現在のバージョンが前記新たなバージョンと同じ新しさであるかまたは前記新たなバージョンよりも新しいときは前記変更イベントメッセージを無視するステップと、
前記第2のデータセンターで、非レプリケーションサービスを変更してグローバルリソースを前記第2のグローバルデータベースの代わりにバイナリ分布からロードするステップとを含む、方法。 A method of operating a multi-tenant cloud system, the method comprising:
authenticating a first client and storing resources corresponding to the first client at a first data center, the first data center authenticating the first client and replicating the resources; communicating with a second data center configured to;
In response to an upgrade of global resources in the first data center to a new version, generating a manifest file containing a list of global resource types and schemas modified or added in response to the upgrade;
At the first data center, upgrading a global resource based on the manifest file, writing the upgraded global resource to a first global database, and generating a change event message corresponding to the upgraded global resource. ,
pushing the change event message to the second data center;
comparing the current version with the new version at the second data center;
at the second data center, applying the change event message to a second global database when the current version is not newer than the new version;
at the second data center, ignoring the change event message when the current version is as new as or newer than the new version;
at the second data center, modifying a non-replication service to load global resources from a binary distribution instead of the second global database.
前記アイランドのデータセンターのうちの1つのデータセンターを、前記1つのデータセンターがアップグレードされたときにマスターデータセンターとして指定し、その他すべてのデータセンターをレプリカデータセンターとして指定するステップをさらに含む、請求項1~6のいずれかに記載の方法。 The first data center, the second data center, and a plurality of other data centers form an island, and the method includes:
The claim further comprises: designating one data center of the data centers in the island as a master data center when the one data center is upgraded and designating all other data centers as replica data centers. The method according to any one of items 1 to 6 .
第1のクライアントを認証し前記第1のクライアントに対応するリソースを格納するようにされた管理サービスを備え、前記マルチテナントクラウドシステムデータセンターは、前記第1のクライアントを認証し前記リソースをレプリケートするように構成された第2のデータセンターと通信し、
前記管理サービスに結合されたグローバルデータベースを備え、
前記管理サービスはさらに、前記マルチテナントクラウドシステムデータセンターにおけるグローバルリソースの新たなバージョンへのアップグレードに応じて、前記アップグレードに応じて修正または追加されたグローバルリソースタイプおよびスキーマのリストを含むマニフェストファイルを生成し、前記マニフェストファイルに基づいてグローバルリソースをアップグレードし、前記アップグレードしたグローバルリソースを第1のグローバルデータベースに書き込み、前記アップグレードしたグローバルリソースに対応する変更イベントメッセージを生成するようにされ、
前記変更イベントメッセージをREST APIコールを介して前記第2のデータセンターにプッシュするようにされたレプリケーションサービスを備え、
前記第2のデータセンターは、前記変更イベントメッセージを受けたことに応じて、現在のバージョンを前記新たなバージョンと比較し、前記現在のバージョンが前記新たなバージョンよりも新しくないときは前記変更イベントメッセージを第2のグローバルデータベースに適用し、前記現在のバージョンが前記新たなバージョンと同じ新しさであるかまたは前記新たなバージョンよりも新しいときは前記変更イベントメッセージを無視し、非レプリケーションサービスを変更してグローバルリソースを前記第2のグローバルデータベースの代わりにバイナリ分布からロードするように、構成されている、マルチテナントクラウドシステムデータセンター。 A multi-tenant cloud system data center,
a management service configured to authenticate a first client and store resources corresponding to the first client, the multi-tenant cloud system data center authenticating the first client and replicating the resources; communicate with a second data center configured to
a global database coupled to said management service;
The management service further generates, in response to an upgrade of global resources in the multi-tenant cloud system data center to a new version, a manifest file that includes a list of global resource types and schemas modified or added in response to the upgrade. and upgrading a global resource based on the manifest file, writing the upgraded global resource to a first global database, and generating a change event message corresponding to the upgraded global resource;
a replication service adapted to push the change event message to the second data center via a REST API call;
The second data center, in response to receiving the change event message, compares the current version with the new version, and if the current version is not newer than the new version, the second data center executes the change event message. applying a message to a second global database, ignoring the change event message when the current version is as new as or newer than the new version, and modifying the non-replication service; a multi-tenant cloud system data center configured to load global resources from a binary distribution instead of the second global database.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962802887P | 2019-02-08 | 2019-02-08 | |
US62/802,887 | 2019-02-08 | ||
US16/454,483 | 2019-06-27 | ||
US16/454,483 US11061929B2 (en) | 2019-02-08 | 2019-06-27 | Replication of resource type and schema metadata for a multi-tenant identity cloud service |
PCT/US2019/056221 WO2020162988A1 (en) | 2019-02-08 | 2019-10-15 | Replication of resource type and schema metadata for a multi-tenant identity cloud service |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022519395A JP2022519395A (en) | 2022-03-24 |
JPWO2020162988A5 JPWO2020162988A5 (en) | 2022-10-12 |
JP7411548B2 true JP7411548B2 (en) | 2024-01-11 |
Family
ID=71944845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020529762A Active JP7411548B2 (en) | 2019-02-08 | 2019-10-15 | Replication of resource types and schema metadata for multi-tenant identity cloud services |
Country Status (5)
Country | Link |
---|---|
US (1) | US11061929B2 (en) |
EP (1) | EP3794797B1 (en) |
JP (1) | JP7411548B2 (en) |
CN (1) | CN111801923B (en) |
WO (1) | WO2020162988A1 (en) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10931656B2 (en) | 2018-03-27 | 2021-02-23 | Oracle International Corporation | Cross-region trust for a multi-tenant identity cloud service |
US11165634B2 (en) | 2018-04-02 | 2021-11-02 | Oracle International Corporation | Data replication conflict detection and resolution for a multi-tenant identity cloud service |
US11258775B2 (en) * | 2018-04-04 | 2022-02-22 | Oracle International Corporation | Local write for a multi-tenant identity cloud service |
US10764273B2 (en) | 2018-06-28 | 2020-09-01 | Oracle International Corporation | Session synchronization across multiple devices in an identity cloud service |
US11321343B2 (en) | 2019-02-19 | 2022-05-03 | Oracle International Corporation | Tenant replication bootstrap for a multi-tenant identity cloud service |
US11669321B2 (en) | 2019-02-20 | 2023-06-06 | Oracle International Corporation | Automated database upgrade for a multi-tenant identity cloud service |
US11200095B2 (en) * | 2019-09-23 | 2021-12-14 | Open Text Holdings, Inc. | System and method for an efficient and scalable multitenant implementation for content management services platforms, including cloud deployed content management services platforms |
EP3800864B1 (en) * | 2019-10-01 | 2022-11-23 | Siemens Aktiengesellschaft | Method for configuration of an opc ua pubsub participant, automation system, computer program and computer readable medium |
FR3105849B1 (en) * | 2019-12-27 | 2022-01-07 | Bull Sas | AUTHORIZATION MANAGEMENT METHOD AND SYSTEM FOR A UNIFIED GOVERNANCE PLATFORM FOR A MULTIPLE HEAVY COMPUTING SOLUTIONS |
US11895102B2 (en) * | 2020-03-19 | 2024-02-06 | Nutanix, Inc. | Identity management |
WO2021232347A1 (en) * | 2020-05-21 | 2021-11-25 | Citrix Systems, Inc. | Cross device single sign-on |
JP2023501850A (en) * | 2020-10-10 | 2023-01-20 | 百度(中国)有限公司 | Business audit reporting method and gateway, electronic device, readable medium and computer program |
LU102236B1 (en) * | 2020-11-27 | 2022-05-30 | Microsoft Technology Licensing Llc | User permission in a multi-tenant environment |
US11853272B2 (en) * | 2021-02-19 | 2023-12-26 | International Business Machines Corporation | Governance based validation framework for JSON data using machine learning |
US12238101B2 (en) * | 2021-03-09 | 2025-02-25 | Oracle International Corporation | Customizing authentication and handling pre and post authentication in identity cloud service |
US11620363B1 (en) | 2021-03-15 | 2023-04-04 | SHAYRE, Inc. | Systems and methods for authentication and authorization for software license management |
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 |
US11632362B1 (en) * | 2021-04-14 | 2023-04-18 | SHAYRE, Inc. | Systems and methods for using JWTs for information security |
US11531525B2 (en) * | 2021-04-23 | 2022-12-20 | Jpmorgan Chase Bank, N.A. | System and method for packaging standalone application modules into re-usable application and infrastructure resources |
US20220394039A1 (en) * | 2021-06-03 | 2022-12-08 | Vmware, Inc. | Seamlessly securing access to application programming interface gateways |
US11621830B1 (en) | 2021-06-28 | 2023-04-04 | SHAYRE, Inc. | Systems and methods for facilitating asynchronous secured point-to-point communications |
US20230006880A1 (en) * | 2021-06-30 | 2023-01-05 | Microsoft Technology Licensing, Llc | Local edge authority platform |
US20230072677A1 (en) * | 2021-09-08 | 2023-03-09 | International Business Machines Corporation | Aggregation model replication at a disaster recovery site |
US12413569B2 (en) | 2021-09-30 | 2025-09-09 | Oracle International Corporation | Single sign-on between 2 independent states |
US20230100200A1 (en) | 2021-09-30 | 2023-03-30 | Oracle International Corporation | Token exchange between bearer and pop tokens |
US12229297B2 (en) | 2021-09-30 | 2025-02-18 | Oracle International Corporation | Techniques for backwards compatibility in an identity management cloud service |
US12147843B2 (en) | 2021-09-30 | 2024-11-19 | Oracle International Corporation | Migration and cutover based on events in a replication stream |
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 |
US12273343B2 (en) | 2021-11-04 | 2025-04-08 | Oracle International Corporation | Techniques for dynamically assigning client credentials to an application |
US11314875B1 (en) * | 2021-11-30 | 2022-04-26 | Snowflake Inc. | Replication of account security features in multiple deployment database |
US12423450B2 (en) * | 2022-01-12 | 2025-09-23 | Early Warning Services, Llc | Data broker |
US12149537B2 (en) * | 2022-01-12 | 2024-11-19 | VMware LLC | Resource access control in cloud environments |
US11909707B2 (en) * | 2022-04-15 | 2024-02-20 | Red Hat, Inc. | Message schema migration in messaging systems |
US12248775B2 (en) * | 2022-04-19 | 2025-03-11 | Sap Se | System to identify and characterize code changes |
US12306801B2 (en) | 2022-06-16 | 2025-05-20 | Oracle International Corporation | Scalable and secure cross region and optimized file system delta transfer for cloud scale |
CN119343668A (en) | 2022-06-16 | 2025-01-21 | 甲骨文国际公司 | Techniques for replication checkpointing during disaster recovery |
US12333040B2 (en) | 2022-06-16 | 2025-06-17 | Sap Se | Native multi-tenancy for database system |
US12301582B2 (en) * | 2022-07-06 | 2025-05-13 | Microsoft Technology Licensing, Llc | Tenant configuration state extraction and variance detection |
US11765032B1 (en) * | 2022-10-31 | 2023-09-19 | International Business Machines Corporation | Shifting left GRC and security compliance leveraging transient cloud resources |
US11929986B1 (en) * | 2022-10-31 | 2024-03-12 | Snowflake Inc. | Two-way data sharing between private and public clouds |
US12368719B2 (en) | 2022-12-20 | 2025-07-22 | Red Hat, Inc. | Synchronizing a user's authentication state across multiple data centers using event messages |
US20240236150A1 (en) * | 2023-01-06 | 2024-07-11 | Accuknox, Inc. | Method and system for on demand defense-in-depth security policy translation and enforcement |
EP4432086A1 (en) * | 2023-03-16 | 2024-09-18 | Bull Sas | Method and system for deploying saas application |
US12007999B1 (en) * | 2023-04-27 | 2024-06-11 | Fmr Llc | Systems, methods, and media for operating a microservices architecture with a shared distributed cache |
US20240388583A1 (en) * | 2023-05-18 | 2024-11-21 | Pure Storage, Inc. | Service Mesh-Based Control of Access to a Storage Application |
US12034726B1 (en) * | 2023-05-31 | 2024-07-09 | Cloudflare, Inc. | Logging access types based on inserting tenant control headers into requests |
WO2025019019A1 (en) * | 2023-07-19 | 2025-01-23 | Visa International Service Association | A self-sufficient in-memory distributed cache |
US20250028703A1 (en) * | 2023-07-21 | 2025-01-23 | Oracle International Corporation | Multi-Tenant Transactional Outbox Pattern For Event Publishing |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110225217A1 (en) | 2010-03-15 | 2011-09-15 | Salesforce.Com, Inc. | System, method and computer program product for deploying an update between environments of a multi-tenant on-demand database system |
JP2015531511A (en) | 2012-09-07 | 2015-11-02 | オラクル・インターナショナル・コーポレイション | Multi-domain identity management system |
US20160292171A1 (en) | 2015-04-06 | 2016-10-06 | Sap Se | Shard aware near real time indexing |
US20180025066A1 (en) | 2016-07-19 | 2018-01-25 | Sap Se | Zero downtime database updates with database configuration changes |
WO2018053122A1 (en) | 2016-09-14 | 2018-03-22 | Oracle International Corporation | Single sign-on and single logout functionality for a multi-tenant identity and data security management cloud service |
US20180225105A1 (en) | 2017-02-07 | 2018-08-09 | Wyse Technology L.L.C. | Mechanism for customizing multiple computing devices |
Family Cites Families (332)
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 |
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 |
WO2004019160A2 (en) | 2002-08-23 | 2004-03-04 | Jway Group, Inc. | 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 (en) | 2003-06-06 | 2006-11-30 | インテラムダ・システムズ・インコーポレーテッド | Optical network topology database and optical network operations |
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 (en) | 2003-10-28 | 2008-11-26 | 联想(新加坡)私人有限公司 | Method and apparatus of automatically accessing by using multiple user's equipments |
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 |
US7779383B2 (en) | 2005-12-01 | 2010-08-17 | Sap Ag | Composition model and composition validation algorithm for ubiquitous computing applications |
US7735068B2 (en) | 2005-12-01 | 2010-06-08 | Infosys Technologies Ltd. | Automated relationship traceability between software design artifacts |
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 (en) | 2006-07-19 | 2008-02-07 | Gaiax Co Ltd | Website management system, website management method, website management program, and recording medium recording same program |
US7886352B2 (en) | 2006-09-22 | 2011-02-08 | Oracle International Corporation | Interstitial pages |
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 |
WO2008134895A1 (en) | 2007-05-08 | 2008-11-13 | Research In Motion Limited | Xml push and remote execution of a wireless application |
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 (en) | 2007-09-24 | 2011-08-17 | 中国移动通信集团公司 | Identity combination method |
US7756038B2 (en) | 2007-09-27 | 2010-07-13 | Cisco Technology, Inc. | Service advertisement framework (SAF) in a communications network |
KR100953092B1 (en) | 2007-11-06 | 2010-04-19 | 한국전자통신연구원 | SOS service method and system |
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 (en) | 2008-03-04 | 2013-05-08 | コードエスイー カンパニー リミテッド | Three-dimensional application program framework structure and application implementation method based thereon, and three-dimensional application software framework-based automatic test system and method |
US8452567B1 (en) | 2008-06-06 | 2013-05-28 | Keithley Instruments, Inc. | Test recipe distribution method and system |
CA2725956A1 (en) | 2008-06-06 | 2009-12-10 | Sapient Corporation | Systems and methods for visual test authoring and automation |
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 |
EP2316194B1 (en) | 2008-08-18 | 2015-02-25 | F5 Networks, Inc | Upgrading network traffic management devices while maintaining availability |
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 |
WO2010040133A2 (en) | 2008-10-03 | 2010-04-08 | 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 |
EP2425341B1 (en) | 2009-05-01 | 2018-07-11 | 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 |
US8271944B2 (en) | 2009-05-18 | 2012-09-18 | National Instruments Corporation | Hosting a graphical program execution system on an embedded device |
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 |
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 |
US9805322B2 (en) | 2010-06-24 | 2017-10-31 | Bmc Software, Inc. | Application blueprint and deployment model for dynamic business service management (BSM) |
US8990765B2 (en) | 2010-01-13 | 2015-03-24 | Tata Consultancy Services Limited | Computationally efficient system for developing configurable, extensible business application product lines using model-driven techniques |
US8627309B2 (en) | 2010-02-25 | 2014-01-07 | Microsoft Corporation | Automated deployment and servicing of distributed applications |
CN102170457A (en) | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | Method and device for providing service for tenants of application |
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 |
US20110302516A1 (en) | 2010-06-02 | 2011-12-08 | Oracle International Corporation | Mobile design patterns |
EP2583211B1 (en) | 2010-06-15 | 2020-04-15 | Oracle International Corporation | 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 |
WO2012000543A1 (en) | 2010-06-30 | 2012-01-05 | Telefonaktiebolaget Lm Ericsson (Publ) | 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 |
US20140310243A1 (en) | 2010-08-16 | 2014-10-16 | Mr. Steven James McGee | Heart beacon cycle |
US20120090021A1 (en) | 2010-10-12 | 2012-04-12 | Ansca, Inc. | Platform Specific Application Building |
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 (en) | 2010-12-22 | 2017-04-12 | 塔塔咨询服务有限公司 | Multi-Tenant system |
WO2012092399A2 (en) | 2010-12-29 | 2012-07-05 | 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 |
US8510267B2 (en) | 2011-03-08 | 2013-08-13 | Rackspace Us, Inc. | Synchronization of structured information repositories |
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 |
US20120303912A1 (en) | 2011-05-23 | 2012-11-29 | Microsoft Corporation | Storage account migration between storage stamps |
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 (en) | 2011-07-13 | 2015-03-11 | Inst Information Industry | Cloud-based test system, method and computer readable storage medium storing thereof |
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 (en) | 2011-07-15 | 2015-07-08 | キヤノン株式会社 | System for providing single sign-on and control method thereof, service providing apparatus, relay apparatus, and program |
US8898472B2 (en) | 2011-07-18 | 2014-11-25 | Echoworx Corporation | Mechanism and method for managing credentials on IOS based operating system |
EP2737741A4 (en) | 2011-07-27 | 2015-01-21 | Seven Networks Inc | Monitoring mobile application activities for malicious traffic on a mobile device |
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 |
US9578014B2 (en) | 2011-09-29 | 2017-02-21 | Oracle International Corporation | Service profile-specific token attributes and resource server token attribute overriding |
US9043886B2 (en) | 2011-09-29 | 2015-05-26 | Oracle International Corporation | Relying party platform/framework for access management infrastructures |
WO2013065165A1 (en) | 2011-11-04 | 2013-05-10 | 株式会社メディアシーク | System for generating application software |
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 |
AU2012340684A1 (en) | 2011-11-22 | 2014-07-17 | 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 |
WO2013109860A1 (en) | 2012-01-18 | 2013-07-25 | Smart Online, 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 (en) | 2012-02-29 | 2015-09-02 | 三菱電機株式会社 | Access control apparatus, access control method and program |
US10067940B2 (en) | 2012-03-02 | 2018-09-04 | International Business Machines Corporation | Enhanced storage quota management for cloud computing systems |
CN102651775B (en) * | 2012-03-05 | 2015-08-12 | 国家超级计算深圳中心(深圳云计算中心) | Based on method, the equipment and system of many tenants shared object management of cloud computing |
US9244951B2 (en) * | 2012-03-08 | 2016-01-26 | International Business Machines Corporation | Managing tenant-specific data sets in a multi-tenant environment |
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 |
AU2013263340B2 (en) | 2012-05-16 | 2015-05-14 | Okta, 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 |
US9350536B2 (en) | 2012-08-16 | 2016-05-24 | Digicert, Inc. | Cloud key management system |
US20140053056A1 (en) | 2012-08-16 | 2014-02-20 | Qualcomm Incorporated | Pre-processing of scripts in web browsers |
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 |
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 |
JP6181185B2 (en) | 2012-09-07 | 2017-08-16 | オラクル・インターナショナル・コーポレイション | LDAP-based multi-customer in-cloud identity management system |
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 |
US9170800B2 (en) | 2012-10-16 | 2015-10-27 | 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 (en) | 2012-10-17 | 2017-08-18 | 百度在线网络技术(北京)有限公司 | Distributed asynchronous task queue execution system and method in cloud environment |
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 |
US9843531B2 (en) | 2012-12-03 | 2017-12-12 | Hewlett Packard Enterprise Development Lp | Asynchronous framework for management of IaaS |
TWI490716B (en) | 2012-12-07 | 2015-07-01 | Ind Tech Res Inst | Method for developing multi-tenant application and data accessing method of multi-tenant application and system using the same |
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 |
US9158518B2 (en) | 2013-03-11 | 2015-10-13 | Blackberry Limited | Collaborative application development environment using a connected device |
US9280338B1 (en) | 2013-03-11 | 2016-03-08 | Amazon Technologies, Inc. | Dynamic application updates |
US9047404B1 (en) | 2013-03-13 | 2015-06-02 | Amazon Technologies, Inc. | Bridge to connect an extended development capability device to a target device |
US9467395B2 (en) | 2013-03-13 | 2016-10-11 | Vmware, Inc. | Cloud computing nodes for aggregating cloud computing resources from multiple sources |
US9027087B2 (en) | 2013-03-14 | 2015-05-05 | Rackspace Us, Inc. | Method and system for identity-based authentication of virtual machines |
US9158534B2 (en) | 2013-03-15 | 2015-10-13 | Wolters Kluwer United States Inc. | Smart endpoint architecture |
US9489372B2 (en) | 2013-03-15 | 2016-11-08 | Apple Inc. | Web-based spell checker |
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 (en) | 2013-04-09 | 2014-10-17 | 삼성전자주식회사 | Apparatus and method for updating application in electronic device |
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 |
US9495296B2 (en) | 2013-06-12 | 2016-11-15 | Oracle International Corporation | Handling memory pressure in an in-database sharded queue |
US9344833B2 (en) | 2013-07-31 | 2016-05-17 | Sap Se | Data component in a mobile application framework |
KR101471589B1 (en) | 2013-08-22 | 2014-12-10 | (주)잉카엔트웍스 | Method for Providing Security for Common Intermediate Language Program |
CN103442049B (en) | 2013-08-22 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | The mixed clouds operating system architecture of a kind of component-oriented and communication means thereof |
US9537964B2 (en) * | 2015-03-11 | 2017-01-03 | Tealium Inc. | System and method for separating content site visitor profiles |
US9524287B2 (en) | 2013-09-20 | 2016-12-20 | Oracle International Corporation | Model-driven tooltips in excel |
US9544293B2 (en) | 2013-09-20 | 2017-01-10 | Oracle International Corporation | Global unified session identifier across multiple data centers |
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 |
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 |
US9246840B2 (en) | 2013-12-13 | 2016-01-26 | International Business Machines Corporation | Dynamically move heterogeneous cloud resources based on workload analysis |
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 (en) | 2014-03-10 | 2018-01-10 | 富士通株式会社 | Communication terminal, secure login method, and program |
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 |
US9646309B2 (en) | 2014-04-04 | 2017-05-09 | Mobilespaces | Method for authentication and assuring compliance of devices accessing external services |
JP2015204087A (en) | 2014-04-16 | 2015-11-16 | キヤノン株式会社 | Management system and management method |
US10924554B2 (en) | 2014-05-05 | 2021-02-16 | Citrix Systems, Inc. | Application customization |
US20150332596A1 (en) | 2014-05-15 | 2015-11-19 | Jones International, Ltd. | Integrated learning system |
US10057354B2 (en) | 2014-05-30 | 2018-08-21 | Genesys Telecommunications Laboratories, Inc. | System and method for single logout of applications |
US9306939B2 (en) | 2014-05-30 | 2016-04-05 | Oracle International Corporation | Authorization token cache system and method |
US9600553B1 (en) | 2014-05-31 | 2017-03-21 | Veritas Technologies Llc | Distributed replication in cluster environments |
JP2016009299A (en) | 2014-06-24 | 2016-01-18 | キヤノン株式会社 | Single sign-on system, terminal device, control method and computer program |
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 (en) | 2014-09-05 | 2019-08-21 | 株式会社リコー | Information processing apparatus, access control method, communication system, and program |
AU2015318254A1 (en) | 2014-09-15 | 2017-04-20 | 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 |
US11036933B2 (en) | 2014-09-25 | 2021-06-15 | Oracle International Corporation | User interface component autowiring |
US10664495B2 (en) | 2014-09-25 | 2020-05-26 | Oracle International Corporation | System and method for supporting data grid snapshot and federation |
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 |
US9858174B2 (en) | 2014-09-26 | 2018-01-02 | Oracle International Corporation | Updatable native mobile application for testing new features |
US10073679B2 (en) | 2014-09-26 | 2018-09-11 | 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 |
WO2016049626A1 (en) | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Efficient and intuitive databinding for mobile applications |
US10757170B2 (en) | 2014-10-13 | 2020-08-25 | Vmware, Inc. | Cross-cloud namespace management for multi-tenant environments |
US9749428B2 (en) | 2014-10-21 | 2017-08-29 | Twilio, Inc. | System and method for providing a network discovery service platform |
US10230571B2 (en) | 2014-10-30 | 2019-03-12 | Equinix, Inc. | Microservice-based application development framework |
US10783565B2 (en) | 2014-10-30 | 2020-09-22 | Ebay Inc. | Method, manufacture, and system of transferring authenticated sessions and states between electronic devices |
JP6476760B2 (en) | 2014-10-31 | 2019-03-06 | 株式会社リコー | Information processing system, information processing apparatus, login method, and program |
US9386610B2 (en) | 2014-10-31 | 2016-07-05 | Aruba Networks, Inc. | Periodic high power beacon broadcasts |
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 |
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 |
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 |
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 |
US10013668B2 (en) | 2015-08-14 | 2018-07-03 | Oracle International Corporation | Secure storage of enterprise certificates for cloud services |
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 (en) | 2015-09-17 | 2018-05-21 | 長茂科技股份有限公司 | System and method establishing application program with dynamic-link function module for mobile device |
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 (en) | 2015-11-27 | 2018-11-09 | 国网信息通信产业集团有限公司 | A kind of micro services register method and system |
US9894067B1 (en) | 2015-12-03 | 2018-02-13 | Amazon Technologies, Inc. | Cross-region roles |
CN108292330B (en) | 2015-12-04 | 2023-02-28 | 维萨国际服务协会 | Security 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 |
KR101874384B1 (en) | 2016-05-11 | 2018-07-04 | 오라클 인터내셔날 코포레이션 | Multi-tenant identity and data security management cloud service |
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 |
WO2017214046A1 (en) | 2016-06-06 | 2017-12-14 | 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 |
US10846390B2 (en) | 2016-09-14 | 2020-11-24 | Oracle International Corporation | Single sign-on functionality for a multi-tenant identity and data security management cloud service |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
WO2018053258A1 (en) | 2016-09-16 | 2018-03-22 | 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 |
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 |
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 |
-
2019
- 2019-06-27 US US16/454,483 patent/US11061929B2/en active Active
- 2019-10-15 JP JP2020529762A patent/JP7411548B2/en active Active
- 2019-10-15 CN CN201980005697.2A patent/CN111801923B/en active Active
- 2019-10-15 EP EP19797919.8A patent/EP3794797B1/en active Active
- 2019-10-15 WO PCT/US2019/056221 patent/WO2020162988A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110225217A1 (en) | 2010-03-15 | 2011-09-15 | Salesforce.Com, Inc. | System, method and computer program product for deploying an update between environments of a multi-tenant on-demand database system |
JP2015531511A (en) | 2012-09-07 | 2015-11-02 | オラクル・インターナショナル・コーポレイション | Multi-domain identity management system |
US20160292171A1 (en) | 2015-04-06 | 2016-10-06 | Sap Se | Shard aware near real time indexing |
US20180025066A1 (en) | 2016-07-19 | 2018-01-25 | Sap Se | Zero downtime database updates with database configuration changes |
WO2018053122A1 (en) | 2016-09-14 | 2018-03-22 | Oracle International Corporation | Single sign-on and single logout functionality for a multi-tenant identity and data security management cloud service |
US20180225105A1 (en) | 2017-02-07 | 2018-08-09 | Wyse Technology L.L.C. | Mechanism for customizing multiple computing devices |
Also Published As
Publication number | Publication date |
---|---|
EP3794797A1 (en) | 2021-03-24 |
CN111801923A (en) | 2020-10-20 |
US20200257700A1 (en) | 2020-08-13 |
CN111801923B (en) | 2023-05-05 |
EP3794797B1 (en) | 2022-01-19 |
WO2020162988A1 (en) | 2020-08-13 |
US11061929B2 (en) | 2021-07-13 |
JP2022519395A (en) | 2022-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7411548B2 (en) | Replication of resource types and schema metadata for multi-tenant identity cloud services | |
JP7458369B2 (en) | Tenant Replication Bootstrap for Multi-Tenant Identity Cloud Services | |
JP7341065B2 (en) | Detecting and resolving data replication conflicts in multi-tenant identity cloud services | |
JP7402690B2 (en) | Tenant data comparison for multi-tenant identity cloud services | |
JP7202317B2 (en) | Local writes for multi-tenant identity cloud services | |
JP7545951B6 (en) | Bridge highly available multi-tenant identity cloud service with integrated on-premise authentication | |
JP7563883B2 (en) | Cross-regional trust for multi-tenant identity cloud services | |
JP7602918B2 (en) | Multi-tenant identity cloud service with integrated on-premise authentication | |
JP6491774B2 (en) | Multi-tenant identity and data security management cloud service | |
JP2019532418A (en) | Multi-tenant identity and data security management Tenant and service management for cloud services | |
JP2019532368A (en) | Data management for multi-tenant identity cloud services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221003 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221003 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231027 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20231128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7411548 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |