IP Library Granted Patent US 12,294,573
Granted Patent B2
US 12,294,573 · App. 17/547,559 · Granted May 6, 2025

Securely preserving prior security tokens for recall

Inventors: Chunlong Liang (Travis, TX); Jose Angel Rodriguez (Austin, TX); James T. Mulvey (Red Hook, NY); Jose I. Ortiz (Raleigh, NC); Xiaoyan Yanni Zhang (Austin, TX)
Assignee: International Business Machines Corporation
H04L63/083G06F9/547H04L9/3213H04L9/3226H04L67/02
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 12,294,573
App. No.
17/547,559
Granted
May 6, 2025
Kind
B2
Abstract

An approach for optimizing security token exchange. The approach receives a first request from a client. The approach extracts a first security token and an API reference. The approach validates the first security token. If the security token is valid, then the approach, calls the API and retrieves a second security token, embeds the second security token in the API and sends a second request with a third security token and the reference to the API to another application in a different domain.

Claims (57)

1. A computer-implemented method for optimizing security token exchange associated with a plurality of domains, the computer-implemented method comprising:

receiving, by one or more processors, at a second service in a second domain, a first request from a client in a first domain;

extracting, by the one or more processors, a second security token, associated with a security service in the second domain, and a reference to a first application programming interface (API) from one or more APIs associated with the first request;

validating, by the one or more processors, the second security token at the second security service, wherein the second security token contains a second bearer header;

responsive to the second security token being valid, executing actions comprising:

retrieving, by the one or more processors, a first security token, associated with the first domain, based on a call to the first API, wherein the first security token contains a first bearer header;

embedding, by the one or more processors, the second security token in a second API; and

sending, by the one or more processors, a second request comprising a third security token and the reference to the second API from one or more APIs to a third service in a third domain;

responsive to the second security token not being valid, sending, by the one or more processors, a reply to the client in the first domain denying the first request;

validating, the third security token from a third request, wherein the third security token is retrievable with a third API from one or more APIs, wherein the third security token contains a third bearer header; and

storing an exchange history associated with, at least, the first security token, the second security token and previous security tokens, wherein a token reference comprises of, a resource identification based on the exchange history or URL (uniform resource locator) associated with the exchange history.

2. The computer-implemented method of claim 1 , wherein the security token is a JavaScript Object Notation (JSON) Web Token (JWT).

3. The computer-implemented method of claim 1 , wherein the one or more APIs is a uniform resource locator (URL) to an API.

4. The computer-implemented method of claim 1 , wherein the retrieving further comprises the exchange history associated with the first security token.

5. The computer-implemented method of claim 1 , wherein the one or more APIs is a resource identifier if a host associated with the one or more APIs is also the host associated with a token issuer.

6. The computer-implemented method of claim 3 , wherein the validating further comprises:

matching, by the one or more processors, an URL associated with a request to an URL embedded in a security token.

7. The computer-implemented method of claim 1 , wherein the call to the one or more APIs further comprises providing credentials that are valid to allow access to the one or more APIs.

8. A computer program product for optimizing security token exchange associated with a plurality of domains, the computer program product comprising:

one or more non-transitory computer readable storage media and program instructions stored on the one or more non-transitory computer readable storage media and executed by one or more processors, the program instructions comprising the steps of:

receiving at a second service in a second domain, a first request from a client in a first domain;

extracting a second security token, associated with a security service in the second domain, and a reference to an application programming interface (API) associated with the first request;

validating the second security token at the second security service, wherein the second security token contains a second bearer header;

responsive to the second security token being valid, executing actions comprising:

retrieving a first security token, associated with the first domain, based on a call to the API, wherein the first security token contains a first bearer header;

embedding the second security token in the API; and

sending a second request comprising a third security token and the reference to the API to a third service in a third domain;

responsive to the second security token not being valid, sending, a reply to the client in the first domain denying the first request;

validating, the third security token from a third request, wherein the third security token is retrievable with a third API from one or more APIs, wherein the third security token contains a third bearer header; and

storing an exchange history associated with, at least, the first security token, the second security token and previous security tokens, wherein a token reference comprises of, a resource identification based on the exchange history or URL (uniform resource locator) associated with the exchange history.

9. The computer program product of claim 8 , wherein the security token is a JavaScript Object Notation (JSON) Web Token (JWT).

10. The computer program product of claim 8 , wherein the one or more APIs is a uniform resource locator (URL) to the one or more APIs.

11. The computer program product of claim 8 , wherein the retrieving further comprises the exchange history associated with the first security token.

