IP Library Granted Patent US 11,604,684
Granted Patent B1
US 11,604,684 · App. 16/050,143 · Granted Mar 14, 2023

Processing API calls by authenticating and authorizing API calls

Inventors: Timothy L. Hinrichs (Los Altos, CA); Teemu Koponen (San Francisco, CA); Andrew Curtis (San Mateo, CA); Torin Sandall (San Francisco, CA); Octavian Florescu (Kirkland, WA)
Assignee: STYRA, INC.
G06F9/54G06F21/30H04L63/10H04L63/20
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 11,604,684
App. No.
16/050,143
Granted
Mar 14, 2023
Kind
B1
Abstract

Some embodiments of the invention provide a system for defining, distributing and enforcing policies for authorizing API (Application Programming Interface) calls to applications executing on one or more sets of associated machines (e.g., virtual machines, containers, computers, etc.) in one or more datacenters. This system has a set of one or more servers that acts as a logically centralized resource for defining and storing policies and parameters for evaluating these policies. The server set in some embodiments also enforces these API-authorizing policies. Conjunctively, or alternatively, the server set in some embodiments distributes the defined policies and parameters to policy-enforcing local agents that execute near the applications that process the API calls. From an associated application, a local agent receives API-authorization requests to determine whether API calls received by the application are authorized. In response to such a request, the local agent uses one or more parameters associated with the API call to identify a policy stored in its local policy storage to evaluate whether the API call should be authorized. To evaluate this policy, the agent might also retrieve one or more parameters from the local policy storage.

Claims (34)

1. A method for authorizing API (Application Programming Interface) calls, the method comprising:

at a computer:

receiving an API call to an application executing on the computer;

sending a first IPC (inter process communication) message to an authentication first module to direct the first module to perform an authentication first operation to evaluate a set of credentials associated with the API call to determine whether the API call is from an entity that is allowed to make such a call to the application;

when the set of credentials is authenticated to determine that the entity is allowed to make the API call to the application, sending a second IPC message to an authorization second module to direct the second module to perform an authorization second operation to evaluate a set of API-authorization policies to determine whether the API call should be authorized for processing by the application, the authorization second operation being a separate operation than the authentication first operation; and

directing the application to process the API call when the authorization second operation determines that the API call should be processed by the application.

2. The method of claim 1 , wherein

performing the authentication first operation comprises using a first program to authenticate the set of credentials, and

performing the authorization second operation comprises using a second program to authorize the API call.

3. The method of claim 2 , wherein the first and second programs execute on the computer.

4. The method of claim 3 , wherein the application and second program execute on a machine that executes on the computer.

5. The method of claim 2 , wherein the second program executes on the computer while the first program executes on another computer.

6. The method of claim 2 , wherein the first program executes on the computer while the second program executes on another computer.

7. The method of claim 2 , wherein the first and second programs execute on another computer.

8. The method of claim 1 further comprising:

when the set of credentials is not authenticated, rejecting the API call.

9. The method of claim 8 , wherein rejecting the API call comprises sending a rejection to a source of the API call.

10. The method of claim 1 further comprising:

when the set of credentials is not authenticated, performing the authorization second operation by using the failure to authenticate as a parameter to evaluate the set of authorization policies.

11. A non-transitory machine readable medium storing a first program for execution by at least one processing unit of a computer, the first program for authorizing API (Application Programming Interface) calls, the first program comprising sets of instructions for:

receiving an API call to an application executing on the computer;

before passing the API call to the application, sending a first IPC message to an authentication first module to direct the first module to execute an authentication second program to evaluate a set of credentials associated with the API call to determine whether the API call is from an entity that is allowed to make such a call to the application;

when the set of credentials is authenticated to determine that the entity is allowed to make the API call to the application, sending a second IPC message to an authorization second module to direct the second module to execute an authorization third program to evaluate a set of API-authorization policies to determine whether the API call should be authorized for processing by the application, wherein both the first program for authorizing API calls and the authorization third program executes on the computer; and

after the set of credentials is authenticated by the authentication second program and the API is authorized by the authorization third program, directing the application to process the API call when the authorization operation determines that the API call should be processed by the application.

12. The non-transitory machine readable medium of claim 11 , wherein the second and third programs execute on the computer.

13. The non-transitory machine readable medium of claim 12 , wherein the application and third program execute on a machine that executes on the computer.

14. The non-transitory machine readable medium of claim 11 , wherein the third program executes on the computer while the second program executes on another computer.

15. The non-transitory machine readable medium of claim 11 , wherein the second program executes on the computer while the third program executes on another computer.

16. The non-transitory machine readable medium of claim 11 , wherein the second and third programs execute on another computer.

17. The non-transitory machine readable medium of claim 11 further comprising:

when the set of credentials is not authenticated, rejecting the API call.

18. The non-transitory machine readable medium of claim 17 , wherein rejecting the API call comprises sending a rejection to a source of the API call.

19. The non-transitory machine readable medium of claim 11 further comprising:

when the set of credentials is not authenticated, performing the authorization operation by using the failure to authenticate as a parameter to evaluate the set of authorization policies.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2025
From: STYRA, INC.
To: APPLE INC.
Reel/Frame 072818/0489 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2025
From: STYRA, INC.
To: APPLE INC.
Reel/Frame 072522/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2018
From: HINRICHS, TIMOTHY L.; KOPONEN, TEEMU; CURTIS, ANDREW; SANDALL, TORIN; FLORESCU, OCTAVIAN
To: STYRA, INC.
Reel/Frame 047668/0634 →
Continuity (2)
Provisional Application 62545458 · Aug 14, 2017
Provisional Application 62540547 · Aug 2, 2017
Cited By (11)
US 12,287,906 US 12,299,502 US 12,307,305 US 12,386,684 US 12,401,694 US 12,405,948 US 12,407,647 US 12,437,057 US 12,455,974 US 12,498,998 US 12,693,839