IP Library Granted Patent US 10,789,352
Granted Patent B2
US 10,789,352 · App. 16/165,738 · Granted Sep 29, 2020

Multidevice user authentication in group-based communication systems

Inventors: Faisal Yaqub (San Francisco, CA); Chase Rutherford-Jenkins (San Francisco, CA); Graham Hicks (San Francisco, CA)
Assignee: Slack Technologies, Inc.
G06F21/36G06F21/43H04L9/3213H04L63/0846
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,789,352
App. No.
16/165,738
Granted
Sep 29, 2020
Kind
B2
Abstract

Method, apparatus and computer program product for multi-device user authentication are described herein. For example, the apparatus includes at least one processor and at least one non-transitory memory including program code. The at least one non-transitory memory and the program code are configured to, with the at least one processor, identify, on a first computing device, a first active interface session associated with one or more active authentication conditions each configured to enable access to a group-based communication interface of a group-based communication system; cause a first computing device to present an authentication command interface for the first active interface session; receive an interface session request from a second computing device indicating electronic communication by the second computing device with the authentication command interface; and cause the second computing device to execute limited user authentication routines each configured to enable a respective active authentication condition on the second computing device.

Claims (68)

1. A computer-implemented method for multi-device user authentication for one or more group-based communication interfaces of a group-based communication system, the computer-implemented method comprising:

identifying, on a first computing device, a first active interface session associated with one or more active authentication conditions, wherein each active authentication condition enables access to a respective group-based communication interface of the group-based communication system;

causing the first computing device to present an authentication command interface for the first active interface session, wherein: (i) the authentication command interface is associated with an expiration time, (ii) the authentication command interface is associated with an aggregate authentication token; and (iii) the aggregate authentication token is generated using the expiration time;

receiving an interface session request from a second computing device indicating electronic communication by the second computing device with the authentication command interface and receipt by the second computing device of the aggregate authentication token at a first time;

determining if a relationship between the first time and the expiration time satisfies a temporal condition; and

in response to determining that the relationship between the first time and the expiration time satisfies the temporal condition, causing the second computing device to execute one or more limited user authentication routines, wherein each limited user authentication routine is configured to enable a respective active authentication condition on the second computing device.

2. The computer-implemented method of claim 1 , wherein the authentication command interface is a visual representation of an authentication command.

3. The computer-implemented method of claim 2 , wherein the visual representation is a quick response (QR) code.

4. The computer-implemented method of claim 2 , wherein the authentication command includes a link to an authentication resource.

5. The computer-implemented method of claim 1 , wherein causing the second computing device to execute a respective limited user authentication routine of the one or more limited user authentication routines comprises:

generating, for the respective group-based communication interface associated with a respective active authentication condition configured to be enabled by the respective limited user authentication routine, a respective group of one or more individual authentication tokens collectively configured to enable access to the respective group-based communication interface; and

generating, using the respective group of one or more individual authentication tokens, a second active interface session associated with the respective group-based communication interface, wherein the second active interface session enables access to the respective group-based communication interface.

6. The computer-implemented method of claim 5 , wherein the respective group of one or more individual authentication tokens comprises one or more of a password token and a secondary authentication code token.

7. The computer-implemented method of claim 5 , further comprising:

generating a session identifier associated with the second active interface session; and

transmitting the session identifier to the second computing device.

8. The computer-implemented method of claim 7 , further comprising:

determining if the second computing device is in possession of the session identifier; and

in response to determining that the second computing device is not in possession of the session identifier, terminating the second active interface session by disabling access to the respective group-based communication interface on the second computing device.

9. The computer-implemented method of claim 1 , wherein causing the first computing device to present the authentication command interface for the first active interface session comprises:

generating the aggregate authentication token;

generating, using the aggregate authentication token, an authentication command; and

generating, using the authentication command, the authentication command interface.

10. The computer-implemented method of claim 9 , wherein generating the aggregate authentication token comprises:

identifying one or more token input values, wherein the one or more token input values include the expiration time; and

generating the aggregate authentication token using the one or more token input values.

11. The computer-implemented method of claim 10 , wherein the one or more token input values further include a randomly-generated value.

12. The computer-implemented method of claim 10 , wherein the one or more token input values include a respective value denoting a respective identifier associated with each group-based communication interface associated with a respective active authentication condition of the one or more active conditions.

13. The computer-implemented method of claim 10 , wherein generating the authentication token using the one or more token input values comprises:

generating a hashed value using the one or more token input values; and

generating the authentication token using the hashed value.

14. The computer-implemented method of claim 1 , wherein determining if the relationship between the first time and the expiration time satisfies the temporal condition comprises:

determining if the first time precedes the expiration time;

in response to determining that the first time precedes the expiration time, determining that the relationship between the first time and the expiration time satisfies the temporal condition; and

in response to determining that the first time does not precede the expiration time, determining that the relationship between the first time and the expiration time fails to satisfy the temporal condition.

15. The computer-implemented method of claim 1 , wherein the interface session request identifies the aggregate authentication token and the method further comprises extracting the aggregate authentication token from the interface session request.

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

transmitting a respective communication message to each communication account of one or more communication accounts, wherein: (i) each communication account of the one or more communication accounts is associated with a group of one or more active authentication conditions from the one or more active authentication conditions, and (ii) each respective communication message to a respective communication account identifies each group-based communication interface associated with a respective active authentication condition in the respective group of one or more active authentication conditions.