12. The computer program product of claim 8 , wherein the one or more APIs is a resource identifier if a host associated with the one or more APIs is also the host associated with a token issuer.

13. The computer program product of claim 10 , wherein the validating further comprises:

matching, by the one or more processors, an URL associated with a request to an URL embedded in a security token.

14. The computer program product of claim 8 , wherein the call to the one or more APIs further comprises providing credentials that are valid to allow access to the one or more APIs.

15. A computer system for optimizing security token exchange associated with a plurality of domains, the computer system comprising:

one or more computer processors;

one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media, the program instructions comprising the steps of:

receiving at a second service in a second domain, a first request from a client in a first domain;

extracting a second security token, associated with a security service in the second domain, and a reference to an application programming interface (API) associated with the first request;

validating the second security token at the second security service, wherein the second security token contains a second bearer header;

responsive to the second security token being valid, executing actions comprising:

retrieving a first security token, associated with the first domain, based on a call to the API, wherein the first security token contains a first bearer header;

embedding the second security token in the API; and

sending a second request comprising a third security token and the reference to the API to a third service in a third domain;

responsive to the second security token not being valid, sending, a reply to the client in the first domain denying the first request;

validating, the third security token from a third request, wherein the third security token is retrievable with a third API from one or more APIs, wherein the third security token contains a third bearer header; and

storing an exchange history associated with, at least, the first security token, the second security token and previous security tokens, wherein a token reference comprises of, a resource identification based on the exchange history or URL (uniform resource locator) associated with the exchange history.

16. The computer system of claim 15 , wherein the security token is a JavaScript Object Notation (JSON) Web Token (JWT).

17. The computer system of claim 15 , wherein the one or more APIs is a uniform resource locator (URL) to one or more APIs or a resource identifier if a host associated with the one or more APIs is also the host associated with a token issuer.

18. The computer system of claim 15 , wherein the retrieving further comprises the exchange history associated with the first security token.

19. The computer system of claim 17 , wherein the validating further comprises:

matching, by the one or more processors, an URL associated with a request to an URL embedded in a security token.

20. The computer system of claim 15 , wherein the call to the one or more APIs further comprises providing credentials that are valid to allow access to the one or more APIs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2021
From: LIANG, CHUNLONG; RODRIGUEZ, JOSE ANGEL; MULVEY, JAMES T.; ORTIZ, JOSE I.; ZHANG, XIAOYAN YANNI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058358/0489 →
Continuity (1)
Related Publication 20230188515A1 · Jun 15, 2023
References Cited (27)
US 9426140B2 · Palmeri · 2016 [cited by applicant]
US 9774581B2 · Leicher · 2017 [cited by applicant]
US 10110584B1 · Schmoyer · 2018 [cited by applicant]
US 10341410B2 · Lander · 2019 [cited by applicant]
US 10878079B2 · Vepa · 2020 [cited by applicant]
US 20050223413A1 · Duggan · 2005 [cited by examiner]
US 20090083652A1 · Krasner · 2009 [cited by examiner]
US 20120323654A1 · Writer · 2012 [cited by applicant]
US 20150026466A1 · Riegel · 2015 [cited by examiner]
US 20160277413A1 · Ajitomi · 2016 [cited by examiner]
US 20160316367A1 · Rose · 2016 [cited by applicant]
US 20170270723A1 · He · 2017 [cited by applicant]
US 20190327223A1 · Kumar · 2019 [cited by applicant]
US 20210135875A1 · Jeffrey · 2021 [cited by examiner]
US 20210367954A1 · Daga · 2021 [cited by examiner]
CN 106230601A · 2016 [cited by applicant]
CN 109639672A · 2019 [cited by applicant]
CN 110225050A · 2019 [cited by applicant]
CN 110933092A · 2020 [cited by applicant]
CN 111277550A · 2020 [cited by applicant]
CN 112260838A · 2021 [cited by applicant]
EP 3311548B1 · 2019 [cited by applicant]
WO 2020252897A1 · 2020 [cited by applicant]
WO 2023103776A1 · 2023 [cited by applicant]
International Search Report and Written Opinion, International Application No. PCT/CN2022/133716, International Filing Date Nov. 23, 2022. [cited by applicant]
Jones et al., “OAuth 2.0 Token Exchange”, Internet Engineering Task Force (IETF), downloaded from the internet on Sep. 7, 2021, 23 pages, <https://datatracker.ietf.org/doc/html/rfc8693>. [cited by applicant]
Mell et al., “The NIST Definition of Cloud Computing”, Recommendations of the National Institute of Standards and Technology, Special Publication 800-145, Sep. 2011, 7 pages. [cited by applicant]