IP Library Granted Patent US 10,809,991
Granted Patent B2
US 10,809,991 · App. 16/264,068 · Granted Oct 20, 2020

Security model for live applications in a cloud collaboration platform

Inventors: Julie Tung (Los Altos, CA); Rajeev Nayak (San Francisco, CA); Kevin Gibbs (San Francisco, CA); Bret Taylor (Lafayette, CA); Yang Su (San Francisco, CA); Nate Botwick (San Francisco, CA); Diana Berlin (San Francisco, CA); Pedram Razavi (San Francisco, CA); Scott Goodfriend (Berkeley, CA); Nikrad Mahdi (San Francisco, CA); Andy Chung (Berkeley, CA); Drew Hamlin (San Francisco, CA); Patrick Linehan (San Francisco, CA); Sophia Westwood (San Francisco, CA); Lindsey Simon (San Francisco, CA); Shrey Banga (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F8/60G06F8/34G06F8/36G06F8/71G06F9/451G06F9/5072G06F9/5077G06F9/54G06F12/0871G06F16/172G06F16/1734G06F16/1774G06F16/252G06F16/901G06F16/93G06F21/31G06F21/53G06F21/563G06F40/166H04L63/10H04L63/20H04L65/4015H04L67/34
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,809,991
App. No.
16/264,068
Granted
Oct 20, 2020
Kind
B2
Abstract

Disclosed herein are system, method, and computer program product embodiments for providing a security model to customizable live applications in a cloud collaboration platform. The security approach may dedicate a frame to each live application, serving the frame from a different domain than a document in which the live application is embedded. This approach ensures that more stringent security requirements may be required of the live application and allows the data presented to the live application to be narrowly tailored. The security model may further leverage sandbox attributes and content-security policies to restrict the behavior of sandboxed and non-sandboxed live applications in accordance with best security practices.

Claims (61)

1. A computer-implemented method, comprising:

instantiating, by one or more processors, a live application that is embedded in a document opened hi a cloud collaboration platform within a frame of the opened document, wherein the live application is associated with a type, and wherein the live application is a customizable software application that performs programmed behaviors within the document;

associating, by the one or more processors, the live application with a subdomain based on the type; and

serving, by the one or more processors, the frame from a different domain than the document, wherein the different domain includes the subdomain, and wherein the cloud collaboration platform exposes a data set to the live application through an application programming interface based on the subdomains.

2. The method of claim 1 , further comprising:

applying, by the one or more processors, a sandbox attribute in the frame, wherein the sandbox attribute limits actions performable by the live application within the frame.

3. The method of claim 1 , further comprising:

applying, by the one or more processors, a content-security policy to the frame, wherein the content-security policy limits content outside of the cloud collaboration platform that the live application can access.

4. The method of claim 1 , further comprising:

employing, by the one or more processors, a bridge application programming interface to facilitate communication between the frame and the document.

5. The method of claim 1 , further comprising:

receiving, by the one or more processors, an input in the live application in the frame;

processing, by the one or more processors, the input to determine auto-complete values; and

rendering, by the one or more processors, a response to the input in the frame including the auto-complete values.

6. The method of claim 1 , further comprising:

sharing, by the one or more processors, account information and document information with the live application; and

restricting, by the one or more processors, access to other data used by the cloud collaboration platform.

7. The method of claim 1 , further comprising:

receiving, by the one or more processors, an exception for an external resource for the live application;

adding, by the one or more processors, the exception to a content-security policy applied to the frame; and

accessing, by the one or more processors, the external resource to retrieve the resource.

8. A system, comprising:

a memory; and

at least one processor coupled to the memory and configured to:

instantiate a live application that is embedded in a document opened in a cloud collaboration platform within a frame of the opened document, wherein the live application is associated with a type, and wherein the live application is a customizable software application that performs programmed behaviors within the document;

associate the live application with a subdomain based on the type; and

serve the frame from a different domain than the document, wherein the different domain includes the subdomain, and wherein the cloud collaboration platform exposes a data set to the live application through an application programming interface based on the subdomain.

9. The system of claim 8 , the at least one processor further configured to:

apply a sandbox attribute in the frame, wherein the sandbox attribute limits actions performable by the live application within the frame.

10. The system of claim 8 , the at least one processor further configured to:

apply a content-security policy to the frame, wherein the content-security policy limits content outside of the cloud collaboration platform that the live application can access.

11. The system of claim 8 , the at least one processor further configured to:

employ a bridge application programming interface to facilitate communication between the frame and the document.

12. The system of claim 8 , the at least one processor further configured to:

receive an input in the live application in the frame;

process the input to determine auto-complete values; and

render a response to the input in the frame including the auto-complete values.

13. The system of claim 8 , the at least one processor further configured to:

share account information and document information with the live application; and

restrict access to other data used by the cloud collaboration platform.

14. The system of claim 8 , the at least one processor further configured to:

receive an exception for an external resource for the live application;

add the exception to a content-security policy applied to the frame; and

access the external resource to retrieve the resource.

15. A non transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising:

instantiating a live application that is embedded in a document opened in a cloud collaboration platform within a frame of the opened document, wherein the live application is associated with a type, and wherein the live application is a customizable software application that performs programmed behaviors within the document;

associating the live application with a subdomain based on the type; and

serving the frame from a different domain than the document, wherein the different domain includes the subdomain, and wherein the cloud collaboration platform exposes a data set to the live application through an application programming interface based on the subdomain.

16. The non-transitory computer-readable device of claim 15 , the operations further comprising:

applying a sandbox attribute in the frame, wherein the sandbox attribute limits actions performable by the live application within the frame.

17. The non-transitory computer-readable device of claim 15 , the operations further comprising:

applying a content-security policy to the frame, wherein the content-security policy limits content outside of the cloud collaboration platform that the live application can access.

18. The non-transitory computer-readable device of claim 15 , the operations further comprising:

employing a bridge application programming interface to facilitate communication between the frame and the document.

19. The non-transitory computer-readable device of claim 15 , the operations further comprising:

receiving an input in the live application in the frame;

processing the input to determine auto-complete values; and

rendering a response to the input in the frame including the auto-complete values.

20. The non-transitory computer-readable device of claim 15 , the operations further comprising:

sharing account information and document information with the live application; and

restricting access to other data used by the cloud collaboration platform.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: TUNG, JULIE; NAYAK, RAJEEV; GIBBS, KEVIN; TAYLOR, BRET; SU, YANG; BOTWICK, NATE; BERLIN, DIANA; RAZAVI, PEDRAM; GOODFRIEND, SCOTT; MAHDI, NIKRAD; CHUNG, ANDY; HAMLIN, DREW; LINEHAN, PATRICK; WESTWOOD, SOPHIA; SIMON, LINDSEY; BANGA, SHREY
To: SALESFORCE.COM, INC.
Reel/Frame 053758/0260 →
Continuity (3)
Provisional Application 62751058 · Oct 26, 2018
Provisional Application 62751074 · Oct 26, 2018
Related Publication 20200133650A1 · Apr 30, 2020
Cited By (1)
US 12,242,834