IP Library Granted Patent US 11,025,624
Granted Patent B2
US 11,025,624 · App. 16/735,605 · Granted Jun 1, 2021

Inter-application delegated authentication

Inventors: Jeffrey Seibert, Jr. (San Francisco, CA); Michael Ducker (San Francisco, CA)
Assignee: Twitter, Inc.
H04L63/0884G06F21/44H04L9/0819H04L9/3236H04L63/0807H04L63/0815H04L63/102H04W12/43
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,025,624
App. No.
16/735,605
Filed
Jan 6, 2020
Granted
Jun 1, 2021
Kind
B2
Art Unit
2419
USPC
726/7
Abstract

Disclosed is a system for delegating authentication of an untrusted application executing on a client device. For delegated authentication, an untrusted application relies on a trusted application executing in the same environment for authentication purposes. The delegated authentication process avoids requiring the user of the untrusted application to provide authentication credentials. The disclosed system for delegating authentication enables any trusted application executing in the same computing environment to authenticate the untrusted application.

Claims (100)

1. A system comprising:

one or more computers having one or more processors and one or more computer readable storage media, the one or more computer readable storage media storing instructions that when executed by the one or more processors cause the one or more computers to perform operations comprising:

maintaining one or more device profiles, each device profile corresponding to a respective client device and comprising a device identifier for the client device and at least one application identifier;

receiving a first authentication request from a first application of a first client device, the first authentication request comprising a first application identifier for the first application and a first device identifier for the client device;

determining that the one or more device profiles do not include a device profile comprising the first device identifier; and

in response to determining that the one or more device profiles do not include a device profile comprising the first device identifier:

authenticating the first application, comprising requesting authentication credentials from the first client device, and

adding a new device profile to the one or more device profiles, wherein the device profile comprises the first device identifier and the first application identifier.

2. The system of claim 1 , wherein the operations further comprise:

receiving a second authentication request from a second application of the first client device, the second authentication request comprising a second application identifier for the second application and the first device identifier for the first client device;

determining that the one or more device profiles include the device profile comprising the first device identifier; and

in response to determining that the one or more device profiles include the device profile comprising the first device identifier:

authenticating the second application using the first application identified by the first application identifier in the device profile comprising the first device identifier.

3. The system of claim 2 , wherein the system further comprises an application data store, and wherein the operations further comprise:

providing, through the first application, one or more items of content to the application data store; and

after authenticating the second application, retrieving, through the second application, the one or more items of content from the application data store.

4. The system of claim 2 , wherein authenticating the first application further comprises generating a first access token for the first application, and wherein authenticating the second application comprises:

receiving a verification request from the first application for authenticating the second application; and

transmitting a second access token to the second application, wherein the second access token indicates that the second application is authenticated with the authentication credentials from the client device.

5. The system of claim 2 , wherein the operations further comprise updating the device profile comprising the first device identifier with the second application identifier.

6. The system of claim 5 , wherein the operations further comprise:

receiving a third authentication request from a third application of the client device, the third authentication request comprising a third application identifier for the third application and the device identifier for the client device;

determining that the one or more device profiles include the device profile comprising the device identifier;

in response to determining that the one or more device profiles include the device profile comprising the device identifier, determining that the device profile comprises the first application identifier and the second application identifier; and

in response to determining that the device profile comprises the first application identifier and the second application identifier:

selecting one of the first application identifier and the second application identifier, and

authenticating the third application based on the third application continuing authentication by an application represented by the selected application identifier.

7. The system of claim 6 , wherein selecting one of the first application identifier and the second application identifier comprises selecting an application identifier based on respective application usage histories of the first application and the second application.

8. The system of claim 7 , wherein selecting the application identifier based on the respective application usage histories of the first application and the second application comprises selecting the application identifier based on which of the first application and the second application was used most recently by a user of the client device.

9. The system of claim 1 , wherein the operations further comprise:

receiving a second authentication request from a second application of a second client device, the second authentication request comprising a second application identifier for the second application and a second device identifier for the client device;

determining that the one or more device profiles include a device profile comprising the second device identifier; and

in response to determining that the one or more device profiles include the device profile comprising the second device identifier, authenticating the second application using the second application identified by the second application identifier in the device profile comprising the second device identifier.

10. The system of claim 1 , wherein authenticating the first application further comprises generating an access token and keys for the first application.

11. A method comprising:

maintaining one or more device profiles, each device profile corresponding to a respective client device and comprising a device identifier for the client device and at least one application identifier;

receiving a first authentication request from a first application of a first client device, the first authentication request comprising a first application identifier for the first application and a first device identifier for the client device;

determining that the one or more device profiles do not include a device profile comprising the first device identifier; and

in response to determining that the one or more device profiles do not include a device profile comprising the first device identifier:

authenticating the first application, comprising requesting authentication credentials from the first client device, and

adding a new device profile to the one or more device profiles, wherein the device profile comprises the first device identifier and the first application identifier.

12. The method of claim 11 , wherein the method further comprises:

receiving a second authentication request from a second application of the first client device, the second authentication request comprising a second application identifier for the second application and the first device identifier for the first client device;

determining that the one or more device profiles include the device profile comprising the first device identifier; and

in response to determining that the one or more device profiles include the device profile comprising the first device identifier:

authenticating the second application using the first application identified by the first application identifier in the device profile comprising the first device identifier.

13. The method of claim 12 , wherein the method further comprises:

providing, through the first application, one or more items of content to an application data store; and

after authenticating the second application, retrieving, through the second application, the one or more items of content from the application data store.

14. The method of claim 12 , wherein authenticating the first application further comprises generating a first access token for the first application, and wherein authenticating the second application comprises:

receiving a verification request from the first application for authenticating the second application; and

transmitting a second access token to the second application, wherein the second access token indicates that the second application is authenticated with the authentication credentials from the client device.

15. The method of claim 12 , wherein the method further comprises updating the device profile comprising the first device identifier with the second application identifier.

16. The method of claim 15 , wherein the method further comprises:

receiving a third authentication request from a third application of the client device, the third authentication request comprising a third application identifier for the third application and the device identifier for the client device;

determining that the one or more device profiles include the device profile comprising the device identifier;

in response to determining that the one or more device profiles include the device profile comprising the device identifier, determining that the device profile comprises the first application identifier and the second application identifier; and

in response to determining that the device profile comprises the first application identifier and the second application identifier:

selecting one of the first application identifier and the second application identifier, and

authenticating the third application based on the third application continuing authentication by an application represented by the selected application identifier.

17. The method of claim 16 , wherein selecting one of the first application identifier and the second application identifier comprises selecting an application identifier based on respective application usage histories of the first application and the second application.

18. The method of claim 17 , wherein selecting the application identifier based on the respective application usage histories of the first application and the second application comprises selecting the application identifier based on which of the first application and the second application was used most recently by a user of the client device.

19. The method of claim 11 , wherein the method further comprises:

receiving a second authentication request from a second application of a second client device, the second authentication request comprising a second application identifier for the second application and a second device identifier for the client device;

determining that the one or more device profiles include a device profile comprising the second device identifier; and

in response to determining that the one or more device profiles include the device profile comprising the second device identifier, authenticating the second application using the second application identified by the second application identifier in the device profile comprising the second device identifier.

20. The method of claim 11 , wherein authenticating the first application further comprises generating an access token and keys for the first application.

21. One or more non-transitory computer-readable storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

maintaining one or more device profiles, each device profile corresponding to a respective client device and comprising a device identifier for the client device and at least one application identifier;

receiving a first authentication request from a first application of a first client device, the first authentication request comprising a first application identifier for the first application and a first device identifier for the client device;

determining that the one or more device profiles do not include a device profile comprising the first device identifier; and

in response to determining that the one or more device profiles do not include a device profile comprising the first device identifier:

authenticating the first application, comprising requesting authentication credentials from the first client device, and

adding a new device profile to the one or more device profiles, wherein the device profile comprises the first device identifier and the first application identifier.

22. The computer-readable storage media of claim 21 , wherein the operations further comprise:

receiving a second authentication request from a second application of the first client device, the second authentication request comprising a second application identifier for the second application and the first device identifier for the first client device;

determining that the one or more device profiles include the device profile comprising the first device identifier; and

in response to determining that the one or more device profiles include the device profile comprising the first device identifier:

authenticating the second application using the first application identified by the first application identifier in the device profile comprising the first device identifier.

23. The computer-readable storage media of claim 22 , wherein the operations further comprise:

providing, through the first application, one or more items of content to an application data store; and

after authenticating the second application, retrieving, through the second application, the one or more items of content from the application data store.

24. The computer-readable storage media of claim 22 , wherein authenticating the first application further comprises generating a first access token for the first application, and wherein authenticating the second application comprises:

receiving a verification request from the first application for authenticating the second application; and

transmitting a second access token to the second application, wherein the second access token indicates that the second application is authenticated with the authentication credentials from the client device.

25. The computer-readable storage media of claim 22 , wherein the operations further comprise updating the device profile comprising the first device identifier with the second application identifier.

26. The computer-readable storage media of claim 25 , wherein the operations further comprise:

receiving a third authentication request from a third application of the client device, the third authentication request comprising a third application identifier for the third application and the device identifier for the client device;

determining that the one or more device profiles include the device profile comprising the device identifier;

in response to determining that the one or more device profiles include the device profile comprising the device identifier, determining that the device profile comprises the first application identifier and the second application identifier; and

in response to determining that the device profile comprises the first application identifier and the second application identifier:

selecting one of the first application identifier and the second application identifier, and

authenticating the third application based on the third application continuing authentication by an application represented by the selected application identifier.

27. The computer-readable storage media of claim 26 , wherein selecting one of the first application identifier and the second application identifier comprises selecting an application identifier based on respective application usage histories of the first application and the second application.

28. The computer-readable storage media of claim 27 , wherein selecting the application identifier based on the respective application usage histories of the first application and the second application comprises selecting the application identifier based on which of the first application and the second application was used most recently by a user of the client device.

29. The computer-readable storage media of claim 21 , wherein the operations further comprise:

receiving a second authentication request from a second application of a second client device, the second authentication request comprising a second application identifier for the second application and a second device identifier for the client device;

determining that the one or more device profiles include a device profile comprising the second device identifier; and

in response to determining that the one or more device profiles include the device profile comprising the second device identifier, authenticating the second application using the second application identified by the second application identifier in the device profile comprising the second device identifier.

30. The computer-readable storage media of claim 21 , wherein authenticating the first application further comprises generating an access token and keys for the first application.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2020
From: SEIBERT, JEFFREY, JR.; DUCKER, MICHAEL
To: TWITTER, INC.
Reel/Frame 053665/0906 →
Continuity (7)
Continuation 15889073 · Feb 5, 2018
Continuation 15483989 · Apr 10, 2017
Continuation 14699888 · Apr 29, 2015
Provisional Application 62067309 · Oct 22, 2014
Provisional Application 61986815 · Apr 30, 2014
Provisional Application 61986094 · Apr 29, 2014
Related Publication 20200153829A1 · May 14, 2020