IP Library Granted Patent US 11,689,528
Granted Patent B2
US 11,689,528 · App. 16/569,574 · Granted Jun 27, 2023

Transparently using origin isolation to protect access tokens

Inventor: Jake Feasel (Vancouver, WA)
Assignee: ForgeRock, Inc.
H04L63/0884G06F9/54G06F21/629G06F21/6218H04L67/2876
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,689,528
App. No.
16/569,574
Granted
Jun 27, 2023
Kind
B2
Abstract

The disclosed technology teaches safely attaching an access token to a browser-based request from a first app loaded by a webpage, without exposing the token to malicious code loaded by the webpage, providing an identity proxy that transparently determines which network requests to relay and a secrets management proxy that provides access tokens transparently to the requests. The identity proxy intercepts an access request from the first app to the resource server and relays the request via the secrets management proxy, which forwards the request to the resource server with an access token, receives a response from the resource server and forwards the response to the identity proxy for return to the first app. The secrets management proxy is implemented in an iFrame that has isolated storage subject to a browser-enforced same origin policy that makes the isolated storage used by the iFrame inaccessible to malicious code on the webpage.

Claims (40)

1. A computer-implemented method of safely attaching an access token to a browser-based request to a resource server, made on behalf of a first app loaded by a webpage, without exposing the access token to a malicious app loaded by the webpage with the first app, including:

providing an identity proxy and a secrets management proxy running in an iFrame on the browser that is running the first app, wherein

the identity proxy transparently determines which network requests to relay via the secrets management proxy; and

the secrets management proxy provides access token management services transparently to the request when communicating with the resource server, including providing access tokens with resource requests to the resource server;

the identity proxy intercepting an access request from the first app to the resource server, determining to reroute, and relaying the access request via the secrets management proxy;

the secrets management proxy providing the access token management services on behalf of the request for interaction with the resource server and forwarding the request to the resource server with the access token attached; and

the secrets management proxy receiving a response from the resource server and forwarding the response to the identity proxy for return to the first app, without providing the access token to the first app or the malicious app.

2. The computer-implemented method of claim 1 , further including passing configuration data that includes data for identifying the resource server to the secrets management proxy.

3. The computer-implemented method of claim 1 , wherein obtaining the access tokens by the secrets management proxy further includes requesting and receiving the access tokens from an authorization server.

4. The computer-implemented method of claim 1 , wherein the secrets management proxy is implemented in an iFrame that has isolated storage subject to a browser-enforced same origin policy that makes the isolated storage used by the iFrame inaccessible to malicious code on the webpage but not within the iFrame.

5. The computer-implemented method of claim 4 , further including the secrets management proxy storing the access tokens in the isolated storage used by the iFrame.

6. The computer-implemented method of claim 4 , wherein obtaining the access tokens by the secrets management proxy further includes retrieving the access token from the isolated storage used by the iFrame.

7. The computer-implemented method of claim 4 , wherein the isolated storage used by the iFrame is accessed via one of an IndexedDB API and a local Storage API provided by the browser.

8. The computer-implemented method of claim 4 , wherein the isolated storage used by the iFrame is in dynamic memory.

9. The computer-implemented method of claim 1 , wherein the identity proxy uses one of a service worker API and an XMLHttpRequest object customization.

10. A tangible non-transitory computer readable storage media, including program instructions loaded into memory that, when executed on processors cause the processors to implement a method of safely attaching an access token to a browser-based request to a resource server, made on behalf of a first app loaded by a webpage, without exposing the access token to a malicious app loaded by the webpage with the first app, the method including:

providing an identity proxy and a secrets management proxy running in an iFrame on the browser that is running the first app, wherein

the identity proxy transparently determines which network requests to relay via the secrets management proxy; and

the secrets management proxy provides access token management services transparently to the request when communicating with the resource server, including providing access tokens to requests to the resource server;

the identity proxy intercepting a request from the first app to the resource server, determining to reroute, and relaying the request via the secrets management proxy;

