IP Library Granted Patent US 11,853,463
Granted Patent B1
US 11,853,463 · App. 16/293,513 · Granted Dec 26, 2023

Leveraging standard protocols to interface unmodified applications and services

Inventors: Timothy L. Hinrichs (Los Altos, CA); Teemu Koponen (San Francisco, CA)
Assignee: STYRA, INC.
G06F21/629H04L63/0807H04L63/10H04L67/561H04L2463/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 11,853,463
App. No.
16/293,513
Granted
Dec 26, 2023
Kind
B1
Abstract

Some embodiments provide a method for enforcing policies for authorizing API (Application Programming Interface) calls to an application operating on a host machine. The method receives a request to authenticate a client attempting to gain access to the application, and authenticates the client based on a first set of parameters associated with the request. Using a second set of parameters associated with the request, the method evaluates a set of one or more policies associated with a set of one or more API calls to the application. Based on the evaluated policies, the method defines a third set of one or more authentication field parameters that control the API calls that the client is authorized to make to the application. The method sends an authentication reply message with the defined third set of authentication field parameters in order to control the API calls that the client is authorized to make.

Claims (28)

1. A method for enforcing policies for authorizing API (Application Programming Interface) calls to an application, the method comprising:

at an authorization first module for authorizing API calls:

receiving, from the application, a request to authenticate a client sending an API call to the application;

using an authentication second module to authenticate the client based on a first set of parameters associated with the request;

using a second set of parameters associated with the request to evaluate a set of one or more policies that are specified to control API calls to the application;

based on the evaluated policies, defining a third set of parameters to perform an RBAC (role-based access control) operation by the application, the third set of parameters including at least one parameter not in the first and second sets of parameters; and

sending, to the application, the defined third set of parameters for the application to use to perform the RBAC operation to determine whether the application should perform an operation requested by the API call.

2. The method of claim 1 , wherein the first set of parameters is associated with the client.

3. The method of claim 2 , wherein the first set of parameters comprises an identifier that identifies a user that is using the application.

4. The method of claim 3 , wherein the identifier comprises at least one of a password, a certificate, a group ID, and a credential associated with two-factor authentication.

5. The method of claim 1 , wherein the second set of parameters is retrieved from a storage after receiving the request.

6. The method of claim 1 , wherein the defined third set of authentication field parameters comprises permissions data.

7. The method of claim 6 , wherein the permissions data is used for the RBAC operation.

8. The method of claim 1 , wherein the request comprises at least one parameter in the first set of parameters, wherein the authorization first module and the authentication second module execute on different host computers, wherein the authorization first module receives a reply from the authentication second module, wherein the reply comprises at least one parameter in the third set of parameters.

9. The method of claim 8 , wherein the authentication second module uses one of LDAP, RADIUS, SAML 2.0 and Kerberos protocols.

10. The method of claim 1 , wherein the client is one of a client application, a client machine, a client computer, or a client service.

11. A non-transitory machine readable medium storing an authorization program executing on at least one hardware processing unit of a computing device to authorize API (Application Programming Interface) calls, the program for enforcing policies for authorizing API calls to an application, the authorization program comprising sets of instructions for:

receiving, from the application, a request to authenticate a client sending an API call to the application;

using an authentication module to authenticate the client based on a first set of parameters associated with the request;

using a second set of parameters associated with the request to evaluate a set of one or more policies that are specified to control API calls to the application;

based on the evaluated policies, defining a third set of parameters to perform an RBAC (role-based access control) operation by the application, the third set of parameters including at least one parameter not in the first and second sets of parameters; and

sending, to the application, the defined third set of parameters for the application to use to perform the RBAC operation to determine whether the application should perform an operation requested by the API call.

12. The non-transitory machine readable medium of claim 11 , wherein:

the first set of parameters is associated with the client and comprises an identifier that identifies a user that is using the application, wherein the identifier comprises at least one of a password, a certificate, a group ID, and a credential associated with two-factor authentication;

the second set of parameters is retrieved from a storage after receiving the request; and

the defined third set of authentication field parameters comprises permissions data, wherein the permissions data is used for the RBAC operation.

13. The non-transitory machine readable medium of claim 11 , wherein the request comprises at least one parameter in the first set of parameters, wherein the authentication module executes on a host computer that is different from the computing device, wherein the authentication module uses one of LDAP, RADIUS, SAML 2.0, and Kerberos protocols, wherein the authorization program receives a reply from the authentication module, wherein the reply comprises at least one parameter in the third set of parameters.

14. The non-transitory machine readable medium of claim 11 , wherein the client is one of a client application, a client machine, a client computer, or a client service.

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 Mar 5, 2019
From: HINRICHS, TIMOTHY L.; KOPONEN, TEEMU
To: STYRA, INC.
Reel/Frame 048510/0939 →
Continuity (1)
Provisional Application 62721997 · Aug 23, 2018
Cited By (10)
US 12,287,906 US 12,299,502 US 12,367,320 US 12,386,684 US 12,393,665 US 12,405,948 US 12,407,647 US 12,475,211 US 12,489,750 US 12,706,953