IP Library Granted Patent US 11,494,518
Granted Patent B1
US 11,494,518 · App. 16/914,239 · Granted Nov 8, 2022

Method and apparatus for specifying policies for authorizing APIs

Inventors: Andrew Curtis (San Mateo, CA); Mikol Graves (San Francisco, CA); Teemu Koponen (San Francisco, CA); Timothy L. Hinrichs (Los Altos, CA); Torin Sandall (San Francisco, CA)
Assignee: STYRA, INC.
G06F21/629G06F9/54
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,494,518
App. No.
16/914,239
Granted
Nov 8, 2022
Kind
B1
Abstract

Some embodiments provide API (Application Programming Interface) authorization platform that allows API-authorization policy stacks to be created and enforced. Policy stacks (called “stacks”) define API-authorization policies across different sets of managed resources in a workspace. A stack in some embodiments defines a uniform set of one or more API-authorization policies for multiple different sets of resources so that the set of policies do not have to be specified independently for each set of resources. By instituting common policies across multiple managed resource sets (also called managed systems), stacks can be used to guarantee uniform baseline policies for the workspace. A stack is typically applied to several managed resources that share a common trait (e.g., share a particular type). The API-authorization platform of some embodiments allows an administrator to define the traits of the managed resources through labels (e.g., key value pairs) that are associated with the stacks and the managed systems. This platform in some embodiments also allows a stack to specify an exception for a managed system based on one or more features of the system that are expressed in a rich feature data structure of the system.

Claims (32)

1. A method of specifying policies for authorizing API (application programming interface) calls to different sets of managed resources managed by different sets of administrators, the method comprising:

receiving a definition of a policy applicable to API calls to at least first and second sets of managed resources managed by first and second different sets of administrators;

receiving, for the policy, a first attribute to compare with attributes defined for different sets of managed resources in order to identify the first and second sets of managed resources as managed resources to which the received policy is applicable; and

publishing the policy with the first attribute in order to identify the resources to which the policy is applicable.

2. The method of claim 1 , wherein receiving the policy definition and first attribute comprises receiving the policy definition and the first attribute from a particular administrator who is not in the first and second sets of administrators.

3. The method of claim 2 , wherein the particular administrator is an administrator of a workspace in a set of one or more software define datacenters (SDDCs), while the first and second sets of administrators are administrators of first and second sets of resources in the SDDC set.

4. The method of claim 3 , wherein the first and second sets of resources in the SDDC set are first and second clusters of Kubernetes compute nodes.

5. The method of claim 3 , wherein the first and second sets of resources in the SDDC set are first and second distributed applications that execute in the SDDC set.

6. The method of claim 3 , wherein the first and second sets of resources in the SDDC set are first and second distributed data storages that operate in the SDDC set.

7. The method of claim 2 , wherein the particular administrator is an administrator of a workspace that operates in one or more datacenters, while the first and second sets of administrators are administrators of first and second sets of resources that are part of the workspace.

8. The method of claim 1 further comprising:

receiving, for the policy, a second attribute to compare with attributes defined for different sets of managed resources in order to identify sets of managed resources as managed resources to which the received policy is applicable;

wherein publishing the policy comprises publishing the policy with both the first and second attributes to a policy distribution engine that uses the first and second attribute to identify sets of resources to which the policy is applicable.

9. The method of claim 8 , wherein the first and second attributes comprise labels that are compared with labels that are associated with the first and second sets of resources to describe the first and second sets of resources.

10. The method of claim 8 , wherein each of the first and second attributes is specified as a key-value pair that is used to compare to one or more labels associated with each of the first and second sets of resources, each label associated with each set of resources also specified as a key-value pair that describes one aspect of the set of resources.

11. The method of claim 1 , wherein the policy is a first policy, the method further comprising:

receiving, for the first policy, a priority level to use to resolve a potential conflict between the first policy and a second policy that is specified for the first set of resources by the first set of administrators;

wherein publishing the policy comprises publishing the policy with the first attribute and with the priority level.

12. The method of claim 11 , wherein the second policy cannot override the first policy.

13. A non-transitory machine readable medium storing a program which when executed by at least one processing unit specifies policies for authorizing API (application programming interface) calls to different sets of managed resources managed by different sets of administrators, the program comprising sets of instructions for:

receiving a definition of a policy applicable to API calls to at least first and second sets of managed resources managed by first and second different sets of administrators;

receiving, for the policy, a first attribute to compare with attributes defined for different sets of managed resources in order to identify the first and second sets of managed resources as managed resources to which the received policy is applicable; and

publishing the policy with the first attribute in order to identify the resources to which the policy is applicable.

14. The non-transitory machine readable medium of claim 13 , wherein the set of instructions for receiving the policy definition and first attribute comprises a set of instructions for receiving the policy definition and the first attribute from a particular administrator who is not in the first and second sets of administrators.

15. The non-transitory machine readable medium of claim 14 , wherein the particular administrator is an administrator of a workspace in a set of one or more software define datacenters (SDDCs), while the first and second sets of administrators are administrators of first and second sets of resources in the SDDC set.

16. The non-transitory machine readable medium of claim 15 , wherein the first and second sets of resources in the SDDC set are first and second clusters of Kubernetes compute nodes.

17. The non-transitory machine readable medium of claim 15 , wherein the first and second sets of resources in the SDDC set are first and second distributed applications that execute in the SDDC set.

18. The non-transitory machine readable medium of claim 15 , wherein the first and second sets of resources in the SDDC set are first and second distributed data storages that operate in the SDDC set.

19. The non-transitory machine readable medium of claim 14 , wherein the particular administrator is an administrator of a workspace that operates in one or more datacenters, while the first and second sets of administrators are administrators of first and second sets of resources that are part of the workspace.

20. The non-transitory machine readable medium of claim 13 ,

wherein the program further comprises a set of instructions for receiving, for the policy, a second attribute to compare with attributes defined for different sets of managed resources in order to identify sets of managed resources as managed resources to which the received policy is applicable;

wherein the set of instructions for publishing the policy comprises a set of instructions for publishing the policy with both the first and second attributes to a policy distribution engine that uses the first and second attribute to identify sets of resources to which the policy is applicable.

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 Sep 9, 2020
From: CURTIS, ANDREW; GRAVES, MIKOL; KOPONEN, TEEMU; HINRICHS, TIMOTHY L.; SANDALL, TORIN
To: STYRA, INC.
Reel/Frame 053727/0437 →
Continuity (2)
Provisional Application 63036991 · Jun 9, 2020
Provisional Application 62984291 · Mar 2, 2020
Cited By (7)
US 12,353,877 US 12,386,684 US 12,401,694 US 12,407,647 US 12,498,998 US 12,693,839 US 12,706,953