IP Library Granted Patent US 10,735,394
Granted Patent B2
US 10,735,394 · App. 15/661,014 · Granted Aug 4, 2020

Caching framework for a multi-tenant identity and data security management cloud service

Inventors: Lokesh Gupta (Belmont, CA); Ashutosh Pitre (Dublin, CA)
Assignee: Oracle International Corporation
H04L63/08G06F9/50G06F9/547H04L63/083H04L63/0815H04L63/10H04L67/02H04L67/2842H04L69/18H04L2463/082
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,735,394
App. No.
15/661,014
Granted
Aug 4, 2020
Kind
B2
Abstract

A system provides cloud-based identity and access management. The system receives a request from a client for a resource, authenticates the request, and accesses a microservice based on the request. The system determines, by the microservice, whether the resource is cached in a near cache or in a remote cache, retrieves the resource from the near cache or from the remote cache when the resource is cached, and calls an administration microservice to obtain the resource when the resource is not cached. The system then provides the resource to the client.

Claims (43)

1. A non-transitory computer readable medium having instructions stored thereon that, when executed by one or more processors, cause the processors to provide cloud-based identity and access management, the providing comprising:

receiving a request from a client for a resource, the request comprising a call to a first Application Programming Interface (API) that identifies a first microservice, the resource comprising metadata;

authenticating the request;

accessing the first microservice of a plurality of microservices based on the request, the first microservice comprising a remote API proxy and a near cache, wherein the near cache is local to the first microservice and fronts a remote cache;

determining, by the remote API proxy, whether the resource is indicated as cacheable based on the metadata, and if cacheable whether the resource is cached in the near cache or in the remote cache, wherein the remote cache is external of the first microservice and the remote API proxy establishes a connection with the remote cache;

in response to determining the resource is indicated as cacheable in the near cache, retrieving the resource from the near cache or from the remote cache when the resource is cached;

calling an administration microservice to obtain the resource when the resource is not cached, wherein the administration microservice is a different microservice than the first microservice; and

providing the resource to the client.

2. The computer readable medium of claim 1 , wherein the request comprises a Hypertext Transfer Protocol (HTTP) request, wherein the client comprises a Representational State Transfer (REST) client, wherein the administration microservice comprises a System for Cross-domain Identity Management (SCIM) microservice, wherein the providing comprises sending a JavaScript Object Notation (JSON) response payload.

3. The computer readable medium of claim 1 , wherein the first microservice is stateless, wherein the remote cache comprises a distributed data grid, wherein the remote cache and the first microservice are configured to scale independently of one another.

4. The computer readable medium of claim 1 , wherein the first microservice is implemented by a virtual machine.

5. The computer readable medium of claim 1 , wherein the remote API proxy emulates a functionality of the administration microservice.

6. The computer readable medium of claim 1 , wherein the administration microservice obtains the resource from a connection to a database or a connection to a Lightweight Directory Access Protocol (LDAP).

7. The computer readable medium of claim 1 , wherein the remote API proxy looks for the resource in the near cache when the resource is cachable and configured to be cached in the near cache, wherein the remote API proxy looks for the resource in the remote cache when the resource is cachable and configured to be cached in the remote cache.

8. The computer readable medium of claim 7 , wherein the remote API proxy calls the administration microservice to obtain the resource if the resource is not cachable or if the resource is cachable but is not cached in the near cache or in the remote cache.

9. The computer readable medium of claim 1 , wherein the resource is configured to be cached in the near cache when the resource is not a tenant specific resource.

10. The computer readable medium of claim 1 , wherein a file stored at a global database indicates whether the resource is cachable, and if cachable, whether the resource is configured to be cached in the remote cache or in the near cache.

11. The computer readable medium of claim 1 , wherein the resource is configured to be cached in the remote cache when the resource is a tenant specific resource.

12. The computer readable medium of claim 1 , wherein the remote cache implements a different namespace for each tenant that uses the first microservice.

13. A method of providing cloud-based identity and access management, comprising:

receiving a request from a client for a resource, the request comprising a call to a first Application Programming Interface (API) that identifies a first microservice, the resource comprising metadata;

authenticating the request;

accessing the first microservice of a plurality of microservices based on the request, the first microservice comprising a remote API proxy and a near cache, wherein the near cache is local to the first microservice and fronts a remote cache;

determining, by the remote API proxy, whether the resource is indicated as cacheable based on the metadata, and if cacheable whether the resource is cached in the near cache or in the remote cache, wherein the remote cache is external of the first microservice and the remote API proxy establishes a connection with the remote cache;

in response to determining the resource is indicated as cacheable in the near cache, retrieving the resource from the near cache or from the remote cache when the resource is cached;

calling an administration microservice to obtain the resource when the resource is not cached, wherein the administration microservice is a different microservice than the first microservice; and

providing the resource to the client.

14. The method of claim 13 , wherein the request comprises a Hypertext Transfer Protocol (HTTP) request, wherein the client comprises a Representational State Transfer (REST) client, wherein the administration microservice comprises a System for Cross-domain Identity Management (SCIM) microservice, wherein the providing comprises sending a JavaScript Object Notation (JSON) response payload.

15. The method of claim 13 , wherein the first microservice is stateless, wherein the remote cache comprises a distributed data grid, wherein the remote cache and the first microservice are configured to scale independently of one another.

16. The method of claim 13 , wherein the first microservice is implemented by a virtual machine.

17. The method of claim 13 , wherein the remote API proxy emulates a functionality of the administration microservice.

18. The method of claim 13 , wherein the administration microservice obtains the resource from a connection to a database or a connection to a Lightweight Directory Access Protocol (LDAP).

19. The method of claim 13 , wherein the remote API proxy looks for the resource in the near cache when the resource is cachable and configured to be cached in the near cache, wherein the remote API proxy looks for the resource in the remote cache when the resource is cachable and configured to be cached in the remote cache.

20. A system comprising:

one or more processors; and

a non-transitory computer readable medium having instructions stored thereon that, when executed by the processors, cause the processors to provide cloud-based identity and access management, the providing comprising:

receiving a request from a client for a resource, the request comprising a call to a first Application Programming Interface (API) that identifies a first microservice, the resource comprising metadata;

authenticating the request;

accessing the first microservice of a plurality of microservices based on the request, the first microservice comprising a remote API proxy and a near cache, wherein the near cache is local to the first microservice and fronts a remote cache;

determining, by the remote API proxy, whether the resource is indicated as cacheable based on the metadata, and if cacheable whether the resource is cached in the near cache or in the remote cache, wherein the remote cache is external of the first microservice and the remote API proxy establishes a connection with the remote cache;

in response to determining the resource is indicated as cacheable in the near cache, retrieving the resource from the near cache or from the remote cache when the resource is cached;

calling an administration microservice to obtain the resource when the resource is not cached, wherein the administration microservice is a different microservice than the first microservice; and

providing the resource to the client.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2017
From: GUPTA, LOKESH; PITRE, ASHUTOSH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 043108/0300 →
Continuity (5)
Provisional Application 62371336 · Aug 5, 2016
Provisional Application 62376069 · Aug 17, 2016
Provisional Application 62395463 · Sep 16, 2016
Provisional Application 62385339 · Sep 9, 2016
Related Publication 20180041491A1 · Feb 8, 2018
Cited By (7)
US 12,273,343 US 12,580,909 US 12,602,246 US 12,645,359 US 12,657,051 US 12,693,889 US 12,717,612