IP Library Granted Patent US 11,044,236
Granted Patent B2
US 11,044,236 · App. 16/295,090 · Granted Jun 22, 2021

Protecting sensitive information in single sign-on (SSO) to the cloud

Inventor: Leonid Rodniansky (Allston, MA)
Assignee: International Business Machines Corporation
H04L63/0421H04L29/06639H04L63/0815H04L63/0869
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,044,236
App. No.
16/295,090
Granted
Jun 22, 2021
Kind
B2
Abstract

A method to protect sensitive information during a single sign-on (SSO) process flow initiated from a client and directed to an authorization server configured to issue an access token upon verification of a credential. The technique leverages a first proxy that monitors a packet flow issued from the authorization server, and a second proxy that monitors a redirect packet flow issued from the client (in response to the packet flow). A message that includes the access token is modified by the first proxy to include a data string, and the modified message is delivered to the client; concurrently, the first proxy provides the data string/access token pair to the second proxy. When the client receives the modified message, it issues a response (that includes the data string) back to a resource server. As the response traverses the second proxy, it removes the data string and re-inserts the access token, and the resulting modified response is forwarded to the resource server.

Claims (44)

1. A method to protect sensitive information during a single sign-on (SSO) flow initiated from a client and directed to an authorization server, wherein the client executes in an untrusted security environment, comprising:

receiving a message that includes an access token, the access token having been issued by the authorization server upon verification of a credential associated with a client user;

responsive to receiving the message, replacing the access token with a data string to create a modified message, and forwarding the modified message to the client;

saving the data string and the access token;

subsequently receiving from the client a response to the modified message, the response including the data string; and

responsive to receiving the response, identifying the data string as being associated with the access token, replacing the data string with the access token to create a modified response, and forwarding the modified response to a resource server;

wherein the message and the response are processed within a trusted security environment.

2. The method as described in claim 1 wherein the data string is a random string.

3. The method as described in claim 2 wherein the random string has a same size as the access token.

4. The method as described in claim 1 wherein the SSO flow is an OAuth 2.0 access flow.

5. The method as described in claim 1 wherein the data string and the access token are cached in a data store.

6. The method as described in claim 5 wherein the message is received and processed by a first computing entity, and wherein the response is received and processed by a second computing entity distinct from the first computing entity.

7. The method as described in claim 6 wherein each of the first and second computing entities is a reverse proxy, and wherein the data store is associated with the second computing entity.

8. The method as described in claim 1 wherein one of the authorization server and the resource server are located in a cloud computing environment.

9. Apparatus, comprising:

at least one hardware processor;

computer memory holding computer program instructions executed by the at least one hardware processor to protect sensitive information during a single sign-on (SSO) flow initiated from a client and directed to an authorization server, wherein the client executes in an untrusted security environment, the computer program instructions comprising program code configured to:

receive a message that includes an access token, the access token having been issued by the authorization server upon verification of a credential associated with a client user;

responsive to receiving the message, replace the access token with a data string to create a modified message, and forward the modified message to the client;

save the data string and the access token;

subsequently receive from the client a response to the modified message, the response including the data string; and

responsive to receiving the response, identify the data string as being associated with the access token, replace the data string with the access token to create a modified response, and forward the modified response to a resource server;

wherein the message and the response are processed within a trusted security environment.

10. The apparatus as described in claim 9 wherein the data string is a random string.

11. The apparatus as described in claim 10 wherein the random string has a same size as the access token.

12. The apparatus as described in claim 9 wherein the SSO flow is an OAuth 2.0 access flow.

13. The apparatus as described in claim 9 further including program code configured to cache the data string and the access token in a data store.

14. The apparatus as described in claim 13 wherein the program code configured to receive and process by the message comprise a first computing entity, and the program code configured to receive and process the response comprise a second computing entity distinct from the first computing entity.

15. The apparatus as described in claim 14 wherein each of the first and second computing entities is a reverse proxy, and wherein the data store is associated with the second computing entity.

16. The apparatus as described in claim 9 wherein one of the authorization server and the resource server are located in a cloud computing environment.

17. A computer program product comprising a non-transitory computer-readable medium for use in a data processing system, the computer program product holding computer program instructions executed by the data processing system to protect sensitive information during a single sign-on (SSO) flow initiated from a client and directed to an authorization server, wherein the client executes in an untrusted security environment, the computer program instructions comprising program code configured to:

receive a message that includes an access token, the access token having been issued by the authorization server upon verification of a credential associated with a client user;

responsive to receiving the message, replace the access token with a data string to create a modified message, and forward the modified message to the client;

save the data string and the access token;

subsequently receive from the client a response to the modified message, the response including the data string; and

responsive to receiving the response, identify the data string as being associated with the access token, replace the data string with the access token to create a modified response, and forward the modified response to a resource server;

wherein the message and the response are processed within a trusted security environment.

18. The computer program product as described in claim 17 wherein the data string is a random string.

19. The computer program product as described in claim 18 wherein the random string has a same size as the access token.

20. The computer program product as described in claim 17 wherein the SSO flow is an OAuth 2.0 access flow.

21. The computer program product as described in claim 17 further including program code configured to cache the data string and the access token in a data store.

22. The computer program product as described in claim 21 wherein the program code configured to receive and process by the message comprise a first computing entity, and the program code configured to receive and process the response comprise a second computing entity distinct from the first computing entity.

23. The computer program product as described in claim 22 wherein each of the first and second computing entities is a reverse proxy, and wherein the data store is associated with the second computing entity.

24. The computer program product as described in claim 17 wherein one of the authorization server and the resource server are located in a cloud computing environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2019
From: RODNIANSKY, LEONID
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048527/0043 →
Continuity (1)
Related Publication 20200287885A1 · Sep 10, 2020