IP Library Granted Patent US 11,245,728
Granted Patent B1
US 11,245,728 · App. 16/446,510 · Granted Feb 8, 2022

Filtering policies for authorizing an API

Inventors: Andrew Curtis (San Mateo, CA); Mikol Graves (San Francisco, CA); Bryan J. Fulton (San Francisco, CA); Timothy L. Hinrichs (Los Altos, CA); Marco Sanvido (Belmont, CA); Teemu Koponen (San Francisco, CA)
Assignee: STYRA, INC.
H04L63/20H04L63/0263H04L63/08H04L63/101H04L67/40
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,245,728
App. No.
16/446,510
Granted
Feb 8, 2022
Kind
B1
Abstract

Some embodiments provide a method for providing insight into applicability of policies that authorize access to at least one service through application programming interface (API) calls by multiple users. The method receives at least one authorization policy that defines access to the service by the users, where the policy includes two or more access rules. The method identifies a subset of unnecessary access rules in the received policy, based on a set of contextual data that is associated with the users, and filters the received policy by removing the identified subset of unnecessary access rules. The method receives a query regarding access to the service from a particular set of one or more users, and uses the filtered policy to provide a response to the query that describes access to the service for the particular user set.

Claims (30)

1. A method for gaining insight into applicability of policies that authorize access to at least one service through application programming interface (API) calls by a plurality of users, the method comprising:

receiving at least one authorization policy that defines access to the service by the users, said policy comprising two or more access rules;

identifying a subset of unnecessary access rules in the received policy, based on a set of contextual data that is associated with the users;

filtering the received policy by removing the identified subset of unnecessary access rules;

receiving a query regarding access to the service from a particular set of one or more users; and

using the filtered policy to provide a response to the query that describes access to the service for the particular user set.

2. The method of claim 1 , wherein the contextual data comprises usage data from service logs generated from previous API calls to the service by one or more of the users.

3. The method of claim 1 , wherein the service comprises a plurality of resources, wherein each access rule associates at least one user to at least one resource.

4. The method of claim 3 , wherein unnecessary access rules are access rules that specify that the particular user set has access to a particular resource when at least one other access rule specifies that the particular user set does not have access to the same particular resource.

5. The method of claim 1 , wherein unnecessary access rules are access rules that are identical to another access rule, wherein removing the unnecessary access rules comprises consolidating the identical access rules into a single access rule.

6. The method of claim 1 , wherein unnecessary access rules are access rules that (i) do not result in an allow decision and (ii) do not result in a deny decision.

7. The method of claim 1 , wherein the received policy is an aggregate policy generated by receiving and combining two or more individual policies that each define access to the service by the users.

8. The method of claim 7 , wherein the two or more policies define access to the service by at least two different groups of users, wherein the particular user set are members of both a first group and a second group.

9. The method of claim 8 , wherein if the particular user set is (i) not authorized to access the service according to a first received policy that defines access to the first group and (ii) is authorized to access the service according to a second received policy that defines access to the second group, then the particular user set is not authorized to access the service according to the aggregate policy.

10. The method of claim 8 , wherein at least one of the different groups of users is one of an organization, a department, a team, and a role.

11. The method of claim 7 , wherein the aggregate policy was generated by (i) expressing each received policy as a code in a general policy language and (ii) representing the expressed policies as a single unified policy in the general policy language.

12. A non-transitory machine readable medium storing a program which when executed by at least one processing unit provides insight into applicability of policies that authorize access to at least one service through application programming interface (API) calls by a plurality of users, the program comprising sets of instructions for:

receiving at least one authorization policy that defines access to the service by the users, said policy comprising two or more access rules;

identifying a subset of unnecessary access rules in the received policy, based on a set of contextual data that is associated with the users;

filtering the received policy by removing the identified subset of unnecessary access rules;

receiving a query regarding access to the service from a particular set of one or more users; and

using the filtered policy to provide a response to the query that describes access to the service for the particular user set.

13. The machine readable medium of claim 12 , wherein the service comprises a plurality of resources, wherein each access rule associates at least one user to at least one resource.

14. The machine readable medium of claim 13 , wherein unnecessary access rules are access rules that specify that the particular user set has access to a particular resource when at least one other access rule specifies that the particular user set does not have access to the same particular resource.

15. The machine readable medium of claim 12 , wherein unnecessary access rules are access rules that are identical to another access rule, wherein the set of instructions for removing the unnecessary access rules comprises a set of instructions for consolidating the identical access rules into a single access rule.

16. The machine readable medium of claim 12 , wherein unnecessary access rules are access rules that (i) do not result in an allow decision and (ii) do not result in a deny decision.

17. The machine readable medium of claim 12 , wherein the received policy is an aggregate policy generated by receiving and combining two or more individual policies that each define access to the service by the users.

18. The machine readable medium of claim 17 , wherein the two or more policies define access to the service by at least two different groups of users, wherein the particular user set are members of both a first group and a second group.

19. The machine readable medium of claim 18 , wherein if the particular user set is (i) not authorized to access the service according to a first received policy that defines access to the first group and (ii) is authorized to access the service according to a second received policy that defines access to the second group, then the particular user set is not authorized to access the service according to the aggregate policy.

20. The machine readable medium of claim 17 , wherein the aggregate policy was generated by (i) expressing each received policy as a code in a general policy language and (ii) representing the expressed policies as a single unified policy in the general policy language.

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 Aug 28, 2019
From: CURTIS, ANDREW; GRAVES, MIKOL; FULTON, BRYAN J.; HINRICHS, TIMOTHY L.; SANVIDO, MARCO; KOPONEN, TEEMU
To: STYRA, INC.
Reel/Frame 050204/0882 →
Continuity (3)
Provisional Application 62839487 · Apr 26, 2019
Provisional Application 62785656 · Dec 27, 2018
Provisional Application 62746500 · Oct 16, 2018
Cited By (9)
US 12,353,877 US 12,401,694 US 12,405,948 US 12,407,647 US 12,437,057 US 12,468,855 US 12,498,998 US 12,598,183 US 12,693,839