IP Library Granted Patent US 10,887,313
Granted Patent B2
US 10,887,313 · App. 16/526,490 · Granted Jan 5, 2021

Systems and methods for controlling sign-on to web applications

Inventor: Vladimir Mitevski (Rockville, MD)
Assignee: Nasdaq, Inc.
H04L63/10H04L63/0815H04L67/02H04L67/141H04L67/143H04L67/146H04L67/42
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 10,887,313
App. No.
16/526,490
Granted
Jan 5, 2021
Kind
B2
Abstract

The described technology provides a single sign-on capability so that a user who is already signed on to a web application from a client application may not be required to sign-on again when he/she later needs access to the web application from the same or another client application. The technology also provides a multiple login prevention capability to detect multiple sign-on events using the same credentials and disable one or more of the associated multiple sessions.

Claims (74)

1. A system comprising at least one client device, and at least one server device executing a server-side portion of a web application,

the at least one client device including a first processing system having at least one hardware processor, the first processing system being configured to execute a first client application providing a first client-side portion of the web application and a second client application providing a second client-side portion of the web application, wherein the first client application is a browser and the second client application is a native application,

the at least one server including a second processing system having at least one hardware processor, the second processing system being configured to execute the server-side portion of the web application and to perform operations comprising:

in response to a first access request received from the first client application, causing the first client application to perform a sign-on process prior to accessing application data provided by the server-side portion of the web application;

generating, in relation to the performed sign-on process, a first session, wherein the first client application is subsequently provided access to said application data using the first session;

when a second request is received from the second client application, determining, using at least one characteristic of the second request, whether the first session is useable by the second client application to access said application data;

in the event that it is determined that the first session is useable by the second client application to access said application data, providing the second client application with access to the application data using the first session;

in the event that it is determined that the first session is not useable by the second client application to access said application data, causing the second client application to perform a sign-on process prior to accessing the application data, and subsequent to the second client application performing the sign-on process, providing the second client application access to the application data using a second session generated in relation to the sign-on process performed by the second client application;

generating, in relation to a sign-on by an instance of either the first client application or the second client application executing on another client device, a third session, wherein said instance is subsequently provided access to said application data using the second session; and

in response to generating the third session, deactivating the first session.

2. The system according to claim 1 , wherein the at least one characteristic includes an identifier included in the second request.

3. The system according to claim 1 , wherein the determining includes determining whether a value corresponding to the identifier is stored in a memory of the at least one server device in association with at least one of a plurality of session records.

4. The system according to claim 3 , wherein the determining further comprises:

identifying a corresponding previously stored entitlement associated with the web application, wherein the entitlement specifies restrictions on accessing data from a service external to the server device,

wherein the determining is further based upon the identified entitlement.

5. The system according to claim 1 , wherein the first processing system is further configured to:

determine, by the second client application, one or more candidate browser controls for use by the second client application to communicate with the server-side portion of the web application, wherein each of the one or more candidate browser controls is configured to enable the second client application, which is not a browser, to communicate using protocols including HTTP in accordance with a respective browser type;

transmitting by the second client application to the server device, a first instance of the second request, wherein the first instance corresponds to a first selected one of the one or more candidate browser controls; and

based upon a response received to the transmitted first instance of the second request, determining, by the second client application, whether to transmit a second instance of the second request, wherein the second instance corresponds to another one of the one or more candidate browser controls.

6. The system according to claim 5 , wherein (a) when a browser type of the first client application is the same as a browser type of the first selected one of the one or more candidate browser controls, the response received indicates a presence of the first session, and (b) when the browser type of the first client application is different from the browser type of the first selected one of the one or more candidate browser controls, the response received represents a failure to find an existing session usable by the second client application.

7. The system according to claim 6 , the first processing system is further configured to:

when the response received indicates the presence of the first session, and a browser type of a currently selected one of the one or more candidate browser controls is different from a predetermined browser type, obtain a first session identifier that is included in the response;

instantiate a browser control of the predetermined browser type; and

access the application data using the instantiated browser control of the predetermined browser type and using the first session identifier.

