IP Library Granted Patent US 11,394,710
Granted Patent B1
US 11,394,710 · App. 17/500,159 · Granted Jul 19, 2022

Identity proxy and access gateway

Inventors: James Howard Royal (Austin, TX); Samuel Douglas Rhea (Lisbon, PT)
Assignee: CLOUDFLARE, INC.
H04L63/0884H04L63/0281H04L63/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,394,710
App. No.
17/500,159
Granted
Jul 19, 2022
Kind
B1
Abstract

A server transmits to a third-party application a request for a resource that is received from a client. The server receives an authentication request from the client device that has been generated by the third-party application. The server transmits an identity provider selection page to the client device that allows the client device to select an identity provider. The server causes the client device to transmit a second authentication request to a selected identity provider. The server receives an authentication response that was generated by the identity provider that includes the identity of the user. The server enforces access rule(s) including identity-based rule(s) and/or non-identity based rule(s). If the user is permitted to access the third-party application, the server causes an authentication response to be transmitted from the client device to the third-party application that indicates the user has successfully authenticated.

Claims (77)

1. A method implemented in an identity proxy and access gateway, comprising:

receiving a first access request from a client device that is requesting access to a resource at a third-party application;

transmitting the first access request to the third-party application;

receiving a first authentication request from the client device that has been generated by the third-party application, wherein the first authentication request is requesting an authentication of a user that is attempting to access the third-party application, and wherein the identity proxy and access gateway is configured as a first identity provider of the third-party application;

transmitting an identity provider selection page to the client device, the identity provider selection page including one or more identity provider options for the user to select for authentication;

receiving, from the client device, a selection of one of the one or more identity provider options;

causing the client device to transmit a second authentication request to a second identity provider corresponding to the selected one of the one or more identity provider options;

receiving, from the client device, a first authentication response that was generated by the second identity provider that identifies the user has successfully authenticated to the second identity provider;

enforcing a first set of one or more access rules including one or more identity-based rules and one or more non-identity based rules to determine whether the identified user is permitted to access the third-party application, wherein the first set of one or more access rules is enforced independently from any rules enforced at the second identity provider;

determining, from the enforcing of the first set of one or more access rules, that the identified user is permitted to access to the third-party application, and responsive to this determination, generating a second authentication response that identifies the user has successfully authenticated; and

causing the client device to transmit the second authentication response to the third-party application.

2. The method of claim 1 , wherein one of the first set of one or more access rules is a rule that specifies that traffic is not allowed to be transmitted to the third-party application unless the traffic is associated with a gateway agent installed on the client device.

3. The method of claim 1 , further comprising: logging the first access request independently of any logging performed by the third-party application.

4. The method of claim 1 , further comprising:

receiving a second request from the client device to interact with a second resource at the third-party application, wherein the second request includes data that identifies the user;

enforcing a second set of one or more access rules including one or more identity-based rules and one or more non-identity based rules to determine whether the identified user is permitted to interact with the second resource at the third-party application;

determining, from the enforcing of the second set of one or more access rules, that the identified user is permitted to interact with the second resource; and

transmitting the second request to the third-party application.

5. The method of claim 4 , wherein enforcing the second set of one or more access rules includes analyzing content of the request.

6. The method of claim 4 , further comprising:

receiving a response from the third-party application responsive to the second request;

enforcing a third set of one or more access rules including one or more identity-based rules and one or more non-identity based rules to determine whether the response is permitted to be sent to the client device;

determining, from the enforcing of the third set of one or more access rules, that the response is permitted to be transmitted to the client device; and

transmitting the response to the client device.

7. The method of claim 6 , wherein enforcing the third set of one or more access rules includes analyzing content of the response.

8. A non-transitory machine-readable storage medium that provides instructions that, if executed by a processor of an identity proxy and access gateway, will cause said processor to perform operations comprising:

receiving a first access request from a client device that is requesting access to a resource at a third-party application;

transmitting the first access request to the third-party application;

receiving a first authentication request from the client device that has been generated by the third-party application, wherein the first authentication request is requesting an authentication of a user that is attempting to access the third-party application, and wherein the identity proxy and access gateway is configured as a first identity provider of the third-party application;

transmitting an identity provider selection page to the client device, the identity provider selection page including one or more identity provider options for the user to select for authentication;

receiving, from the client device, a selection of one of the one or more identity provider options;

causing the client device to transmit a second authentication request to a second identity provider corresponding to the selected one of the one or more identity provider options;

receiving, from the client device, a first authentication response that was generated by the second identity provider that identifies the user has successfully authenticated to the second identity provider;

enforcing a first set of one or more access rules including one or more identity-based rules and one or more non-identity based rules to determine whether the identified user is permitted to access the third-party application, wherein the first set of one or more access rules is enforced independently from any rules enforced at the second identity provider;