17. The computer-implemented method of claim 16 , wherein transmitting a respective communication message to a respective communication account of the one or more communication accounts comprises:

identifying, from data associating each communication account of the one or more communication accounts with a group of one or more active authentication conditions from the one or more active authentication conditions, the respective group of one or more active authentication conditions associated with the respective communication account;

identifying, from data associating each active authentication condition with a respective group-based communication interface, a respective group of one or more group-based communication interfaces associated with the respective communication account and associated with the aggregate authentication token;

generating the respective communication message to include an indication of each respective group-based communication interface in the respective group of one or more group-based communication interfaces; and

transmitting the respective communication message to the respective communication account.

18. The computer-implemented method of claim 17 , wherein:

the respective communication message further includes a respective revocation element, wherein the revocation element is configured to cause transmission of a request to revoke access to each group-based communication interface in the respective group of one or more group-based communication interfaces.

19. The computer-implemented method of claim 18 , further comprising:

maintaining mapping data, wherein the mapping data includes data associating the respective revocation element with each group-based communication interface in the respective group of one or more group-based communication interfaces.

20. The computer-implemented method of claim 19 , further comprising:

receiving a session revocation request, the session revocation request indicating an electronic communication with revocation element;

identifying, based on the mapping data and the session revocation request, the respective group of one or more active authentication conditions; and

revoking each active authentication condition in the respective group of one or more active authentication conditions on the second computing device by disabling access by the second computing device to each group-based communication interface in the respective group of one or more group-based communication interfaces.

21. The computer-implemented method of claim 20 , wherein:

a first active authentication condition of the one or more active authentication conditions is associated with a first group of one or more privileges for enabling access by the first computing device to a first group-based communication interface;

the first active authentication condition is associated with a second group of one or more privileges for enabling access by the second computing device to the first group-based communication interface; and

the first group of one or more privileges includes at least one selected privilege not included in the second group of privileges.

22. The computer-implemented method of claim 21 , wherein the at least one selected privilege includes one of a privilege to access a selected group-based communication channel of one or more group-based communication channels in the first group-based communication interface or a privilege to add a new communication account to one or more communication accounts associated with the first group-based communication interface.

23. An apparatus comprising at least one processor and at least one non-transitory memory comprising program code, wherein the at least one non-transitory memory and the program code are configured to, with the at least one processor, cause the apparatus to at least perform a method for multi-device user authentication for one or more group-based communication interfaces of a group-based communication system, the method comprising:

identifying, on a first computing device, a first active interface session associated with one or more active authentication conditions, wherein each active authentication condition enables access to a respective group-based communication interface of the group-based communication system;

causing the first computing device to present an authentication command interface for the first active interface session, wherein: (i) the authentication command interface is associated with an expiration time, (ii) the authentication command interface is associated with an aggregate authentication token; and (iii) the aggregate authentication token is generated using the expiration time;

receiving an interface session request from a second computing device indicating electronic communication by the second computing device with the authentication command interface and receipt by the second computing device of the aggregate authentication token at a first time;

determining if a relationship between the first time and the expiration time satisfies a temporal condition; and

in response to determining that the relationship between the first time and the expiration time satisfies the temporal condition, causing the second computing device to execute one or more limited user authentication routines, wherein each limited user authentication routine is configured to enable a respective active authentication condition on the second computing device.

24. A non-transitory computer storage medium comprising instructions configured to cause one or more processors to at least perform a method for multi-device user authentication for one or more group-based communication interfaces of a group-based communication system, the method comprising:

identifying, on a first computing device, a first active interface session associated with one or more active authentication conditions, wherein each active authentication condition enables access to a respective group-based communication interface of the group-based communication system;

causing the first computing device to present an authentication command interface for the first active interface session, wherein: (i) the authentication command interface is associated with an expiration time, (ii) the authentication command interface is associated with an aggregate authentication token; and (iii) the aggregate authentication token is generated using the expiration time;

receiving an interface session request from a second computing device indicating electronic communication by the second computing device with the authentication command interface and receipt by the second computing device of the aggregate authentication token at a first time;

determining if a relationship between the first time and the expiration time satisfies a temporal condition; and

in response to determining that the relationship between the first time and the expiration time satisfies the temporal condition, causing the second computing device to execute one or more limited user authentication routines, wherein each limited user authentication routine is configured to enable a respective active authentication condition on the second computing device.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2025
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 070001/0469 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NEWLY MERGED ENTITY'S NEW NAME, AND TO REMOVE THE PERIOD PREVIOUSLY RECORDED AT REEL: 057254 FRAME: 0738. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 9, 2021
From: SKYLINE STRATEGIES II LLC; SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057514/0930 →
MERGER AND CHANGE OF NAME Recorded Aug 2, 2021
From: SKYLINE STRATEGIES II LLC; SLACK TECHNOLOGIES, INC.; SLACK TECHNOLOGIES, LLC
To: SLACK TECHNOLOGIES, LLC.
Reel/Frame 057254/0738 →
MERGER Recorded Aug 2, 2021
From: SLACK TECHNOLOGIES, INC.; SKYLINE STRATEGIES I INC.
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 057254/0693 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 49332/0349 Recorded Jul 19, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 057649/0882 →
PATENT SECURITY AGREEMENT Recorded May 30, 2019
From: SLACK TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049332/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2018
From: YAQUB, FAISAL; RUTHERFORD-JENKINS, CHASE; HICKS, GRAHAM
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 047752/0929 →
Continuity (1)
Related Publication 20200125715A1 · Apr 23, 2020