IP Library Granted Patent US 12,166,884
Granted Patent B2
US 12,166,884 · App. 17/621,761 · Granted Dec 10, 2024

System, method, and computer program product for third-party authorization

Inventors: Gurpreet Singh Bhasin (Fremont, CA); Deepak Dhiman (San Ramon, CA); Eric Willard Chamberlain (Mill Creek, WA)
Assignee: Visa International Service Association
H04L9/3213H04L9/006H04L9/0819H04L9/3247
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,166,884
App. No.
17/621,761
Granted
Dec 10, 2024
Kind
B2
Abstract

A method, system, and computer program product is provided for third-party authorization. The method includes generating an authorization code, encrypting the authorization code with a public key associated with a first system, resulting in an encrypted authorization code, transmitting the encrypted authorization code to the first system, receiving, from the first system, a digitally signed authorization code generated by the first system based on the authorization code and a private key corresponding to the public key associated with the first system, verifying the digitally signed authorization code based on the public key and the authorization code, and in response to verifying the digitally signed authorization code, transmitting an access token to the first system, wherein the access token is configured to authorize a user with the first system.

Claims (71)

1. A computer-implemented method, comprising:

receiving a request through a first website associated with a first system, the request initiated by a user through a computing device;

redirecting the computing device of the user from the first website associated with the first system to a second website associated with a second system, the second website configured to receive credentials associated with the user;

receiving, from the second system, a request for an authorization code;

generating, with at least one processor of an authorization system separate from the first system and the second system, the authorization code;

after generating the authorization code, encrypting, with the at least one processor, the authorization code with a public key associated with the first system, resulting in an encrypted authorization code;

transmitting the encrypted authorization code to the first system;

in response to transmitting the encrypted authorization code to the first system, receiving, from the first system, a digitally signed authorization code generated by the first system based on the authorization code and a private key corresponding to the public key associated with the first system;

after receiving the digitally signed authorization code from the first system, verifying, with the at least one processor, the digitally signed authorization code based on the public key and the authorization code; and

in response to verifying the digitally signed authorization code, transmitting an access token to the first system, wherein the access token is configured to authorize the user with the first system.

2. The computer-implemented method of claim 1 , further comprising receiving, from the second system, access grant data comprising a user identifier associated with the user and at least one grant, wherein the authorization code is generated and/or encrypted in response to receiving the access grant data.

3. The computer-implemented method of claim 1 , wherein transmitting the encrypted authorization code to the first system comprises transmitting the encrypted authorization code to the second system, wherein the second system provides the encrypted authorization code to the first system.

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

receiving, from the first system, a digitally signed access token generated by the first system based on the access token and the private key;

verifying, with the at least one processor, the digitally signed access token based on the public key and the access token; and

in response to verifying the digitally signed access token, authorizing the user with the second system.

5. A system comprising an authorization system including at least one processor programmed or configured to:

receive a request through a first website associated with a first system, the request initiated by a user through a computing device;

redirect the computing device of the user from the first website associated with the first system to a second website associated with a second system, the second website configured to receive credentials associated with the user, wherein the first system and the second system are separate from the authorization system;

receive, from the second system, a request for an authorization code;

generate the authorization code;

after generating the authorization code, encrypt the authorization code with a public key associated with the first system, resulting in an encrypted authorization code;

transmit the encrypted authorization code to the first system;

in response to transmitting the encrypted authorization code to the first system, receive, from the first system, a digitally signed authorization code generated by the first system based on the authorization code and a private key corresponding to the public key associated with the first system;

after receiving the digitally signed authorization code from the first system, verify the digitally signed authorization code based on the public key and the authorization code; and

in response to verifying the digitally signed authorization code, transmit an access token to the first system, wherein the access token is configured to authorize the user with the first system.

6. The system of claim 5 , wherein the at least one processor is further programmed or configured to receive, from the second system, access grant data comprising a user identifier associated with the user and at least one grant, wherein the authorization code is generated and/or encrypted in response to receiving the access grant data.

7. The system of claim 5 , wherein transmitting the encrypted authorization code to the first system comprises transmitting the encrypted authorization code to the second system, wherein the second system provides the encrypted authorization code to the first system.

8. The system of claim 5 , wherein the at least one processor is further programmed or configured to:

receive, from the first system, a digitally signed access token generated by the first system based on the access token and the private key;

verify, with the at least one processor, the digitally signed access token based on the public key and the access token; and

in response to verifying the digitally signed access token, authorize the user with the second system.

