IP Library Granted Patent US 10,616,211
Granted Patent B2
US 10,616,211 · App. 15/486,009 · Granted Apr 7, 2020

System and method for authenticating clients

Inventors: Von Jones (Sugar Land, TX); Girish Rathnamani Ranganathan (Ontario, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L63/083G06F16/284G06F16/951G06F8/61
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,616,211
App. No.
15/486,009
Granted
Apr 7, 2020
Kind
B2
Abstract

A system is disclosed for authenticating a client's request for resources in a network environment. The system is configured to receive a request, the request comprising credentials and an API scope, authenticate the credentials, and confirm the API scope of the request is identified in one or more API scopes allocated to a client using an authorization server. The authorization server may comprise a relational database correlating one or more clients with one or more roles, the roles may be correlated with one or more permissions, and the permissions may be correlated with one or more API scopes. The system may be configured to request an access token, the access token comprising an API scope that correlates to the API scope of the request, and grant access to the requested resource if the API scope of the access token correlates to the API scope of the request.

Claims (50)

1. A computer-implemented method, comprising:

receiving a request from a network client for a resource at a service provider, the request including credentials from the network client and an application program interface (API) scope;

authenticating the credentials using an identity provider;

confirming the API scope of the request is identified in one or more API scopes allocated to the network client using an authorization server, the authorization server including a relational database correlating each of a plurality of different network clients with one or more of a plurality of different roles, each of the plurality of different roles with one or more of a plurality of different permissions, and each of the plurality of different permissions with one of a plurality of different API scopes, the plurality of different permissions including rights to install an application and configure application settings;

requesting an access token from the authorization server;

receiving the access token from the authorization server;

requesting the resource from a resource server using the access token;

validating the access token to confirm whether a token scope of the access token correlates to the API scope of the request; and

granting the network client access to the resource when the token scope correlates to the API scope of the request.

2. The computer-implemented method of claim 1 , further comprising:

transmitting an authentication response from the identity provider to the service provider when the credentials are authenticated.

3. The computer-implemented method of claim 1 , further comprising:

transmitting the access token from the authorization server to the service provider.

4. The computer-implemented method of claim 1 , further comprising:

transmitting the resource to the service provider.

5. The computer-implemented method of claim 4 , further comprising:

transmitting the resource from the service provider to the network client.

6. The computer-implemented method of claim 1 , wherein the plurality of different roles includes an administrator, a customer, and a user.

7. The computer-implemented method of claim 1 , wherein the plurality of different permissions includes a right to onboard a user.

8. The computer-implemented method of claim 1 , wherein the plurality of different API scopes includes reading data, writing data, and accessing data.

9. A non-transitory computer-readable medium comprising instructions, the instructions, when executed by a computing system, cause the computing system to:

receive a request for a resource from a client, the request comprising credentials and an application program interface (API) scope;

authenticate the credentials using an identity provider

confirm the API scope of the request is identified in one or more API scopes allocated to the client using an authorization server, the authorization server including a relational database correlating each of a plurality of different clients with one or more of a plurality of different roles, each of the plurality different roles with one or more of a plurality of different permissions; and each of the plurality of different permissions with one of a plurality of different API scopes, the plurality of different permissions including rights to install an application and configure application settings;

request an access token from the authorization server;

receive the access token from the authorization server;

request the resource using the access token;

validate the access token to confirm whether a token scope of the access token correlates to the API scope of the request; and

grant access to the resource when the token scope correlates to the API scope of the request.

10. The non-transitory computer-readable medium of claim 9 , wherein the instructions further cause the computing system to transmit an authentication response from the identity provider when the credentials are authenticated.

11. The non-transitory computer-readable medium of claim 9 , wherein the instructions further cause the computing system to transmit the access token from the authorization server to a service provider.

12. The non-transitory computer-readable medium of claim 9 , wherein the instructions further cause the computing system to transmit the resource to a service provider.

13. The non-transitory computer-readable medium of claim 9 , wherein the plurality of different roles includes an administrator, a customer, and a user.

14. The non-transitory computer-readable medium of claim 9 , wherein the plurality of different permissions includes a right to onboard a user.

15. The non-transitory computer-readable medium of claim 9 , wherein the plurality of different API scopes includes reading data, writing data, and accessing data.

16. A system comprising:

a processor; and

a non-transitory computer-readable medium storing instructions that, when executed by the system, cause the system to:

receive a request for a resource from a client, the request comprising credentials and an application program interface (API) scope;

authenticate the credentials using an identity provider;

confirm the API scope of the request is identified in one or more API scopes allocated to the client using an authorization server, the authorization server including a relational database correlating each of a plurality of different clients with one or more of a plurality of different roles, each of the plurality of different roles correlated with one or more of a plurality of different permissions, each of the plurality of different permissions with one of a plurality of different API scopes, the plurality of different permissions including rights to install an application and configure application settings;

request an access token;

receive the access token;

request the resource using the access token;

validate the access token to confirm whether a token scope of the access token correlates to the API scope of the request; and

grant access to the resource when the token scope correlates to the API scope of the request.

17. The system of claim 16 , wherein the instructions further cause the system to transmit an authentication response from the identity provider when the credentials are authenticated.

18. The system of claim 16 , wherein each role of the one or more roles include an administrator, a customer, and a user.

19. The system of claim 16 , wherein each permission of the one or more permissions include a right to onboard a user.

20. The system of claim 16 , wherein the one or more API scopes include reading data, writing data, and accessing data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2017
From: JONES, VON; RANGANATHAN, GIRISH RATHNAMANI
To: CISCO TECHNOLOGY, INC.
Reel/Frame 042238/0722 →
Continuity (1)
Related Publication 20180302391A1 · Oct 18, 2018