N/A
In the context of this application, a secure workspace refers to an isolated environment in which one or more applications may be hosted on a computing device. A secure workspace, which may also be referred to as a sandbox, is oftentimes implemented using a virtual machine or a software-based container. An application hosted in a secure workspace will be isolated from resources in the external environment and from other applications or services hosted external to the secure workspace.
When a secure workspace is implemented as a virtual machine, the secure workspace will include its own operating system, one or more applications (or workload to be isolated), and any runtime or library that an application requires. Traditionally, an administrator may use a management solution (e.g., Microsoft Endpoint Configuration Manager or Wyse Management Suite) to deploy a secure workspace to a user computing device. In the case of a virtual machine based secure workspace, this deployment would entail deploying an operating system image within the secure workspace, installing each application within the secure workspace including any necessary runtime or library, and then cleaning up and restarting the virtual machine. Oftentimes, different applications require different operating systems or operating system versions (e.g., Windows 10, Windows 11, Ubuntu, CentOS, etc.). Therefore, the process of deploying virtual machine based secure workspaces can be very tedious and error prone.
The present invention extends to systems, methods and computer program products for smart image preparation for secure workspaces. When an administrator requests deployment of an application to a user computing device, a management service can be configured to interface with an orchestrator service to install the application in a virtual machine on an orchestrator and then create an image of the virtual machine. The image can then be provided to the user computing device for deployment to a secure workspace on the user computing device. In this way, an administrator can deploy a secure workspace having an operating system and an application with a single request.
In some embodiments, the present invention is implemented as a method for smart image preparation for secure workspaces. A management service executing on a management server can receive a request to deploy an application to a user computing device. In response to the request, the application can be provided to an orchestrator service executing on an orchestrator. The orchestrator service can create a virtual machine on the orchestrator. The virtual machine can include an operating system. The application can then be installed in the virtual machine. An image of the virtual machine can then be created. The image can include the operating system and the application. The image can be provided to the user computing device for deployment to a secure workspace on the user computing device.
In some embodiments, the present invention can be implemented as computer storage media storing computer executable instructions which when executed implement a method for smart image preparation for secure workspaces. In response to a request to deploy an application on a user computing device, an orchestrator service executing on an orchestrator can be caused to install the application in a virtual machine. An image of the virtual machine can be created. The image can include an operating system installed on the virtual machine and the application. The image can be provided to the user computing device for deployment to a secure workspace on the user computing device.
In some embodiments, the present invention can be implemented as a system that includes a management server having a management service, an orchestrator having an orchestrator service, and one or more user computing devices. The system can be configured to implement a method for smart image preparation for secure workspaces on the one or more user computing devices. The management service can receive a request to deploy an application to a first user computing device of the one or more user computing devices. The management service can cause the orchestrator service to install the application in a virtual machine on the orchestrator. An image of the virtual machine that includes an operating system and the application can be obtained. The image can be provided to the first user computing device to cause the image to be attached to a secure workspace on the first user computing device.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter.
Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Each user computing device 100 may include a hypervisor which can allow secure workspaces in the form of virtual machines to be deployed on the user computing device. In this context, a virtual machine should include full virtual machines, micro virtual machines, and other hardware-based containers (e.g., a Windows Sandbox). User computing device 100 can also include a host operating system on which a host agent 101 may be run. Host agent 101 may interface with management server 200 to facilitate the functionality described herein.
Management server 200 may oftentimes be cloud based but could represent any configuration of computing components that can support the functionality described herein. For example, management server 200 could be an on-premises server in some embodiments. Management server 200 may host a management service (or services) 201 that is configured to implement smart image preparation for secure workspaces to be deployed on user computing devices 100 in accordance with embodiments of the present invention.
Orchestrator 300 may also oftentimes be cloud based but could represent any configuration of computing components that can support the functionality described herein. Orchestrator 300 may host an orchestrator service 301 that is configured to interface with management service 201 to support the deployment of secure workspaces on orchestrator 300 and the creation and storage of images of such secure workspaces.
Turning to
Turning to
Turning to
Turning to
Turning to
Turning to
Steps 7 and 8 could be repeated for any other user computing device 100 on which Microsoft Teams is to be deployed. For example, if the administrator requests that Microsoft Teams be deployed on user computing device 100-2, management service 201 can retrieve image 320 and send it to host agent 101 on user computing device 100-2 which in turn can deploy image 320 in a secure workspace.
In some embodiments, management service 201 may be configured to obtain an image of the operating system on a user computing device 100 and provide the image of the operating system to orchestrator service 301 for use in creating a virtual machine in which an application can be installed.
In some embodiments, an administrator may desire to create an image containing only an application to be deployed to a user computing device 100.
Turning to
Turning to
In summary, embodiments of the present invention can be implemented to simplify the process of deploying secure workspaces on user computing devices. By merely selecting an application to be installed on a user computing device, the administrator can cause a secure workspace having the appropriate operating system and the application to be deployed on a user computing device.
Embodiments of the present invention may comprise or utilize special purpose or general-purpose computers including computer hardware, such as, for example, one or more processors and system memory. Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system.
Computer-readable media are categorized into two disjoint categories: computer storage media and transmission media. Computer storage media (devices) include RAM, ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM), Flash memory, phase-change memory (“PCM”), other types of memory, other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other similar storage medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Transmission media include signals and carrier waves. Because computer storage media and transmission media are disjoint categories, computer storage media does not include signals or carrier waves.
Computer-executable instructions comprise, for example, instructions and data which, when executed by a processor, cause a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language or P-Code, or even source code.
Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, smart watches, pagers, routers, switches, and the like.
The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices. An example of a distributed system environment is a cloud of networked servers or server resources. Accordingly, the present invention can be hosted in a cloud environment.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description.