8. The system according to claim 7 , wherein the first processing system is further configured to:

after having transmitted one or more instances of the second request, in relation to a response received for an instance of the second request, performing a sign-on by the second client application.

9. The system according to claim 8 , wherein the second processing system is further configured to:

in response to receiving an instance of the second request, determine whether the first session corresponds to a browser type currently associated with the second request;

if the determining determines that the first session corresponds to a browser type currently associated with the second request, returning to the second client application a first session identifier associated with the first session; and

if the determining determines that the first session does not correspond to the browser type currently associated with the second request, returning to the second client application an indication that no session usable by the second client application was found.

10. The system according to claim 1 , wherein the second processing system is further configured to:

based upon the deactivating, preventing access by the first client application and the second client application to the application data.

11. A server device including at least one hardware processor configured to execute a server-side portion of a web application and to perform operations comprising:

in response to a first access request received from a first client application having a first client-side portion of the web application, causing the first client application to perform a sign-on process prior to accessing application data provided by the server-side portion of the web application, wherein the first client application is a browser and the second client application is a native application;

generating, in relation to the performed sign-on process, a first session, wherein the first client application is subsequently provided access to said application data using the first session;

when a second request is received from a second client application having a second client-side portion of the web application, determining, using at least one characteristic of the second request, whether the first session is useable by the second client application to access said application data;

in the event that it is determined that the first session is useable by the second client application to access said application data, providing the second client application with access to the application data using the first session;

in the event that it is determined that the first session is not useable by the second client application to access said application data, causing the second client application to perform a sign-on process prior to accessing the application data, and subsequent to the second client application performing the sign-on process, providing the second client application access to the application data using a second session generated in relation to the sign-on process performed by the second client application;

generating, in relation to a sign-on by an instance of either the first client application or the second client application executing on another client device, a third session, wherein said instance is subsequently provided access to said application data using the third session; and

in response to generating the third session, deactivating the first session.

12. The server device according to claim 11 , wherein the at least one processor is further configured to:

responsive to receiving an instance of the second request, determine whether the first session corresponds to a browser type currently associated with the second request;

if the determining determines that the first session corresponds to a browser type currently associated with the second request, returning to the second client application a first session identifier associated with the first session; and

if the determining determines that the first session does not correspond to the browser type currently associated with the second request, returning to the second client application an indication that no session usable by the second client application was found.

13. The server device according to claim 11 , wherein the at least one processor is further configured to, wherein the determining using at least one characteristic of the second request, includes determining whether a value corresponding to the identifier is stored in a memory of the at least one server device in association with at least one of a plurality of session records.

14. A method performed by a server device including at least one hardware processor, the method comprising:

executing a server-side portion of a web application;

in response to a first access request received from a first client application having a first client-side portion of the web application, causing the first client application to perform a sign-on process prior to accessing application data provided by the server-side portion of the web application, wherein the first client application is a browser and the second client application is a native application;

generating, in relation to the performed sign-on process, a first session, wherein the first client application is subsequently provided access to said application data using the first session;

when a second request is received from a second client application having a second client-side portion of the web application, determining, using at least one characteristic of the second request, whether the first session is useable by the second client application to access said application data;

in the event that it is determined that the first session is useable by the second client application to access said application data, providing the second client application with access to the application data using the first session;

in the event that it is determined that the first session is not useable by the second client application to access said application data, causing the second client application to perform a sign-on process prior to accessing the application data, and subsequent to the second client application performing the sign-on process, providing the second client application access to the application data using a second session generated in relation to the sign-on process performed by the second client application;

generating, in relation to a sign-on by an instance of either the first client application or the second client application executing on another client device, a third session, wherein said instance is subsequently provided access to said application data using the third session; and

in response to generating the third session, deactivating the first session.

15. A non-transitory computer-readable storage medium, having stored thereon program instructions which, when executed by a computer of a server device, causes the server device to perform operations comprising:

executing a server-side portion of a web application;

in response to a first access request received from a first client application having a first client-side portion of the web application, causing the first client application to perform a sign-on process prior to accessing application data provided by the server-side portion of the web application, wherein the first client application is a browser and the second client application is a native application;