the secrets management proxy providing the access token management services on behalf of the first app for interaction with the resource server and forwarding the request to the resource server with the access token attached; and

the secrets management proxy receiving a response from the resource server and forwarding the response to the identity proxy for return to the first app, without providing the access token to the first app or the malicious app.

11. The tangible non-transitory computer readable storage media of claim 10 , further including passing configuration data that includes data for identifying the resource server to the secrets management proxy.

12. The tangible non-transitory computer readable storage media of claim 10 , wherein obtaining access tokens by the secrets management proxy further includes requesting and receiving the access tokens from an authorization server.

13. The tangible non-transitory computer readable storage media of claim 10 , wherein the secrets management proxy is implemented in an iFrame that has isolated storage subject to a browser-enforced same origin policy that makes the isolated storage used by the iFrame inaccessible to malicious code on the webpage but not within the iFrame.

14. The tangible non-transitory computer readable storage media of claim 13 , further including the secrets management proxy storing the access tokens in the isolated storage used by the iFrame.

15. The tangible non-transitory computer readable storage media of claim 13 , wherein obtaining access tokens by the secrets management proxy further includes retrieving the access token from the isolated storage used by the iFrame.

16. The tangible non-transitory computer readable storage media of claim 13 , wherein the isolated storage used by the iFrame is accessed via one of an IndexedDB API, a local Storage API provided by the browser and dynamic memory.

17. The tangible non-transitory computer readable storage media of claim 10 , wherein the identity proxy uses one of a service worker API and an XMLHttpRequest object customization.

18. A system comprising:

a memory storing program instructions; and

one or more processors coupled to the memory, wherein when the one more processors execute the program instructions, causing the one or more processors to implement a method of safely attaching an access token to a browser-based request to a resource server, made on behalf of a first app loaded by a webpage, without exposing the access token to a malicious app loaded by the webpage with the first app, the method including:

providing an identity proxy and a secrets management proxy running in an iFrame on the browser that is running the first app, wherein

the identity proxy transparently determines which network requests to relay via the secrets management proxy; and

the secrets management proxy provides access token management services transparently to the request when communicating with the resource server, including providing access tokens to requests to the resource server;

the identity proxy intercepting a request from the first app to the resource server, determining to reroute, and relaying the request via the secrets management proxy;

the secrets management proxy providing the access token management services on behalf of the first app for interaction with the resource server and forwarding the request to the resource server with the access token attached; and

the secrets management proxy receiving a response from the resource server and forwarding the response to the identity proxy for return to the first app, without providing the access token to the first app or the malicious app.

19. The system of claim 18 , wherein the program instructions extend the method including passing configuration data that includes data for identifying the resource server to the secrets management proxy.

20. The system of claim 18 , wherein the secrets management proxy is implemented in an iFrame that has isolated storage subject to a browser-enforced same origin policy that makes the isolated storage used by the iFrame inaccessible to malicious code on the webpage but not within the iFrame.

Assignments (5)
RELEASE OF SECURITY INTEREST AT R/F 65335/0890 Recorded Nov 14, 2025
From: BLUE OWL CAPITAL CORPORATION
To: PING IDENTITY CORPORATION (FORMERLY KNOWN AS FORGEROCK INC.)
Reel/Frame 073564/0791 →
SECURITY INTEREST Recorded Nov 13, 2025
From: PING IDENTITY CORPORATION; PING IDENTITY INTERNATIONAL, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 073557/0093 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2024
From: FORGEROCK, INC.
To: PING IDENTITY INTERNATIONAL, INC.
Reel/Frame 066358/0483 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Oct 24, 2023
From: FORGEROCK, INC.
To: BLUE OWL CAPITAL CORPORATION (FORMERLY KNOWN AS OWL ROCK CAPITAL CORPORATION), AS COLLATERAL AGENT
Reel/Frame 065335/0890 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2019
From: FEASEL, JAKE
To: FORGEROCK, INC.
Reel/Frame 050363/0482 →
Continuity (1)
Related Publication 20210084038A1 · Mar 18, 2021