determining, from the enforcing of the first set of one or more access rules, that the identified user is permitted to access to the third-party application, and responsive to this determination, generating a second authentication response that identifies the user has successfully authenticated; and

causing the client device to transmit the second authentication response to the third-party application.

9. The non-transitory machine-readable storage medium of claim 8 , wherein one of the first set of one or more access rules is a rule that specifies that traffic is not allowed to be transmitted to the third-party application unless the traffic is associated with a gateway agent installed on the client device.

10. The non-transitory machine-readable storage medium of claim 8 , wherein the operations further comprise: logging the first access request independently of any logging performed by the third-party application.

11. The non-transitory machine-readable storage medium of claim 8 , wherein the operations further comprise:

receiving a second request from the client device to interact with a second resource at the third-party application, wherein the second request includes data that identifies the user;

enforcing a second set of one or more access rules including one or more identity-based rules and one or more non-identity based rules to determine whether the identified user is permitted to interact with the second resource at the third-party application;

determining, from the enforcing of the second set of one or more access rules, that the identified user is permitted to interact with the second resource; and

transmitting the second request to the third-party application.

12. The non-transitory machine-readable storage medium of claim 11 , wherein enforcing the second set of one or more access rules includes analyzing content of the request.

13. The non-transitory machine-readable storage medium of claim 11 , wherein the operations further comprise:

receiving a response from the third-party application responsive to the second request;

enforcing a third set of one or more access rules including one or more identity-based rules and one or more non-identity based rules to determine whether the response is permitted to be sent to the client device;

determining, from the enforcing of the third set of one or more access rules, that the response is permitted to be transmitted to the client device; and

transmitting the response to the client device.

14. The non-transitory machine-readable storage medium of claim 13 , wherein enforcing the third set of one or more access rules includes analyzing content of the response.

15. An apparatus, comprising:

a processor; and

a non-transitory machine-readable storage medium that provides instructions that, if executed by the processor, will cause an identity proxy and access gateway to perform operations comprising:

receive a first access request from a client device that is requesting access to a resource at a third-party application;

transmit the first access request to the third-party application;

receive a first authentication request from the client device that has been generated by the third-party application, wherein the first authentication request is requesting an authentication of a user that is attempting to access the third-party application, and wherein the identity proxy and access gateway is configured as a first identity provider of the third-party application;

transmit an identity provider selection page to the client device, the identity provider selection page including one or more identity provider options for the user to select for authentication;

receive, from the client device, a selection of one of the one or more identity provider options;

cause the client device to transmit a second authentication request to a second identity provider corresponding to the selected one of the one or more identity provider options;

receive, from the client device, a first authentication response that was generated by the second identity provider that identifies the user has successfully authenticated to the second identity provider;

enforce a first set of one or more access rules including one or more identity-based rules and one or more non-identity based rules to determine whether the identified user is permitted to access the third-party application, wherein the first set of one or more access rules is enforced independently from any rules enforced at the second identity provider;

determine, from the enforcing of the first set of one or more access rules, that the identified user is permitted to access to the third-party application, and responsive to this determination, generate a second authentication response that identifies the user has successfully authenticated; and

cause the client device to transmit the second authentication response to the third-party application.

16. The apparatus of claim 15 , wherein one of the first set of one or more access rules is a rule that specifies that traffic is not allowed to be transmitted to the third-party application unless the traffic is associated with a gateway agent installed on the client device.

17. The apparatus of claim 15 , wherein the operations further comprise: logging the first access request independently of any logging performed by the third-party application.

18. The apparatus of claim 15 , wherein the operations further comprise:

receiving a second request from the client device to interact with a second resource at the third-party application, wherein the second request includes data that identifies the user;

enforcing a second set of one or more access rules including one or more identity-based rules and one or more non-identity based rules to determine whether the identified user is permitted to interact with the second resource at the third-party application;

determining, from the enforcing of the second set of one or more access rules, that the identified user is permitted to interact with the second resource; and

transmitting the second request to the third-party application.

19. The apparatus of claim 18 , wherein enforcing the second set of one or more access rules includes analyzing content of the request.

20. The apparatus of claim 18 , wherein the operations further comprise:

receiving a response from the third-party application responsive to the second request;

enforcing a third set of one or more access rules including one or more identity-based rules and one or more non-identity based rules to determine whether the response is permitted to be sent to the client device;

determining, from the enforcing of the third set of one or more access rules, that the response is permitted to be transmitted to the client device; and

transmitting the response to the client device.

21. The apparatus of claim 20 , wherein enforcing the third set of one or more access rules includes analyzing content of the response.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: ROYAL, JAMES HOWARD; RHEA, SAMUEL DOUGLAS
To: CLOUDFLARE, INC.
Reel/Frame 057779/0262 →
Cited By (5)
US 12,261,833 US 12,452,345 US 12,602,499 US 12,609,994 US 12,645,765