generating, in relation to the performed sign-on process, a first session, wherein the first client application is subsequently provided access to said application data using the first session;

when a second request is received from a second client application having a second client-side portion of the web application, determining, using at least one characteristic of the second request, whether the first session is useable by the second client application to access said application data;

in the event that it is determined that the first session is useable by the second client application to access said application data, providing the second client application with access to the application data using the first session;

in the event that it is determined that the first session is not useable by the second client application to access said application data, causing the second client application to perform a sign-on process prior to accessing the application data, and subsequent to the second client application performing the sign-on process, providing the second client application access to the application data using a second session generated in relation to the sign-on process performed by the second client application;

generating, in relation to a sign-on by an instance of either the first client application or the second client application executing on another client device, a third session, wherein said instance is subsequently provided access to said application data using the third session; and

in response to generating the second session, deactivating the first session.

16. A client device including at least one hardware processor configured to execute a first client application which is a browser providing a first client-side portion of a web application and a second client application which is a native application providing a second client-side portion of the web application, and to perform operations comprising:

performing, by the first client application having transmitted a first request to a server-side portion of the web application, a sign-on to the server-side portion of the web application, and subsequent to the performed sign-on accessing application data from the server-side portion of the web application using a first session generated in relation to the performed sign-on;

determining, by the second client application, one or more candidate browser controls for use by the second client application to communicate with the server-side portion of the web application;

transmitting by the second client application to a server device on which the server-side portion of the web application is executed, a first instance of a second request, wherein the first instance corresponds to a first selected one of the one or more candidate browser controls;

based upon a response received to the transmitted first instance of the second request, determining, by the second client application, whether to access application data of the server-side portion of the web application, or to transmit a second instance of the second request, wherein the second instance corresponds to another one of the one or more candidate browser controls, and

cancelling the first session in response to an indication from the server device that it has deactivated the first session,

wherein (a) when a browser type of the first client application is the same as a browser type of the first selected one of the one or more candidate browser controls, the response received indicates a presence of the first session, and (b) when the browser type of the first client application is different from the browser type of the first selected one of the one or more candidate browser controls, the response received represents a failure to find an existing session usable by the second client application.

17. The client according to claim 16 , the at least one hardware processor is further configured to:

when the response received indicates the presence of the first session, and a browser type of a currently selected one of the one or more candidate browser controls is different from a predetermined browser type, obtain a first session identifier that is included in the response;

instantiate a browser control of the predetermined browser type; and

access the application data using the instantiated browser control of the predetermined browser type and using the first session identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2019
From: MITEVSKI, VLADIMIR
To: NASDAQ, INC.
Reel/Frame 049906/0818 →
Continuity (4)
Continuation 15973771 · May 8, 2018
Continuation 15342923 · Nov 3, 2016
Provisional Application 62252295 · Nov 6, 2015
Related Publication 20190356665A1 · Nov 21, 2019
Cited By (56)
US 12,192,026 US 12,200,038 US 12,200,083 US 12,200,084 US 12,218,776 US 12,218,777 US 12,229,210 US 12,231,253 US 12,231,519 US 12,250,089 US 12,250,090 US 12,261,712 US 12,277,187 US 12,277,188 US 12,277,189 US 12,278,878 US 12,278,880 US 12,284,069 US 12,289,383 US 12,294,481 US 12,301,401 US 12,309,123 US 12,309,241 US 12,323,287 US 12,323,500 US 12,323,501 US 12,332,960 US 12,341,860 US 12,355,855 US 12,368,789 US 12,375,582 US 12,411,902 US 12,413,648 US 12,425,492 US 12,438,956 US 12,445,511 US 12,457,273 US 12,483,635 US 12,517,972 US 12,524,490 US 12,524,491 US 12,536,243 US 12,542,764 US 12,549,645 US 12,563,130 US 12,587,429 US 12,587,430 US 12,587,579 US 12,603,809 US 12,652,330 US 12,659,218 US 12,671,750 US 12,706,984 US 12,719,734 US 12,719,735 US 12,719,945