An enterprise may use device management server(s) to manage company-owned devices, employee's devices, and/or other devices. These devices may include, for example, Android devices, Apple iPads, Apple iPhones, Windows phones, etc. A device management server may, for example, monitor devices, configure devices, deploy applications (e.g., configured applications), adjust application configurations, and/or perform other operations. Enterprise administrators for enterprise services (e.g., virtual private network (VPN), Wi-Fi Access Point (Wi-Fi AP), enterprise resource planning (ERP), customer relationship management (CRM), firewall services, company directories, etc.), application service vendors, and/or other third party services may want to utilize this functionality to manage their services and/or applications on devices. Currently, third party services typically manually configure applications, which may be cumbersome and/or time consuming.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
Techniques to provide syndication of device and/or application management for third party applications and/or systems are disclosed. In various embodiments, a third party system can populate device information to a management system (e.g., device security state, device's VPN access state, etc.), such as an enterprise mobile device management (MDM) server. In addition, a third party service can utilize a management server integrated enterprise backend service without, for example, having complex integration efforts (e.g., enterprise directory server lookup, enterprise CA for certificate service, etc.). In some cases, a third party may also push content to an app on a device that can display the content (e.g., push a company's price book to a device's app). The techniques disclosed herein may provide an alternative to the typical approach in which MDM service administrators manually manage third party applications and/or systems. Using the approaches disclosed herein, MDM service administrators may not have to synchronize manually changes on third party services. In addition, potential service outages arising from inconsistencies between the device management platform and third party services may be avoided. In various embodiments, a third party certificate authority may manage an MDM and/or device's configuration.
In various embodiments, by providing integration with third party services (e.g., Wi-Fi, VPN, Firewall, back office services, etc.) to a device management server, a third party service can directly manage configuration, applications, and/or other aspects of a device on a device management server. In some embodiments, a third party service may be notified when new devices are ready to receive third party services in a secure way. A device management server may handle authorization of third party services, actual configuration of a device, and/or other aspects of the communication between a third party service and a device.
In various embodiments, a management agent on each managed device 104 is configured to be managed by device management server 102, and device management server 102 is configured to manage each managed device 104 in accordance with applicable policies stored in device management database 108.
Techniques to provide syndication of device and/or application management functionality are disclosed. In the example shown, the infrastructure and trust relationships set up by the enterprise to manage devices 104 using device management server 102 and device management database 108 are extended via syndication to allow third party applications, services, and/or systems to use the same management infrastructure to configure managed devices 104 with respect to configurations, applications, settings, etc. associated with such third party applications, services, and/or systems. In the example shown in
Once configured via communications sent by third party service 110 via API 112 and passed to managed devices 104 by device management server 102, managed devices 104 access the third part service directly via service-related data communications 114.
In various embodiments, the approaches disclosed herein establish (e.g., build) a trusted and/or secure connection between a device management server 102 and third party service(s) 110 (e.g., Wi-Fi, VPN, firewall, ERP, CRM systems, back-office services (e.g., cloud, on-premises, and/or other services)). In certain cases, third party services 110 may be authorized using approaches disclosed herein. In some embodiments, management of third party services 110 may be limited to (e.g., only to) selected devices 104 and/or user groups in a device management server 102. In various embodiments, management of third party services 110 may be limited to (e.g., only to) a group of device management functions (e.g., a group of applications, app configurations, VPN configurations, etc.). In various embodiments, a third party service 110 may be provided the ability to send messages to a device owner using, for example, a device management server's 102 messaging functionality (e.g., push notifications, text messages (e.g., SMS, MMS)) , email, and/or other communications approach. In various embodiments, functionality may be provided to consolidate reporting and/or troubleshooting with third party services 110. These features may be provided by posting usage data to device management server 102. In some embodiments, a device management server 102 may maintain permissions to revoke third party service 110 access, management, and/or other privileges.
In the example shown, a third party service 110 may register (1) (e.g., initially register) its service to a device management server 102 using, for example, an assigned integration identity (e.g., a certificate and key, application programming interface (API) user id and password, and/or authentication token). In some embodiments, during registration (1), a third party service may optionally push a plugin to device management server 102 or otherwise configure the device management server 102 to support the third party service. The plugin may, for example, provide a customized user interface (UI) for the third party services 110, may provide data storage, and/or may provide an integration interface to a third party service 110. In some embodiments, registration can happen from device management server's 102 existing UI by providing information to work with the third party service 110. In some embodiments, a device management server 102 may act as a proxy to an enterprise backend server 106. For example, a third party service 110 in some embodiments may be provided access to an enterprise LDAP or other directory server via device management server 102 associated with the third party service 110.
In various embodiments, a device management server 102 may resolve any conflict resulting from the push plugin and/or other configuration changes. For example, device management server 102 can use pre-defined priority based conflict resolution (e.g., resolve policy conflict between allow camera and disable camera policy based on priorities associated with each policy), merging a policy with more restrictive policy (e.g., passcode length policy can select most complex passcode policy), and/or otherwise resolve conflicts. In certain cases, if integration identity has permission to push configuration, a third party service 110 may directly push the configuration to the device management server 102. In some cases, an IT administrator may configure a third party service's configuration from a device management server 102. In various embodiments, if permissions allow, a third party service 110 can query an enterprise backend (e.g., directory server) 106 to configure the device management server 102.
According to some embodiments, after configuration has been applied to a group of users and/or devices 104 at the request of a third party service 110, the device management server 102 may notify (2) the third party service 110 that the group has been configured and/or may identify the configured devices 104 to the third party service 110. Third party service configuration information may be stored (3) in the device management database 108.
In various embodiments, when a device management server 102 identifies (4) (e.g., registers, initializes, etc.) a new device 104, the device management server 102 may lookup related third party services 110 (e.g., third party services associated with other devices, previously associated with the user of the new device (e.g., on other devices)). In the event dependent information (e.g., certificate, authentication token, etc.) is required, the device management server 102 may query (5) the third party service 110 and/or otherwise acquire the required information. The third party service 110 may provision and/or prepare the service for the new device 104 and may respond (6) to the device management server 102. In certain cases, the device management server 102 may generate final configuration information and push (7) configuration information, applications (e.g., associated with the third party 110), and/or other information to the device 104.
In some embodiments, configured applications and/or devices 104 may connect (8) (e.g., directly connect) to third party services 110. For example, a third party service 110 may configure a device-level VPN using the approaches disclosed herein, and the device 104 may connect to a third party VPN server 110 with configured parameters.
In some embodiments, a third party service 110 may update device information that was acquired while providing the service to the device 104 and/or app installed thereon. For example, a third party service 110 may configure a device-level VPN using the approaches disclosed herein. The device 104 may connect to a third party VPN server 110 with configured parameters. In various embodiments, a third party VPN server 110 may update the device's information (e.g., a device object) on the device management server 102, e.g., via an API call 112, with information indicating the device 104 connected via VPN and/or details of VPN status of the device 104 and/or the connection/session (e.g., identity, session started time, source IP address, etc). For a third party cloud device security service, third party server 110 may be configured to detect abnormal behavior of the device's traffic processing (e.g., accessing botnet/malware control node), and update device's security state, e.g., by calling the device management server 102 via API 112 to indicate a change in security state of device 104. In some embodiments, third party service's device information update can trigger additional device management server actions (e.g., device quarantine, notification messaging, etc.).
Once configured, the device may access the third party service directly. However, in the example shown, the device management server monitors the device for any change in state, e.g., security state, and if a state change the device management server is configured to report to the third party service is detected, the device management server reports the state change to the third party service (306).
In some embodiments, the device management server may determine that a device state has changed. For example, it may be determined that the device is jailbroken, rooted, and/or is otherwise not compliant (e.g., no longer compliant) with a requirement of the enterprise and/or the third party service. The device management server may notify the third party service of the device state change (306).
Likewise, reports from the third party service to the device management server, e.g., reflecting changes in device state detected by the third party service, are monitored (308), and if indicated the security (or other) state of the device at the device management server may be updated based at least in part on such reports from the third party service. In some embodiments, the device management server may request device status from the third party service.
In various embodiments, the third party service may notify the device management server of service changes (e.g., service revoked with respect to a device). In various embodiments, the management server may send messages (e.g., a message that the device is no longer allowed with the third party service) to the device using, for example, a push notification or other messaging channel.
In some embodiments, a third party service may provide messages, configuration changes, and/or app data to managed devices via the device management server. For example, a customer relationship management (CRM) third party service/application may from time to time push an updated price list and/or product catalog to devices associated with a sales force, via the device management server and communication channels managed by the device management server. The data sent to devices may in some embodiments be opaque to the device management server. Security may be assured by providing data that is not transparent to the device management server in a matter that ensures that only an application associated with the third party service has accessed to the file or other data.
The example interface 600 of
In various embodiments, data entered via the user interface 600 shown in
In various embodiments, techniques disclosed herein may be used to extend to third party services via syndication device and/or application management functionality provided by a device management server, such as an MDM server.
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
CROSS REFERENCE TO OTHER APPLICATIONS This application is a continuation of U.S. patent application Ser. No. 14/793,026,entitled SYNDICATING DEVICE AND APPLICATION MANAGEMENT, filed Jul. 7, 2015,which claims priority to U.S. Provisional Patent Application No. 62/021,617, entitled SYNDICATING DEVICE AND APPLICATION MANAGEMENT, filed Jul. 7, 2014, both of which are incorporated herein by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
62021617 | Jul 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14793026 | Jul 2015 | US |
Child | 15620573 | US |