9. A computer program product comprising at least one non-transitory computer-readable medium including program instructions that, when executed by at least one processor of an authorization system, cause the at least one processor to:

receive a request through a first website associated with a first system, the request initiated by a user ah a computing device;

redirect the computing device of the user from the first website associated with the first system to a second website associated with a second system, the second website configured to receive credentials associated with the user, wherein the first system and the second system are separate from the authorization system;

receive, from the second system, a request for an authorization code;

generate the authorization code;

after generating the authorization code, encrypt the authorization code with a public key associated with the first system, resulting in an encrypted authorization code;

transmit the encrypted authorization code to the first system;

in response to transmitting the encrypted authorization code to the first system, receive, from the first system, a digitally signed authorization code generated by the first system based on the authorization code and a private key corresponding to the public key associated with the first system;

after receiving the digitally signed authorization code from the first system, verify the digitally signed authorization code based on the public key and the authorization code; and

in response to verifying the digitally signed authorization code, transmit an access token to the first system, wherein the access token is configured to authorize the user with the first system.

10. A computer-implemented method, comprising:

redirecting a computing device of a user from a first website to a second website associated with a second system, the second website configured to receive credentials associated with the user;

receiving, with at least one processor of a first system, an encrypted authorization code from an authorization system;

in response to receiving the encrypted authorization code, decrypting, with the at least one processor, the encrypted authorization code based on a private key associated with the first system, resulting in an authorization code;

after decrypting the encrypted authorization code, digitally signing, with the at least one processor, the authorization code based on the private key, resulting in a digitally signed authorization code;

after digitally signing the authorization code, transmitting the digitally signed authorization code to the authorization system; and

receiving, with the at least one processor, an access token from the authorization system, the access token configured to authorize the user with the first system.

11. The computer-implemented method of claim 10 , further comprising:

digitally signing, with at least one processor, the access token based on the private key, resulting in a digitally signed access token; and

transmitting the digitally signed access token to the authorization system.

12. The computer-implemented method of claim 10 , wherein receiving the encrypted authorization code from the authorization system comprises receiving the encrypted authorization code from the second system, wherein the second system receives the encrypted authorization code from the authorization system.

13. A system comprising at least one processor of a first system, the at least one processor programmed or configured to:

redirect a computing device of a user from a first website to a second website associated with a second system, the second website configured to receive credentials associated with the user;

receive an encrypted authorization code from an authorization system;

in response to receiving the encrypted authorization code, decrypt the encrypted authorization code based on a private key associated with the first system, resulting in an authorization code;

after decrypting the encrypted authorization code, digitally sign the authorization code based on the private key, resulting in a digitally signed authorization code;

after digitally signing the authorization code, transmit the digitally signed authorization code to the authorization system; and

receive an access token from the authorization system, the access token configured to authorize the user with the first system.

14. The system of claim 13 , wherein the at least one processor is further programmed or configured to:

receive a request initiated by the user through the first website associated with the first system; and

redirect the computing device of the user from the first website associated with the first system to the second website associated with the second system, wherein the second website is configured to receive credentials associated with the user.

15. The system of claim 13 , wherein receiving the encrypted authorization code from the authorization system comprises receiving the encrypted authorization code from the second system, wherein the second system receives the encrypted authorization code from the authorization system.

16. A computer program product comprising at least one non-transitory computer-readable medium including program instructions that, when executed by at least one processor of a first system, cause the at least one processor to:

redirect a computing device of a user from a first website to a second website associated with a second system, the second website configured to receive credentials associated with the user;

receive an encrypted authorization code from an authorization system;

in response to receiving the encrypted authorization code, decrypt the encrypted authorization code based on a private key associated with the first system, resulting in an authorization code;

after decrypting the encrypted authorization code, digitally sign the authorization code based on the private key, resulting in a digitally signed authorization code;

transmit the digitally signed authorization code to the authorization system; and

receive an access token from the authorization system, the access token configured to authorize the user with the first system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2021
From: BHASIN, GURPREET SINGH; DHIMAN, DEEPAK; CHAMBERLAIN, ERIC WILLARD
To: VISA INTERNATIONAL SERVICE ASSOCIATION
Reel/Frame 058456/0424 →
Continuity (2)
Provisional Application 62870834 · Jul 5, 2019
Related Publication 20220271935A1 · Aug 25, 2022
Cited By (4)
US 12,301,720 US 12,463,812 US 12,531,844 US 12,634,133