BACKGROUNDElectronic content provided via a network, such as documents or applications, may be used to enhance collaborative projects between multiple users or to provide electronic content to a widespread audience. For example, video content and other multimedia presentations can be used to provide instructions, augment lectures, and otherwise enhance projects involving multiple participants. Controlling access to and distribution of electronic content and other enterprise resources in a networked environment may ensure that only authorized users and network-connected devices may gain access to sensitive information.
Systems and methods are desirable for temporarily controlling independently operated computing devices to provide electronic content to users of the computing devices.
SUMMARYSystems, devices, and methods for controlling resources that are electronically communicated among computing devices are described.
In some embodiments, a management application identifies multiple entities for communicating electronic content. The management application determines that at least a subset of entities required for communicating the electronic content is available for electronic communication. The management application authorizes communication of at least some of the electronic content among the entities in response to determining that the required subset of entities is available for electronic communication.
In some embodiments, a management application prevents unauthorized access to an electronic meeting. The management application identifies multiple entities authorized for electronic communication among one another. The management application detects an additional entity that lacks an authorization for electronic communication among the entities. The management application restricts a communication of at least some electronic content among at least some of the entities based on detecting the additional entity that lacks the authorization.
In some embodiments, a system is provided. The system identifies multiple entities required for authorizing at least one of multiple communication features for communicating electronic content. At least one additional communication feature is available in an absence of at least one of the required entities. The system determines that each required entity is available for electronic communication. The system authorizes performance of the at least one communication feature based on determining that each entity is available for electronic communication.
These illustrative aspects and embodiments are mentioned not for purposes of limitation or definition, but to provide examples to aid understanding of the concepts described and disclosed herein. Other aspects, advantages, and features will become apparent after review of the entire disclosure, including the accompanying figures and claims.
BRIEF DESCRIPTION OF THE DRAWINGSMany aspects of the present disclosure can be better understood with reference to the following diagrams. The drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating certain features of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
FIG. 1 is a block diagram of a networked environment according to some embodiments.
FIG. 2 is a modeling diagram depicting resources accessed by a client application and a management application for authorizing the use of resources by a computing device, according to some embodiments.
FIG. 3 is a modeling diagram depicting an example flow of communications among a management application and multiple computing devices accessing an electronic meeting, according to some embodiments.
FIG. 4 is a modeling diagram depicting an example flow of communications among a management application, multiple computing devices accessing an electronic meeting, and an unauthorized entity or device according to some embodiments.
FIG. 5 is a flow chart illustrating an example method for controlling resources communicated among computing devices according to some embodiments.
FIG. 6 is a flow chart illustrating an example method for restricting access to resources communicated among computing devices based on the presence of an unauthorized entity according to some embodiments.
DETAILED DESCRIPTIONComputer-implemented systems and methods are disclosed for a management application controlling applications, files, and other resources being accessed, executed, and/or otherwise used at computing devices via an electronic meeting and/or other forum for electronic communication.
The following non-limiting example is provided to help introduce the general subject matter of certain embodiments. Multiple individuals may participate in a board meeting for an organization. The board meeting may be scheduled for a given conference room within a building during a given time period. Individuals may participate in the board meeting in person or remotely. Individuals participating in the board meeting may use mobile computing devices, such as tablet computers and/or smart phones, to access board related documents that may be needed for the meeting. The board related documents may be shared to the mobile computing devices via an electronic meeting session. It may be desirable to prevent sharing of the board related documents until a quorum of board members and/or specific members of the board, such as an executive committee, join the meeting, either in person or remotely. A management application can determine the number of the board members and/or the specific board members present in the meeting room and/or accessing the electronic meeting for sharing the board related documents. The management application can determine that a quorum is available and/or the specific members of the board are present based on those members accessing the electronic meeting. The management application can authorize the sharing of the board related documents via the electronic conference based on the quorum being available and/or the specific members of the board being present, thereby ensuring that no less than the required meeting participants are available at a certain time and place to receive the content. The management application can also detect the either the physical presence of unauthorized computing devices and/or attempts to access the electronic meeting by unauthorized users (e.g., non-board members). The management application can restrict sharing of the board related documents via the electronic meeting to prevent the unauthorized computing devices and/or unauthorized users from obtaining the documents via the electronic meeting.
In accordance with some embodiments, a management application can control the use of resources by computing devices via an electronic meeting and/or other forms of electronic communication. The management application can identify multiple entities required for communicating electronic content. An entity can include a logical representation of any participant in a meeting. The management application may identify a given entity based on any suitable criteria. Non-limiting examples of suitable criteria include (but are not limited to) credentials associated with a particular user (such as, but not limited to, a user name and/or other identifier), one or more identifiers associated with a computing device used to access the electronic meeting (such as, but not limited to, a hardware identifier or network address of the computing device), and/or based on a pairing of a user credential and a device identifier. The required entities may be a subset of all entities authorized to access the electronic meeting. In the absence of all of the required entities, communication of electronic content via the electronic meeting may be restricted and/or disallowed. The management application can determine that each required entity is physically present in the meeting room (assuming an in-person meeting is being held) and/or accessing the electronic meeting (either from within the meeting room and/or a remote location). The management application can authorize communication of the electronic content among the required entities and other authorized entities via the electronic meeting based on determining that each required entity is present in the meeting room and/or accessing the electronic meeting. It should be understood that in some cases, the management application can authorize communication of the electronic content among the required entities and other authorized users even if one of the required users is not accessing the electronic meeting, as long as that required user is physically present in the meeting room.
As used herein, the term “electronic meeting” is used to refer to an exchange of information between at least two entities executed via a telecommunication system. An electronic meeting may include at least one entity, such as (but not limited to) moderator entities, that are authorized to perform at least one function during the electronic meeting that are unavailable to other entities accessing the meeting. An electronic meeting may permit the exchange of electronic content, such as documents, multimedia presentations, text messages, and the like. In some embodiments, at least one restriction can be placed on the exchange of electronic content during the meeting. Non-limiting examples of an electronic meeting include telephone conferences, internet telephone conferences, videoconferences, web conferences, and the like.
As used herein, the term “electronic content” is used to refer to any type of resources that can accessed, be rendered for display, and/or otherwise used at a computing system and/or other electronic device. Electronic content can include text and/or multimedia files, such as images, video, audio, and/or any combination thereof. Electronic content can also include application software that is designed to perform at least one specific task at a computing system.
In some embodiments, each entity can correspond to and/or otherwise be associated with a respective computing device. The management application can determine whether each computing device corresponding to a required entity is authorized to access the electronic meeting. Determining that each computing device is authorized to access the electronic meeting can include determining that the computing device is compliant with at least one rule that controls access to the electronic content by computing devices. For example, a rule may require that software such as a mobile device management module and/or up-to-date antivirus software be installed on the computing device as a prerequisite to granting access to resources shared via the electronic meeting.
In some embodiments, determining that each entity is authorized for accessing the electronic meeting may include determining that at least some of the computing devices corresponding to the required entities are positioned in a specific geographical location. For example, the management application may require that wireless devices corresponding to required entities be positioned in a particular conference room of an office building and/or that the wireless devices be positioned within a given proximity to one another and/or a given distance from non-authorized wireless devices. The management application can determine that the computing devices are positioned in a specific geographical location by communicating with a computing device and/or system configured for detecting the computing devices, such as (but not limited to) a sensor system, a global positioning system, a telecommunication system, etc. In some cases, the management application may be able to determine locations of the computing devices by communicating with the computing devices themselves (e.g., but requiring the computing devices to transmit its geospatial coordinates and/or other positioning information to the management application).
In some embodiments, the management application may restrict communication of electronic content based on at least one triggering condition. The triggering conditions may include a required entity leaving a meeting, a computing device corresponding to a required entity leaving a common geographical location, an unauthorized entity accessing and/or attempting to access the electronic meeting, and/or an unauthorized computing device being positioned within a given proximity to one and/or more of the computing devices corresponding to authorized entities. In some embodiments, restricting the communication of electronic content can include restricting the participating entities to communication of a subset of electronic content. For example, an electronic meeting that involves sharing both publicly available documents and secret and/or otherwise sensitive documents may be restricted to sharing only the publicly available documents in the absence of all required entities and/or upon detecting the presence of an unauthorized entity. The presence of an unauthorized entity can include, for example, the unauthorized entity accessing and/or attempting to access the electronic meeting and/or a computing device corresponding to the unauthorized entity being positioned in proximity to computing devices corresponding to authorized entities. In some embodiments, restricting the communication of electronic content can include barring any communication of electronic content in the absence of all required entities and/or the presence of an unauthorized entity.
In some embodiments, the management application may authenticate each entity accessing the electronic meeting based on authentication data provided by a client application executed at a computing device corresponding to the entity. As used herein, the term “authentication data” is used to refer to any data used by an application to verify the identity of an entity and/or approve access to a resource provided via the application. In some embodiments, authentication data can include information provided by the entity. Non-limiting examples of authentication data provided by an entity include a password, a personal identification number, at least one answer to at least one secret question, a token, and the like. In some embodiments, authentication data can include biometric information associated with the entity. Non-limiting examples of biometric information associated with the entity can include the entity's voice, DNA, handprint, iris and/or retinal scan, and the like.
In some embodiments, the management application can authorize communication of the electronic content based on secondary authentication data generated from authentication data provided by each of the required entities. In some embodiments, generating secondary authentication data can include combining the authentication data received from the required entities. For example, the management application may concatenate and/or otherwise join a group of passwords received from the required entities to form a combined password. The combined password may be used to verify that the communication of electronic content during the electronic meeting is authorized. In some embodiments, generating secondary authentication data from authentication data provided by required entities can include generating authentication data that is different from the separate authentication data received from the required entities. For example, the management application may receive a personal identification number from each of the required entities. The management application can perform at least one mathematical operation and/or other algorithms on the received personal identification numbers. The output of the mathematical operation(s) and/or other algorithm can be a new identification number. The new identification number may be used to verify that the electronic content can be communicated during the electronic meeting.
In some embodiments, the management application can authorize communication of electronic content by decrypting the electronic content with an encryption key collectively provided by the required entities. The management application can receive a respective portion of the encryption key from each required entity and/or from a computing device corresponding to the required entity. The management application can combine the portions to obtain the encryption key. The management application can decrypt the electronic content with the encryption key.
In some embodiments, the management application can restrict communication of electronic content via an electronic meeting in response to detecting an unauthorized entity. In some embodiments, detecting the unauthorized entity can include determining that a computing device corresponding to the unauthorized entity (e.g., a user that is not authorized to access the meeting) is positioned in the same geographical location as other computing devices authorized to access the meeting. In some embodiments, the management application can determine that a computing device is not authorized to access the electronic meeting, regardless of whether the operator of the computing device is authorized to access the meeting. For example, the management application can determine that a computing device is not authorized to access the electronic meeting based on the computing device being non-compliant with at least one rule governing access to the electronic content by computing devices.
In some embodiments, the management application can perform at least one remedial action in response to detecting an unauthorized computing device accessing an electronic meeting, attempting to access the electronic meeting, and/or being positioned in the vicinity of other computing devices authorized to access the electronic meeting. In one non-limiting example, the remedial action includes transmitting a software update to the computing device. The software update is configured to bring the computing device into compliance with at least one rule governing access to resources shared via the electronic meeting. In another non-limiting example, the remedial action includes transmitting a command to a client application executing on the computing device. The command directs the client application to erase some or all content and/or applications from the computing device (i.e., perform a partial or total “device wipe”) and/or to disable certain functions of the computing device and/or its applications. In another non-limiting example, the remedial action includes transmitting a command directing the client application to lock the computing device.
In some embodiments, the management application can detect the unauthorized entity based on the unauthorized entity unsuccessfully attempting to access the electronic meeting. In one non-limiting example, the management application can determine that authentication data provided by the entity is invalid. The management application may execute at least one remedial action in response to a threshold number of failed attempts by an entity to access the meeting using invalid authentication data. In another non-limiting example, the management application can determine that the entity is not included on a listing of the entities authorized to access the electronic meeting. In another non-limiting example, the management application can determine that a request from the entity to access the electronic meeting has a timestamp outside a designated time period for the electronic meeting.
The foregoing illustrative examples are given to introduce the general subject matter discussed herein and are not intended to limit the scope of the disclosed concepts. The following sections describe various additional aspects and examples with reference to the drawings in which like numerals indicate like elements. The features discussed herein are not limited to any particular hardware architecture and/or configuration. A computing device can include any suitable arrangement of components that provide a result conditioned on at least one input. Suitable computing devices include multipurpose microprocessor-based computer systems accessing stored software that programs and/or configures the computing system from a general-purpose computing apparatus to a specialized computing apparatus implementing one or more aspects of the present subject matter. Any suitable programming, scripting, and/or other type of language and/or combinations of languages may be used to implement the teachings contained herein in software to be used in programming and/or configuring a computing device. Aspects and features from each embodiment disclosed can be combined with any other embodiment.
Example System ImplementationReferring now to the drawings,FIG. 1 is a block diagram depicting example computing systems for implementing certain embodiments. The example computing systems include aserver system102 and at least oneexample computing device104 in communication via anetwork106. A general discussion of the components of theserver system102 and thecomputing device104 is provided below.
Theserver system102 may include at least one server computer and/or any other system providing capabilities for managing access to resources and/or distributing resources to computing device(s)104. In some embodiments,multiple server systems102 may be employed that are configured in at least one server bank, computer banks, and/or other arrangements. For example,multiple server systems102 may be configured to provide a cloud computing resource, a grid computing resource, and/or any other distributed computing arrangement.Such server systems102 may be located in a single installation or may be distributed among many different geographic locations. For purposes of convenience, theserver system102 is referred to herein in the singular. Even though theserver system102 is referred to in the singular, it is understood thatmultiple server systems102 may be employed in the arrangements as descried herein.
Thecomputing device104 can include any suitable computing device and/or system for communicating via thenetwork106 and executing at least one application. Non-limiting examples of acomputing device104 include a desktop computer, a laptop computer, a personal digital assistant, a cellular telephone, a set-top box, a music player, a web pad, a tablet computer system, a game console, and/or another device with like capability. Thecomputing device104 may be configured to execute various applications. For example, thecomputing device104 may be configured to execute applications such as web browsing applications, email applications, instant messaging applications, and/or other applications capable of receiving and/orrendering resources202 on a display136 associated with thecomputing device104.
Theserver system102 includes aprocessor108 and thecomputing device104 includes aprocessor118. Each of theprocessors108,118 may be a microprocessor, an application-specific integrated circuit (“ASIC”), a state machine, and/or other suitable processing device. Theprocessors108,118 may be of electrical and/or of some other available construction. Each of theprocessors108,118 can include any number of computer processing devices, including one. Each of theprocessors108,118 can be communicatively coupled to a computer-readable medium, such as thememories110,120, respectively. Each of theprocessors108,118 can execute computer-executable program instructions and/or accesses information respectively stored in thememory110 of theserver system102 and in thememory120 of thecomputing device104.
Each of thememories110,120 can include a computer-readable medium and/or other memory device. A computer-readable medium and/or other memory device can include both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components include memory components that retain data upon a loss of power. A computer-readable medium may include (but is not limited to) an electronic, optical, magnetic, and/or other storage device capable of providing a processor with computer-readable instructions. Other examples comprise, but are not limited to, floppy disks accessed via an associated floppy disk drive, magnetic disk, magnetic tape and/or other magnetic storage, memory chip, read-only memory (“ROM”), random access memory (“RAM”), an ASIC, a configured processor, optical storage accessed via an optical medium drive, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, and/or a combination of any two or more of these memory components. RAM may include, for example, static random access memory (“SRAM”), dynamic random access memory (“DRAM”), or magnetic random access memory (“MRAM”) and other such devices. ROM may comprise, for example, a programmable read-only memory (“PROM”), an erasable programmable read-only memory (“EPROM”), an electrically erasable programmable read-only memory (“EEPROM”), or other like memory device.
Theprocessor108 and thememory110 of theserver system102 may be communicatively coupled to alocal interface112. Theprocessor118 and thememory120 of thecomputing device104 may be communicatively coupled to alocal interface122. A local interface can include, for example, a data bus with an accompanying address/control bus or other bus structure. One or more of theprocessors108,118 may represent multiple processing devices and one or more of thememories110,120 may represent multiple memory devices that operate in parallel processing circuits, respectively. In such a case, one or more of thelocal interfaces112,122 may include an appropriate network that facilitates communication between any two of the multiple processors and/or between any two of the multiple memory devices. Thelocal interfaces112,122 may comprise additional systems designed to coordinate this communication, including, for example, performing load balancing.
Thecomputing device104 may also include a number of external and/or internal devices such as a mouse, a keyboard, a display, audio speakers, one or more microphones, and/or any other input and/oroutput devices130. For example, thecomputing device104 may include and/or be in data communication with adisplay device128. A non-limiting example of adisplay device128 is a computer monitor or computer screen, such as a touch screen. AlthoughFIG. 1 depicts thedisplay device128 as a separate device coupled to thecomputing device104, thedisplay device128 can be integrated into thecomputing device104.
Thecomputing device104 can also include at least one communication component (not shown inFIG. 1). One of the communication components can include a wired network connectivity component such as, for example, an Ethernet network adapter, a modem, and/or the like. Thecomputing device104 may further include a wireless network connectivity interface, for example, a Peripheral Component Interconnect (“PCI”) card, a Universal Serial Bus (“USB”) interface, a Personal Computer Memory Card International Association (“PCMCIA”) card, Secure Digital Input-Output (“SDIO”) card, NewCard, Cardbus, a modem, a wireless radio transceiver, and/or the like. Thecomputing device104 may be operable to communicate via wired connection with theserver system102 with the aid of the wired network connectivity component. Thecomputing device104 may be further operable to communicate wirelessly with theserver system102 with the aid of the wireless network connectivity component.
Instructions stored in thememory110 of theserver system102 and executable by itsprocessor108 can include amanagement application114 and/or other applications. Themanagement application114 can include at least one function for controlling resources executed at computing devices such ascomputing device104, as described in detail below. Certain data may be stored in adata store116 of thememory110 that is part of and/or otherwise accessible to theserver system102. The illustrateddata store116 may be representative of a multiple data stores, as can be appreciated. The data stored in thedata store116, for example, is associated with the operation of certain applications and/or functional entities described herein. Thedata store116 may utilize strong encryption standards to protect theresources202 from unauthorized access. For example, thedata store116 may utilize Standard Hash Algorithm (“SHA-1”) and/or a similar strong encryption standard that may be utilized for server-side data storage.
Instructions stored in thememory120 of thecomputing device104 and executable by itsprocessor118 can include aclient application124 and/or other applications. An application capable of receiving and/or rendering resources on adisplay device128 is generally referred to herein as a “client application”124. Certain data may be stored in adata store126 of thememory120 that is part of and/or otherwise accessible to thecomputing device104. The illustrateddata store126 may be representative of multiple data stores. The data stored in thedata store126 may be associated with the operation of certain applications and/or functional entities described herein.
As used herein, the term “computer-executable program instructions” is used to refer to a program file that is in a form that can ultimately be run by a processor. Examples of computer-executable program instructions may be, for example, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of a memory and executed by a processor, source code that may be expressed in proper format such as object code that can be loaded into a random access portion of a memory and executed by a processor, source code that may be interpreted by another executable program to generate instructions in a random access portion of a memory and executed by a processor, and the like. The instructions may comprise processor-specific instructions generated by a compiler and/or an interpreter from code written in any suitable computer-programming language, including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript. An executable program may be stored in any portion and/or component of a memory device such as, for example, RAM, ROM, a hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (“CD”) and/or digital versatile disc (“DVD”), floppy disk, magnetic tape, and/or other memory components.
Thenetwork106 facilitates communication between aserver system102 and at least onecomputing device104. Thenetwork106 can include any suitable architecture for providing communication channels between thecomputing device104 and theserver system102. A communication channel can include any suitable means capable of communicating signals between thecomputing device104 and aserver system102. Non-limiting examples of thenetwork106 include any type of wired network, wireless network, and/or a combination of wired and wireless networks. A wireless network may be a wireless local area network (“WLAN”), a wireless wide area network (“WWAN”), and/or any other type of wireless network now known and/or later developed. Additionally, thenetwork106 may be and/or include the Internet, intranets, extranets, microwave networks, satellite communications, cellular systems, personal communication services (“PCS”), infrared communications, global area networks, and/or other suitable networks, etc., and/or any combination of two or more such networks.
FIG. 2 is a modeling diagram depicting resources accessed by theclient application124 and/or themanagement application114 for authorizing the use ofresources202 by thecomputing device104, according to some embodiments.
Theclient application124 can include any software configured for communicating with themanagement application114 and/or remotely managing thecomputing device104. Theclient application124 may access information from its associateddata store126 such as adevice profile212, at least one of thecredentials214, adevice identifier216, and other data. In some embodiments, thedevice profile212 may include hardware, software, and security attributes that describe and/or otherwise identify thecomputing device104. For instance, thedevice profile212 may represent hardware specifications of thecomputing device104, version and configuration information of various software programs and hardware components installed on thecomputing device104, transport protocols enabled on thecomputing device104, version and usage information of various other resources stored on thecomputing device104, and/or any other attributes associated with the state of thecomputing device104. Additionally, thedevice profile212 may include data indicating a date of a last virus scan of thecomputing device104, a date of a last access by an administrator entity, a date of a last access by theserver system102, a date of a last service by an administrator entity, and/or any other data indicating a date of last maintenance.
Thecredentials214 may uniquely identify the user and/or other entity authorized to operate thecomputing device104. For example, thecredentials214 may include a username, a password, and/or biometric data related to facial recognition, retina recognition, fingerprint recognition, and the like.
Thedevice identifier216 may uniquely identify thecomputing device104. Thedevice identifier216 may include a software identifier, a hardware identifier, and/or a combination of software and hardware identifiers. For example, thedevice identifier216 may be a unique hardware identifier such as a Globally Unique Identifier (“GUID”), Universally Unique Identifier (“UUID”), Unique Device Identifier (“UDID”), serial number, Internationally Mobile Equipment Identity (“IMEI”), Wi-Fi Media Access Control (“MAC”) address, Bluetooth MAC address, a processing device identifier, and/or the like, and/or any combination of two or more such hardware identifiers. Thedevice identifier216 may additionally or alternatively be represented by a unique software identifier such a token and/or certificate, based at least in part on the aforementioned unique hardware identifiers.
Theclient application124 may be executed to transmit requests to accessresources202 stored at and/or accessible via theserver system102. In some embodiments, theclient application124 may be a secure container program that may be authorized to receive and render selectedresources202, as described herein. In some embodiments, theclient application124 may be a plug-in and/or additional software module for a browser and/or other application configured to be executed as described herein.
Theclient application124 and/or another application on acomputing device104 managed by theclient application124 may access theresources202 via agraphical interface210 or other suitable interface rendered on thedisplay device128. Theresources202 may be presented in agraphical interface210 by decompressing compressed files and presenting the uncompressed files, by mounting disk image files and presenting the mounted image files, by running executable files and presenting the executed files, by enabling a data search of theresources202 and presenting the featured output in a user interface, by calling on another application on thecomputing device104 to respond to data links contained within theresources202, and/or by transmitting a part and/or the whole of theresources202 to another application on thecomputing device104.
In some embodiments, aclient application124 may be executed to present asingle resource202. In some embodiments, aclient application124 may be executed to present a series ofresources202 in a comprehensive manner. A non-limiting example of presenting a series ofresources202 in a comprehensive manner is presenting photograph files in a slideshow presentation. In some embodiments, theclient application124 may be executed to render an environment that presentsmultiple resources202 in a single view, such as a category-based tree and/or outline format, based at least in part on a resource qualifier associated with theresources202.
Theclient application124 may also facilitate the modification ofresources202 provided by themanagement application114 and the modification of data associated with the providedresources202, if thecomputing device104 and/or its user are authorized to perform such actions. For example, theclient application124 may include functionality for adding content to the existingresources202, removing content from the existingresources202, altering the content of existingresources202, and/or the like, and/or any combination of manipulations of theresources202.
Theclient application124 may further be executed to addnew resources202 to be hosted by theserver system102, if authorized. For example, a user having administrator-level credentials214 may interact with an I/O device130 to manipulate thegraphical interface210 and thereby generate instructions to transfer copies ofresources202 locally stored on thecomputing device104 to theserver system102 to be included in thedata store116. In some embodiments, the user of thecomputing device104 may initiate upload of at least one of theresources202 via thegraphical interface210 rendered by theclient application124, as can be appreciated. In addition, the user may indicate approved resource-grouping identifiers206 for identifying groups of entities and/or devices that are permitted to access the uploadedresource202 and specifyrules207 that may require compliance by a requesting entity in order to grant access to the uploadedresource202 by the requesting entity, as will be described. In some embodiments, a user without administrator-level credentials214 may manipulate thegraphical interface210 to transfer local copies ofpersonal resources202 to theserver system102. In this example, resources qualifiers associated with thepersonal resources202 may be configured by default to restrict access by any other user.
A management function of theclient application124 can include optionally restricting access to theresources202 by other applications executed by thecomputing device104, thereby preventing access to theresources202 from an application other than theclient application124. In some embodiments, theclient application124 may monitor network traffic between thecomputing device104 and theserver system102. Theclient application124 may identify from the network traffic any data being transmitted between an application executed by thecomputing device104 other than theclient application124 and theserver system102. Theclient application124 may determine whether aresource202 is being provided to an application other than theclient application124 executed by thecomputing device104. Theclient application124 may intercept and/or block theincoming resource202. In some embodiments, theclient application124 may allow the interceptedresource202 to be accessible to the user via agraphical interface210 rendered by theclient application124. In some embodiments, theclient application124 may deny access to the interceptedresource202 by any other application on thecomputing device104. Additionally, theclient application124 may be executed to call on other services associated with theresources202 that are executed on theserver system102 and/or another server and/or device accessible to theclient application124, for instance, a technical support service that may be executed on theserver system102.
Certain applications and/or other functionality may be executed in theserver system102 according to some embodiments. The components executed on theserver system102, for example, include themanagement application114 and other applications, services, processes, systems, engines, and/or functionality not disclosed in detail herein. Themanagement application114 is executed to provideresources202 stored in thedata store116 and/or provide access to resources accessible by theserver system102. In addition, themanagement application114 may also acceptnew resources202 provided by the user of thecomputing device104, and previously providedresources202 modified by the user of thecomputing device104, as will be described. Themanagement application114 can also be executed to communicate at least one command to theclient application124 for managing thecomputing device104.
Thedata store116 may includeresources202, resource-grouping identifiers203, and/or other data. The resource-grouping identifiers203 may represent unique identifiers for previously determined resource groupings and are used to determine whichresources202 are served up to the user of thecomputing device104, as will be described. For example, a resource grouping may relate to organizational groups, organizational roles, geographic locations, and/or any other type(s) of grouping(s) that require access to a type of resource. Eachresource grouping identifier203 may be associated with a pairing of at least one of multiple approved credentials204 and at least one of multiple approved device identifiers205. In some embodiments, each combination of approved credentials204 and approved device identifiers205 may be associated with more than one of the resource-grouping identifiers203. Additionally, the pairing of approved credentials204 and approved device identifiers205 may be associated with a user's organizational role and/or capacity. For instance, the pairing of approved credentials204 and the approved device identifiers205 may be predetermined by a technical services administrator and/or other administrative entity. In some embodiments, the pairing of approved credentials204 and the approved device identifiers205 may be automatically associated with the resource-grouping identifiers203 based at least upon a user's pay grade, organizational level, status within the organization, and/or any other organizational factor.
Eachresource202 may be associated with a listing of approved resource-grouping identifiers206 and at least one of therules207. In some embodiments, the listing of approved resource-grouping identifiers206 includes at least some of the resource-grouping identifiers203 that regulate access to therespective resource202. In some embodiments, the listing of approved resource-grouping identifiers206 may be predetermined by an administrator entity. For instance, the administrator entity may specify which of the resource-grouping identifiers203 are permitted access to a respective at least one of theresources202. Additionally or alternatively, rules207 may regulate how an entity having a combination of theappropriate credentials214 anddevice identifier216 may access therespective resource202. For example, in some embodiments, therules207 may describe a required and/or a permitted state that an accessingcomputing device104 may satisfy in order for thecomputing device104 to be permitted access to theresource202. Non-limiting examples ofrules207 may include (but are not) limited to hardware requirements, software requirements, configuration requirements, maintenance requirements of a computing device, and/or requirements related to theresource202.
In some embodiments, hardware requirements may include requirements associated with a processor of thecomputing device104, memory, power supply, external storage, peripherals, and/or the like. Software requirements may include requirements associated with the operating system type and version, operating system authenticity and jailbreak/rooted status, installed application types and versions, and/or the like. Configuration requirements may include requirements associated with the configuration of the hardware, software, data encryption methods, transport protocols, and/or the like. Maintenance requirements may include requirements associated with the date of last virus scan for thecomputing device104, the date of the last access of thecomputing device104 by an administrative entity, the date of last communication between thecomputing device104 and theserver system102, the date of last tune-up of thecomputing device104, and/or the like. Requirements related to theresource202 may include whether theresources202 may be rendered while thecomputing device104 is offline and/or not in communication with themanagement application114, whether to permit synchronization of theresources202 with a remote data store, whether to restrict theresources202 from being forwarded, whether to permit storingresources202 locally on thecomputing device104, and/or the like. Alternatively, theresources202 andrules207 may be stored on another data store accessible to thecomputing device104 and/or other storage facility in data communication with theserver system102, such as an internal email server, a web-based email server, an internal file server, a third-party hosted file server, a cloud-based server, and/or a cached local data store on thecomputing device104.
Eachresource202 may be associated with at least one of theresource qualifiers208. In some embodiments, aresource qualifier208 may be and/or include metadata that describes and/or regulates the use of a respective at least one of theresources202. For example, aresource qualifier208 may include categories/sub-categories to which at least one of theresources202 belong, an indication that at least one of theresources202 are considered favorites, an indication of whether at least one of theresources202 are privately owned, publicly owned, and/or enterprise-owned, an indication of whether at least one of theresources202 are confidential, an indication of whether at least one of theresources202 are password protected, an indication of the historical version of at least one of theresources202, a description of at least one of theresources202, at least one comment regarding at least one of theresources202, an indication of the size and format of at least one of theresources202, an indication of the download priority associated with at least one of theresources202, an indication of the expiration date associated with at least one of theresources202, an indication of the effective date associated with at least one of theresources202, an indication of the ownership of at least one of theresources202, an indication of the managing party of at least one of theresources202, and/or the like, and/or any combination of resource qualifiers.
A user and/or other entity operating acomputing device104 may wish to accessresources202 stored on theserver system102. In some embodiments, the user may manipulate agraphical interface210 rendered by theclient application124 to transmit arequest218 for accessing at least one of theresources202 on theserver system102. For instance, the user may providecredentials214, such as, a unique user name, a password, biometric data, and/or other types ofcredentials214 to request access to theserver system102. Theclient application124 may transmit therequest218 to themanagement application114. In some embodiments, therequest218 may include thecredentials214 provided by the user, thedevice identifier216 that uniquely identifies thecomputing device104, and/or any other relevant information.
Themanagement application114 and/or another service provided by theserver system102 receives therequest218 and determines whether the user is authorized to access theresources202 from thecomputing device104. For example, themanagement application114 may determine that the user is authorized to access theresources202 from thecomputing device104 based on thecredentials214 and thedevice identifier216 provided with therequest218.
Upon determining that the user is authorized to access theresources202 from thecomputing device104, theserver system102 determines which of theresources202 to provide to thecomputing device104. In some embodiments, themanagement application114 determines whichresources202 to provide based on resource-grouping identifiers203 associated with eachresource202. For instance, themanagement application114 may determine which resource-grouping identifiers203 are associated with the pairing ofcredentials214 and thedevice identifier216 included in therequest218. In some embodiments, themanagement application114 parses the listing of approved credentials204 and the listing of approved device identifiers205 of each resource grouping identifier to determine whether the respective resource grouping identifier is associated with both thecredentials214 and thedevice identifier216. Themanagement application114 may identify aresource202 to provide to thecomputing device104 based on the determined resource-grouping identifiers203. In some embodiments, themanagement application114 identifies at least one of theresources202 associated with each one of the determined resource-grouping identifiers203. In some embodiments, themanagement application114 identifies aresource202 that is associated with the determined resource-grouping identifiers203. Additionally, in some embodiments, themanagement application114 identifies theresource202 if it is associated with a threshold number of the resource-grouping identifiers203. Themanagement application114 may provide the identifiedresources202 to the user of thecomputing device104.
In some embodiments, themanagement application114 may additionally determine whether thecomputing device104 from which the user requested access to theresources202 complies with therules207 associated with each one of the identifiedresources202. For example, themanagement application114 may determine whether thedevice profile212 describing the state of thecomputing device104 complies with therules207 of each identifiedresource202. As discussed above, thedevice profile212 may include hardware specifications of thecomputing device104, software specifications of thecomputing device104, version information of various other components of thecomputing device104, and/or any other information profiling thecomputing device104. In some embodiments, themanagement application114 may provide each identifiedresource202 to the user if thecomputing device104 complies with all of, or at least a portion of, therules207 associated with each of the identifiedresources202. Additionally, in some embodiments, themanagement application114 may provide the identified resource(s)165 to the user if thecomputing device104 complies with at least a threshold number of therules207 associated with each of the identifiedresources202.
Responsive to a determination that thecomputing device104 is in a state of compliance with therules207, themanagement application114 may be further executed to transmit the identifiedresources202 to thecomputing device104. In some embodiments, themanagement application114 may automatically transmit the identifiedresources202 to thecomputing device104. In some embodiments, themanagement application114 may make the identifiedresources202 available for download by thecomputing device104 based on a resource qualifier associated with therespective resource202. For instance, the resource qualifier may indicate therespective resource202 be made available for download to thecomputing device104. In this example, the user may transmit a request to themanagement application114 to download therespective resource202.
In some embodiments, the state of thecomputing device104 may have been modified between the time themanagement application114 makes the identifiedresource202 available for download and the time themanagement application114 receives the request to download the identifiedresource202. For example, thecomputing device104 may have switched connectivity from asecured network106 to anunsecured network106. In this embodiment, themanagement application114 may determine for a second time whether thecomputing device104 complies with therules207. For example, the request to download transmitted from thecomputing device104 may include an updateddevice profile212. Themanagement application114 may make the second determination of whether thecomputing device104 complies with therules207 based on the updateddevice profile212. For instance, therules207 may require that thecomputing device104 be connected to asecured network106 to gain access to the resource and the second determination of compliance may reveal that thecomputing device104 is connected to anunsecured network106. Responsive to the second determination that thecomputing device104 complies with therules207, themanagement application114 provides the requestedresource202. In some embodiments, theclient application124 may managecomputing device104 on behalf of themanagement application114 by periodically transmitting thedevice profile212 to theserver system102. In this embodiment, each time thedevice profile212 is transmitted to theserver system102, themanagement application114 may determine whether the updatedcomputing device104 complies with therules207 using the updateddevice profile212.
In some embodiments, themanagement application114 may transmitrules207 associated with each one of the identifiedresources202 to thecomputing device104. For example, themanagement application114 may transmit therules207 to theclient application124 involved in managing thecomputing device104 for determining whether thecomputing device104 complies with therules207. In some embodiments, themanagement application114 may not determine whether thecomputing device104 complies with therules207 of each of the identifiedresources202 and instead permits theclient application124 to make this determination. For instance, theclient application124 may determine whether thecomputing device104 complies with therules207 associated with the receivedresource202 prior to rendering the receivedresource202 on thedisplay device128.
In some embodiments, themanagement application114 may transmit therules207 to thecomputing device104 prior to transmitting the identifiedresources202. Theclient application124 may determine whether thecomputing device104 complies with therules207, as described above. Theclient application124 may transmit an indication back to themanagement application114 of the compliance status. Responsive to receiving an indication from thecomputing device104 that thecomputing device104 complies with all and/or a sufficient portion of therules207 associated with eachrespective resource202, themanagement application114 may transmit the appropriate identifiedresources202 to thecomputing device104. Additionally, theclient application124 may store therules207 in a memory associated with thecomputing device104, such as thedata store126. Uponsubsequent requests218 to access the identifiedresource202, themanagement application114 may wait to receive an indication from theclient application124 that thecomputing device104 complies with therules207 associated with the requestedresource202 to determine whether to transmit the requestedresource202. For example, theclient application124 may use the storedrules207 received from a previous request to make the determination and transmit therequest218.
Themanagement application114 may be further executed to log activity related to theresources202 for asset tracking purposes. For example, themanagement application114 may log activities such as transmission of resources, historical data related to the transmission of the resource, data related to the rendering of theresources202 by thecomputing device104, data related to a storage location of theresources202, data related to communication with thecomputing device104, data related to resource qualifiers associated with theresources202, data related tocomputing device104 compliance withrules207, data related to usage and availability of bandwidth, and/or any other data related to theresources202.
In an additional embodiment, themanagement application114 may periodically determine whether the transmittedresources202 have been modified on thecomputing device104. Themanagement application114 may synchronize the modifiedresource202 on thecomputing device104 with theunmodified resource202 on theserver system102. For instance, themanagement application114 may determine whether theresource202 has been modified based on an edit date, modified date, and/or an access date associated with theresource202. In this embodiment, themanagement application114 may periodically request to receive the relevant date from theclient application124. Upon receiving the relevant date, themanagement application114 compares the relevant date from thecomputing device104 with the corresponding date on theserver system102 and determines to synchronize therespective resources202 if the two relevant dates do not match. For instance, themanagement application114 may employ a synchronization approach as is known in the art. In some embodiments, themanagement application114 may employ the synchronization approach based on determining whether the user is permitted to modify theresource202 on thecomputing device104. In some embodiments, themanagement application114 may remove theresource202 on thecomputing device104 upon synchronizing with theserver system102. In some embodiments, themanagement application114 stores the modifiedresource202 in thedata store116 as one of multiple versions of therespective resource202.
In some embodiments, theclient application124 may be pre-authorized to access at least some of theresources202 hosted by theserver system102. In such embodiments, themanagement application114 may be configured to provide to theclient application124 a listing ofresources202 available for download by thecomputing device104 based only on certain embedded authorization data (e.g.,device identifier216, and/ordevice profile212, etc.) and without requiring theclient application124 to provide additional authorization data (e.g., user name and password). For example, themanagement application114 may identifyresources202 to include in the listing by determining which of theresources202 are associated withrules207 that correspond with thedevice profile212 of thecomputing device104. Themanagement application114 may allow theclient application124 to download at least some of theavailable resources202. However, at least one of theavailable resources202 may be associated with a distribution rule that requires additional authorization. For instance, theresource202 may be a document containing sensitive information that requires authorization of a username and password and/or other additional authorization data. Thus, if theclient application124 submits a request to download such aresource202, themanagement application114 may prompt theclient application124 to provide additional authorization data. In response, theclient application124 may prompt the user to providecredentials214. In some embodiments, theclient application124 may transmit thecredentials214 and/or thedevice identifier216 of thecomputing device104 to themanagement application114. Upon determining that the user is authorized to access thesensitive resource202 from thecomputing device104, themanagement application114 may allow theclient application124 to download thesensitive resource202.
Although themanagement application114,client application124, and other various systems described herein may be embodied in software and/or code executed by general purpose hardware as discussed above, as an alternative the same may also be embodied in dedicated hardware and/or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit and/or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of at least one of data signals, application specific integrated circuits having appropriate logic gates, and/or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein.
Controlling Access to Resources Via Electronic MeetingThemanagement application114 executed at theserver system102 can control the use ofresources202 and other electronic content accessed via an electronic meeting betweenmultiple computing devices104, as described in detail with respect toFIGS. 3-6.
FIG. 3 is a modeling diagram depicting an example flow of communications among amanagement application114 andmultiple computing devices104a-caccessing anelectronic meeting302.
Theelectronic meeting302 can include at least one function for sharingresources202 provided by theserver system102 and/or other electronic content. For example, entities accessing theelectronic meeting302 may transmit copies ofresources202 among thecomputing devices104a-c, render theresources202 for display at thecomputing devices104a-c, and/or making theresources202 available for use at least one of thecomputing devices104a-c.
Theelectronic meeting302 may be hosted via theserver system102 and/or another server system with which themanagement application114 can communicate. In some embodiments, acommunication application303 configured to access theresources202 may host theelectronic meeting302, as depicted inFIG. 3. Themanagement application114 can moderate requests for access toresources202 transmitted by thecommunication application303. Moderating requests for access to theresources202 can include ensuring thatresources202 are provided via theelectronic meeting302 to computingdevices104a-caccording to anyapplicable rules207, as described above with respect toFIG. 2. Thecommunication application303 can retrieve and/or otherwise access theresources202 on behalf of the participating entities304a-cand/or provide the resources to thecomputing devices104a-cvia theelectronic meeting302. Additionally or alternatively, thecommunication application303 can receiverequests218 forresources202 from thecomputing devices104a-cvia theelectronic meeting302 and transmit the requests to themanagement application114, which can transmit the requestedresources202 to the requesting devices. In some embodiments, themanagement application114 may host theelectronic meeting302.
Computing devices104a-caccessing resources202 via an electronic meeting may be authenticated, managed, and/or otherwise determined to be compliant withrules207 via any suitable manner.
In some embodiments, theclient applications124a-cmay include at least one electronic meeting function via which thecomputing devices104a-cmay respectively access and/or establish anelectronic meeting302. Theclient applications124a-cmay be installed on therespective computing devices104a-cprior to theelectronic meeting302 being established. If an instance of theclient application124 is not installed to a computing device, the computing device may be unable to access theelectronic meeting302 and/or communicateresources202 and/or other electronic content via theelectronic meeting302.
In some embodiments, a dedicated electronic meeting application other than theclient application124 can be used to establish and/or access theelectronic meeting302. The dedicated electronic meeting application may be required to communicate with themanagement application114 via theelectronic meeting302 via theclient application124. Theclient application124 may be a plug-in module added to the dedicated electronic meeting application and/or a separate application used for accessing and/or communicatingresources202 via theelectronic meeting302. Acomputing device104 may be able to access theelectronic meeting302 the dedicated electronic meeting application without theclient application124 if thecomputing device104 does not access theresources202 provided by theserver system102. Themanagement application114 may push and/or otherwise provide theclient application124 to computing devices on which theclient application124 is not installed in response to the computing device requesting access to theresources202 via theelectronic meeting302. The instance of theclient application124 may automatically be installed to thecomputing device104 without intervention by an operator of thecomputing device104. Additionally or alternatively, thecomputing device104 may provide a prompt to the operator requesting authorization to install the instance of theclient application124. Upon the operator affirming that theclient application124 may be installed, thecomputing device104 can install the instance of theclient application124.
In some embodiments, themanagement application114 can automatically establish theelectronic meeting302 based on the presence ofcomputing devices104a-ccorresponding to entities permitted to access theelectronic meeting302. Themanagement application114 can search for a beacon and/or other identification signal broadcasted and/or otherwise transmitted by each of thecomputing devices104a-c. The beacon and/or other identification signal can identify the computing device as being available for theelectronic meeting302. Themanagement application114 can search for the beacon at predetermined times during a time period in which theelectronic meeting302 is scheduled to occur and/or continuously search for the beacon during the time period. In some embodiments, themanagement application114 can broadcast a discovery signal. The discovery signal can be received by thecomputing devices104a-cat which theclient applications124a-care respectively executing. Each of theclient applications124a-ccan transmit a response to the discovery signal. The response can notify themanagement application114 that thecomputing devices104a-care available to join theelectronic meeting302. At least one of theclient applications124a-cmay automatically transmit a response to themanagement application114 without intervention by respective operators of thecomputing devices104a-c. Additionally or alternatively, at least one of theclient applications124a-cmay provide a prompt to the respective operator and transmit a response to themanagement application114 based on the respective operator affirming that he and/or she wishes to join theelectronic meeting302
Theclient applications124a-cmay transmit data via theelectronic meeting302 identifying the entities304a-caccessing and/or requesting access to theelectronic meeting302. The entities304a-ccan be identified by any suitable identifier, such as adevice profile212, at least one ofcredentials214, adevice identifier216, and/or a combination thereof. In some embodiments, an identifier for an entity can identify the operator of a computing device. The identifier can include a user name for the operator. In some embodiments, an identifier for an entity can identify the computing device accessing requesting access to the electronic meeting. Non-limiting examples of identifiers for computingdevices104a-cinclude an internet protocol (“IP”) address and/or a MAC address. In some embodiments, an entity may identified by a pairing of an operator identifier and a device identifier.
Themanagement application114 may obtaindata306 from theelectronic meeting302 identifying the entities304a-c, such as thedevice profile212, at least one ofcredentials214, adevice identifier216, and/or a combination thereof provided by each of theclient applications124a-c. In some embodiments, thecommunication application303 can push thedata306 to themanagement application114. In some embodiments, themanagement application114 can pull and/or otherwise retrieve thedata306 from thecommunication application303.
Themanagement application114 may authenticate and/or otherwise identify each of the entities304a-caccessing and/or requesting access to theelectronic meeting302 from thedata306. The management application can access alisting308 stored in thedata store116. The listing308 can include a list of entities that are required to participate in theelectronic meeting302 in order for themanagement application114 to authorize the communication of at least one of theresources202 and/or other electronic content. For example, as depicted inFIG. 3, theentities304a,304bare listed as required participants for theelectronic meeting302. The listing308 can also include a list of other entities that are authorized to access theelectronic meeting302. For example, as depicted inFIG. 3, theentity304cis listed as an authorized participant. Themanagement application114 may not require the participation of theentity304c(i.e., an authorized but not required entity) in theelectronic meeting302 as a prerequisite to communication of at least one of theresources202 and/or other electronic content among the entities304a-c. In some embodiments, authorized but not required entities (e.g.,entity304c) may not have access to some or all of theresources202 and/or other electronic content made available to required entities (e.g.,entities304a,304b).
Any suitable mechanism and/or process can be used for authorizing communication of the at least one of theresources202 and/or other electronic content among the entities304a-cvia theelectronic meeting302. For example, themanagement application114 can authorize the communication of theresources202 and/or other electronic content by respectively providing tokens310a-cto theclient applications124a-c, as depicted inFIG. 3. The tokens310a-ccan include an authorization to access theresources202 and/or other electronic content from thedata store116 of theserver system102 and/or another server system in communication with themanagement application114. The tokens310a-ccan respectively identify that requests for theresources202 from the entities304a-c, theclient applications124a-c, and/or thecomputing device104a-care to be granted. In some embodiments, the tokens310a-ccan specify permissions (e.g., read, write, copy, etc.) for using theresources202 and/or other electronic content. The tokens310a-ccan additionally or alternatively include data specifying that the use of theresources202 and/or other electronic content is authorized during a scheduled time period for the electronic meeting.
In some embodiments, themanagement application114 can perform at least one action enforcing the conditions specified in the tokens310a-cas described above with respect toFIG. 2. For example, themanagement application114 can add the tokens310a-cto the approved credentials204 in thedata store116. Each of thecomputing devices104a-ccan add a respective one of the tokens310a-cto thecredentials214. In response to arequest218 that includes one of the tokens310a-cwithcredentials214, themanagement application114 may determine resource-grouping identifiers203 based on thecredentials214 of the requesting entity and/or thedevice identifier216 of thecomputing device104 corresponding to the entity. For example, eachresource grouping identifier203 may be associated with a pairing of credentials214 (including at least one of the tokens310a-c) and adevice identifier216. Themanagement application114 may determine at least one of resource-grouping identifiers203 associated with the pairing ofcredentials214 and thedevice identifier216. Themanagement application114 can identify theresources202 that are associated with the determined resource-grouping identifiers203. Themanagement application114 can determine whether acomputing device104 from which therequest218 originated complies with therules207 associated with each one of the identifiedresources202. If themanagement application114 determines that thecomputing device104 complies with therules207, themanagement application114 can transmit the identifiedresources202 associated with therules207 via theelectronic meeting302. In some embodiments, themanagement application114 automatically transmits the identifiedresources202 that thecomputing device104 is authorized to receive. In some embodiments, themanagement application114 may make the identifiedresources202 available for download. For example, acomputing device104 may receive an indication that theresource202 is available for download. Thecomputing device104 may transmit a request to themanagement application114 for downloading theapplicable resource202. Upon receiving the request, themanagement application114 may transmit theresource202 to thecomputing device104.
In some embodiments, theclient applications124a-ccan manage thecomputing devices104a-cbased on the conditions specified in the tokens310a-c. For example, aclient applications124 may block attempts to accessresources202 in violation of the conditions specified in the tokens310a-c. Theclient application124 may receive at least one of therules207 from theserver system102 along with the token. Each of the receivedrules207 may be associated with at least one of theresources202 identified in the token. Theclient application124 can determine compliance with the at least one of therules207 received by the client application (e.g., based on thedevice profile212 for the requesting computing device). If theclient application124 determines a request to accessresources202 via theelectronic meeting302 is not compliant with some and/or all of the receivedrules207, theclient application124 can render a notice of non-compliance on adisplay device216 of thecomputing device104. Theclient application124 may additionally or alternatively transmit a notification to themanagement application114 indicating that thecomputing device104 is non-compliant. If theclient application124 determines that the request to accessresources202 via theelectronic meeting302 is compliant with all and/or a portion of the sets ofrules207, theclient application124 can transmit a notification of compliance to themanagement application114. Theclient application124 can obtain theresources202 associated with therules207 with which the requestingcomputing device104 complies. Theresources202 may be obtained via theelectronic meeting302.
In some embodiments, themanagement application114 can authorize the communication of electronic content by granting access to theresources202 and/or other electronic content by thecommunication application303. For example, themanagement application114 may provide a token to thecommunication application303 and/or add a temporary credential for thecommunication application303 to the approved credentials204 stored in thedata store116. In some embodiments, the token and/or temporary credential may be valid for a particular period of time corresponding to a scheduled start time and/or end time for theelectronic meeting302.
In some embodiments, themanagement application114 can implement at least one security measure to prevent unauthorized entities from accessing electronic content communicated via theelectronic meeting302.FIG. 4 is a modeling diagram depicting an example flow of communications among themanagement application114, thecomputing devices104a-c, and an unauthorized entity.
Each of thecomputing devices104a-ccan respectively access theelectronic meeting302 via the connections404a-c. Anothercomputing device402 can attempt to access the meeting and/or be otherwise detected by themanagement application114. Thisother computing device402 can correspond to anunauthorized entity406. In some embodiments, themanagement application114 can detect anunauthorized entity406 accessing and/or attempting to access theelectronic meeting302, as depicted inFIG. 4 by thecomputing device402 identifying theentity406 to theelectronic meeting302. The management application can receivedata408 identifying theentity406. In some embodiments, themanagement application114 can detect theunauthorized entity406 based on data received via a communication channel other than theelectronic meeting302, as depicted inFIG. 4 by thecomputing device402 communicating thedata406′ identifying theunauthorized entity406. Thedata406′ may be received via a router and/or other network communication device providing network connectivity to thecomputing devices104a-cand thecomputing device402. For example, themanagement application114 may receive thedata406′ from a router and/or other network communication device via a direct connection between the router and theserver system102 and/or a connection with another server system in communication with the router.
Themanagement application114 can determine that theentity406 and/or thecomputing device402 are not authorized to access theelectronic meeting302 via any suitable process. In one non-limiting example,management application114 can determine that theentity406 is not included in thelisting308. In another non-limiting example, themanagement application114 can determine that authentication data for the entity406 (e.g., a user name and/or password) is invalid. In another non-limiting example, themanagement application114 can determine that thecomputing device402 corresponding to theunauthorized entity406 fails to comply with at least one of therules207 and/or another rule governing access to theresources202.
Themanagement application114 can restrict communication of at least one of theresources202 and/or other electronic content based on determining that theentity406 is not authorized to access theelectronic meeting302. In some embodiments, restricting the communication of electronic content can include restricting thecomputing devices104a-cand/or the entities304a-cto communicating a subset of electronic content. For example, anelectronic meeting302 that involves sharing both publiclyavailable resources202 and secret and/or otherwisesensitive resources202 may be restricted to sharing only the publiclyavailable resources202 in the presence of theunauthorized entity406. In some embodiments, restricting the communication of electronic content can include barring any communication of electronic content in the presence of theunauthorized entity406.
Any suitable mechanism and/or process can be used for restricting communication of the at least one of theresources202 and/or other electronic content among the entities304a-c. In some embodiments, themanagement application114 can restrict the communication of theresources202 and/or other electronic content by respectively providing updated tokens410a-cto theclient applications124a-cto replace tokens310a-c, as depicted inFIG. 4. In one non-limiting example, the tokens410a-ccan include an authorization to access fewer of theresources202 as compared to the tokens310a-c. In another non-limiting example, the tokens410a-ccan specify permissions (e.g., read, write, copy, etc.) for using theresources202 and/or other electronic content that are more restrictive as compared to permissions specified by the tokens310a-c. The conditions specified in the tokens410a-ccan be enforced by theclient applications124a-c, themanagement application114, and/or some combination thereof as described above with respect toFIG. 3.
In some embodiments, themanagement application114 can restrict the communication of theresources202 and/or other electronic content by restricting access to theresources202 and/or other electronic content by thecommunication application303. For example, themanagement application114 may invalidate any tokens previously provided to thecommunication application303 and provide a new token to thecommunication application303 that specifies a more restrictive permission level and/or subset ofresources202 that thecommunication application303 may access.
In some embodiments, themanagement application114 can restrict communication of theresources202 and/or other electronic content based on a required entity leaving theelectronic meeting302 and/or a computing device corresponding to a required entity leaving theelectronic meeting302 and/or a specified geographic area.
In some embodiments, themanagement application114 can direct the communication application to terminate theelectronic meeting302 based on a required entity leaving the meeting, a computing device corresponding to a required entity leaving a specified geographic area in which thecomputing device104a-care positioned, anunauthorized entity406 accessing and/or attempting to access the electronic meeting, and/or anunauthorized computing device402 entering a specified geographic area in which thecomputing device104a-care positioned.
In some embodiments, themanagement application114 can perform a remedial action in response to detecting anunauthorized entity406 and/or anunauthorized computing device402 for acomputing device402 that can be managed by themanagement application114. A remedial action can include at least one security measure for preventing theunauthorized entity406 from accessing theresources202. A remedial action can be specified at least one rule stored in thedata store116 and governing access to theresources202. An instance of theclient application124 may be installed on thecomputing device402. Theapplication124 may include at least one management function for managing thecomputing device402 in response to commands received from themanagement application114. Theclient application124 can perform the remedial actions at thecomputing device402 in response to commands from themanagement application114.
The remedial action can include transmittingdata412 to thecomputing device402. In some embodiments, thedata412 can include command to aclient application124 executing on thecomputing device402. The command can direct the client application to erase some or all content from the computing device402 (i.e., perform a “device wipe”). In some embodiments, thedata412 can include a software update to be installed on thecomputing device402. The software update can update thecomputing device402 such that thecomputing device402 is compliant with at least one rule governing access to theresources202.
In some embodiments, the remedial action can involve notifying an administrative entity of the presence of theunauthorized entity406 and/or theunauthorized computing device402. For example, the presence of anunauthorized computing device402 detected in the vicinity of thecomputing devices104a-cmay trigger an alert to an administrator and/or security personnel. The administrator and/or security personnel may respond by escorting the user of theunauthorized computing device402 from the premises.
In some embodiments, each of thecomputing devices104a-cmay be positioned in a geographical location in which network connectivity is provided by at least one network communication device that can be controlled by themanagement application114. For example, network device(s), such as routers and/or computing systems in communication with routers, may provide network connectivity to thecomputing devices104a-caccessing theelectronic meeting302. Themanagement application114 may communicate with the network communication device(s) via another computing system configured to control the network communication device(s), such as a server system providing network connectivity between thecomputing devices104a-cand theserver system102. Themanagement application114 may be able to restrict the operations of theunauthorized computing device402 by communicating a command to the network communication device(s). The command communicated to the network communication device(s) can identify the computing device(s)402 via any suitable identifier, such as an IP address and/or a MAC address. The command can direct the network communication device(s) to restrict and/or deny network access by the computing device(s)402.
FIG. 5 is a flow chart illustrating anexample method500 for controllingresources202 and/or other electronic content communicated among computingdevices104a-c. For illustrative purposes, themethod500 is described with reference to the system implementations depicted inFIGS. 1-2 and the flows of communication depicted inFIGS. 3-4. Other implementations, however, are possible.
Themethod500 involves identifying multiple entities available for communicating electronic content via an electronic meeting and/or other form of electronic communication, as shown inblock510. For example, theprocessor108 of theserver system102 can execute themanagement application114 to identify thatentities304a,304bare required for communicating electronic content via an electronic meeting. Themanagement application114 can identify the requiredentities304a,304bin any suitable manner, such as accessing alisting308.
Themethod500 further involves determining that determining that each of a required subset entities is available for communication via the electronic meeting and/or other form of electronic communication, as shown inblock520. For example, themanagement application114 can determine that the requiredentities304a,304bare accessing theelectronic meeting302. In some embodiments, the required subset of entities can include multiple entities whose availability is mandatory. In some embodiments, the required subset of entities can include a required number of entities (such as, but not limited to, a quorum) without requiring any specific entity be available. In some embodiments, the required subset of entities can include at least one mandatory entity and at least one additional entity selected from a group of required entities. For example, authorizing electronic communication may require the participation and/or availability of anentity304aas well the participation and/or availability of either anentity304bor anentity304c. The participation and/or availability ofentities304a,304bmay be sufficient to authorize electronic communication. The participation and/or availability ofentities304a,304cmay also be sufficient to authorize electronic communication. In some embodiments, the required subset of entities can include a required entity and required number of additional entities (such as, but not limited to, a quorum) without requiring any specific entity of the additional entities be available.
Determining that the requiredentities304a,304bare accessing theelectronic meeting302 can include authenticating the requiredentities304a,304bbased on respective authentication data provided by therespective client applications124a,124b. In some embodiments, theclient applications124a,124bmay authenticate the entities required304a,304bby verifying the authentication data. Theclient applications124a,124bcan communicate successful verifications of the authentication data to themanagement application114. In some embodiments, theclient applications124a,124bmay transmit the authentication data to themanagement application114. Themanagement application114 can verify the authentication data provided by theclient applications124a,124b.
In some embodiments, authentication data can include information provided by the requiredentities304a,304bto theclient applications124a,124b. Non-limiting examples of authentication data provided by the requiredentities304a,304binclude a password, a personal identification number, at least one answer to at least one secret question, a token, and the like.
In some embodiments, the authentication data can include biometric information associated with each of the requiredentities304a,304b. For example, a requiredentity304ausing acomputing device104amay access fingerprint scanning function provided by theclient application124aand/or another application. The requiredentity304amay scan at least one of his and/or her fingerprints.
In some embodiments, determining that the requiredentities304a,304bare accessing theelectronic meeting302 can include determining that therespective client applications124a,124bat thecomputing devices104a,104bis accessing a common collaborative session via thenetwork106. For example, each of thecomputing devices104a,104bmay be executing a respective application for accessing a web meeting and/or other media conference. Themanagement application114 can identify thecomputing devices104a,104bcorresponding to the requiredentities304a,304bbased on at least one identifier provided for accessing the collaborative session, such as an IP address and/or MAC address associated with each of thecomputing devices104a-c.
In some embodiments, determining that each of the requiredentities304a,304bis accessing theelectronic meeting302 comprises determining that each of thecomputing devices104a,104bis positioned in a common geographical location. Themanagement application114 may identify the common geographical location by reference to a file and/or other data stored in adata store116. The common geographical location can be defined in any suitable manner. In some embodiments, a common geographical location may be delineated by fixed boundaries. In some embodiments, a common geographical location may be defined by a proximity to at least one reference location, such as (but not limited to) a distance from at least one base station in a telecommunication system and/or access points in a wireless data network.
Themanagement application114 can determine that thecomputing devices104a,104bcorresponding to requiredentities304a,304bare positioned in a common geographic location via any suitable process. In some embodiments, themanagement application114 can detect and/or otherwise determine that each computing device is registered with the management application via a sensing device positioned in the common geographic location. For example, one or more radio-frequency identification (“RFID”) scanners may be positioned at one or more respective locations in a geographic location. Each of thecomputing devices104a,104bmay display an RFID identifier and/or have an RFID identifier affixed to it. The RFID identifier can be scanned by an RFID scanner. Data from the RFID scanner identifying the scanned computing devices can be communicated to themanagement application114, thereby allowing themanagement application114 to identify the scannedcomputing device104. In some embodiments, a control device can be configured to detect that thecomputing devices104a-care positioned in the common geographic location by establishing radio communication with thecomputing devices104a,104bvia at least one field communication (“NFC”) process. Non-limiting examples of NFC processes include touching each of thecomputing devices104a,104bto the control device and/or another sensor device and/or bring each of thecomputing devices104a,104binto close proximity with the control device. In some embodiments, themanagement application114 can detect and/or otherwise determine that thecomputing devices104a,104bare positioned in a common geographic location by accessing the global positioning system (“GPS”) coordinates for each of thecomputing devices104a,104b. In some embodiments, themanagement application114 can determine thatcomputing devices104a,104bsuch as smart phones are positioned in a common geographic location by triangulating the position of each computing device based on the distance of the computing device from each of multiple base stations in a telecommunication system.
In some embodiments, themanagement application114 can determine that a requiredentity304a,304bhas left the common geographical location. Themanagement application114 can restrict the communication of at least one of theresources202 and/or other electronic content based on the participating required entity leaving the common geographical location. For example, themanagement application114 may periodically update a stored list of the respective locations of thecomputing devices104a-c. Themanagement application114 may determine during a first time period that acomputing device104acorresponding to a requiredentity304ais positioned within the common geographical location. Themanagement application114 may authorize communication of at least one of theresources202 and/or other electronic content via theelectronic meeting302 during the first time period. Themanagement application114 may determine during a second time period that thecomputing device104ais positioned outside the common geographical location. Themanagement application114 may restrict communication of at least one of theresources202 and/or other electronic content via theelectronic meeting302 during the second time period.
Themethod500 further involves authorizing a communication of the electronic content among the requiredentities304a,304band, optionally, any other authorizedentities304cvia the electronic meeting and/or other form of electronic communication based on determining that each of the entities is available for communication, as shown inblock530. For example, themanagement application114 can authorize theclient applications124a-caccessing theelectronic meeting302 to communicate at least one of theresources202 provided by theserver system102 and/or other electronic content, as described above with respect toFIG. 3.
In some embodiments, themanagement application114 can authorize theclient applications124a-cto communicate at least one of theresources202 and/or other electronic content by decrypting the electronic content for use during theelectronic meeting302. The electronic content may be encrypted using an encryption key provided by the requiredentities304a,304b. The encryption key may be divided among the requiredentities304a,304bsuch that each entity has access to a respective portion of the encryption key. Each of the requiredentities304a,304bcan provide a respective portion of the encryption key upon accessing theelectronic meeting302. For example, the portions of the encryption key may be stored on thecomputing devices104a,104b. Theclient applications124a,124bcan retrieve the portions of the encryption key in response to theentities304a,304baccessing and/or requesting access to theelectronic meeting302. Theclient applications124a,124bcan provide the portions of the encryption key to themanagement application114. Themanagement application114 can combine and/or perform other operations on the portions of the encryption key into the encryption key and decrypt content to be shared via theelectronic meeting302. In one non-limiting example, a 256-bit key or other key can be partitioned. Each partition can be provided to a respective entity. Themanagement application114 can receive each partition and parse or otherwise combine the partitions to obtain an operable 256-bit key. In another non-limiting example, a 256-bit key or other key can be partitioned. Each partition can be provided to a respective entity. Themanagement application114 can receive each partition and execute an algorithm using the partitions to obtain an operable 256-bit key.
In some embodiments, themanagement application114 can authorize theclient applications124a-cto communicate at least one of theresources202 and/or other electronic content based on secondary authentication information generated from authentication data provided by the requiredentities304a,304b. In some embodiments, generating secondary authentication data can include combining the authentication data received from the requiredentities304a,304b. For example, the management application may concatenate and/or otherwise join a group of passwords to form a combined password. The combined password may be used to verify that the electronic content can be communicated during theelectronic meeting302. In some embodiments, generating secondary authentication data can include generating authentication data that is different from the separate authentication data received from the requiredentities304a,304b. For example, the management application may receive a personal identification number from each of the requiredentities304a,304b. The management application can perform mathematical operations (e.g., addition and/or multiplication) on the received personal identification numbers. The output of the mathematical operation(s) can be a new identification number. The new identification number may be used to verify that the electronic content can be communicated during theelectronic meeting302.
In some embodiments, themanagement application114 can detect anadditional entity406 that lacks an authorization for accessing theelectronic meeting302. Themanagement application114 can restrict the communication of at least some of the electronic content among at least some of the entities304a-cbased on detecting theadditional entity406, as described above with respect toFIG. 4.
In some embodiments, themanagement application114 can determine that theentities304a,304bare respectively accessing theelectronic meeting302 via authorizedcomputing devices104a,104b. Themanagement application114 can permit communication of theresources202 and/or other electronic content based on determining that each of thecomputing devices104a,104bis authorized to access theelectronic meeting302. Determining that each of thecomputing device104a,104bis authorized to access theelectronic meeting302 can include, for example, determining that eachcomputing device104a,104bis compliant with at least one of therules207.
FIG. 6 is a flow chart illustrating anexample method600 for restricting access toresources202 and/or other electronic content communicated among computingdevices104a-cbased on the presence of anunauthorized entity406. For illustrative purposes, themethod600 is described with reference to the system implementations depicted inFIGS. 1-2 and the flows of communication depicted inFIGS. 3-4. Other implementations, however, are possible.
Themethod600 involves identifying multiple entities authorized to electronically communicate with one another, as shown inblock610. For example, theprocessor108 of theserver system102 can execute themanagement application114 to identify that the entities304a-care authorized to access theelectronic meeting302. Themanagement application114 can identify that the entities304a-care authorized to access theelectronic meeting302 by, for example, referencing alisting308 and/or by verifying that the entities304a-chave provided valid authentication data.
Themethod600 further involves detecting an additional entity that lacks an authorization for communicating with the entities, as shown inblock620. For example, theprocessor108 of theserver system102 can detect anadditional entity406 that lacks an authorization for accessing theelectronic meeting302, as described above with respect toFIG. 4.
In some embodiments, detecting theunauthorized entity406 can include determining that acomputing device402 corresponding to the unauthorized entity406 (e.g., a user that is not authorized to access the meeting) is positioned in the same geographical location asother computing devices104a-cauthorized to access the meeting. The geographical location can be a defined by reference to a specific area, such as a boardroom, and/or a proximity to theother computing devices104a-c(e.g., within 200 feet of theother computing devices104a-c).
In some embodiments, themanagement application114 can detect theunauthorized entity406 based on theunauthorized entity406 unsuccessfully attempting to access theelectronic meeting302. In one non-limiting example, themanagement application114 can determine that authentication data provided by theentity406 is invalid. Themanagement application114 may execute at least one remedial action for a managedcomputing device402 in response to a threshold number of failed attempts by an entity to access the meeting using invalid authentication data. In another non-limiting example, themanagement application114 can determine that theentity406 is not included on alisting308 of the entities authorized to access theelectronic meeting302. In another non-limiting example, themanagement application114 can determine that a request from the entity to access theelectronic meeting302 has a timestamp outside a designated time period for theelectronic meeting302.
In some embodiments, themanagement application114 can determine that thecomputing device402 is not authorized to access the electronic meeting, regardless of whether the operator of thecomputing device402 is authorized to access the meeting. For example, themanagement application114 can determine that acomputing device402 is not authorized to access the electronic meeting based on thecomputing device402 being non-compliant with at least one rule governing access to theresources202 and/or other electronic content used for the electronic meeting.
Themethod600 involves restricting a communication of at least some electronic content among at least some of entities304a-cbased on detecting the additional entity that lacks authorization, as shown inblock630. For example, theprocessor108 of theserver system102 can restrict communication among the entities304a-cin anelectronic meeting302 and/or other form of electronic communication, as described above with respect toFIG. 4.
In some embodiments, themanagement application114 can perform at least one remedial action in response to detecting anunauthorized computing device402 accessing theelectronic meeting302, attempting to access theelectronic meeting302, and/or being positioned in the vicinity ofother computing devices104a-cauthorized to access theelectronic meeting302. In one non-limiting example, the remedial action includes transmitting a software update to thecomputing device402. The software update can bring thecomputing device402 into compliance with at least one rule governing access to resources shared via theelectronic meeting302, such as therules207. In another non-limiting example, the remedial action includes transmitting a command to an instance of theclient application124 executing on thecomputing device402. The command directs theclient application124 to erase some or all content and/or applications from the computing device402 (i.e., perform a partial or total “device wipe”). In another non-limiting example, the remedial action includes transmitting a command directing theclient application124 to lock thecomputing device402. Locking thecomputing device402 can include preventing an operator of the computing device from accessing at least one application on thecomputing device402.
Although the description ofFIGS. 1-6 involves theserver system102 providing at least one of theresources202, other implementations are possible. For example, an additional enterprise level computing device may store and provide at least one of theresources202 based on commands from themanagement application114.
Although theserver system102 is depicted as a single server inFIGS. 1-2 for purposes of simplicity, theserver system102 can include multiple servers performing multiple functions. In some embodiments, theserver system102 can include a proxy server function and/or a compliance server function. The proxy server function may include providing a proxy service. As used herein, the term “proxy service” is used to refer to computer-executable instructions for performing the at least one function for authenticating access credentials and device identifiers. The proxy service may be executed to receive an access request from a computing device for accessingresources202 and to determine whether to grant or deny the access request. Based on determining that the access request is granted, the proxy service may associate a computing device with access credentials to accessresources202 provided by and/or accessible via theserver system102.
In some embodiments, a proxy server function may communicate with a compliance server function, such as a compliance service, to authorize acomputing device104 by determining whether thecomputing device104 complies with hardware, software, device management restrictions, and the like, as defined in a set ofrules207. As used herein, the term “compliance service” is used to refer to computer-executable instructions for performing the functionality described herein for authorizing the device characteristics of the requesting device. For instance, the compliance service may identify the device characteristics from a device profile listing of hardware restrictions, software restrictions, and/or computing device management restrictions for a given computing device.
The foregoing description of the aspects, including illustrated examples, has been presented only for the purpose of illustration and description and is not intended to be exhaustive or limiting to the precise forms disclosed. Many variations and modifications may be made to the above-described examples without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
The flowcharts described herein show certain functionality and operations performed by themanagement application114 and theclient application124, respectively. If embodied in software, each box may represent a module, segment, or portion of code that comprises program instructions to implement the specified logical function(s). The program instructions may be embodied in the form of source code that comprises human-readable statements written in a programming language or machine code that comprises numerical instructions recognizable by a suitable execution system such as aprocessor108 and118 in a computer system or other system. The machine code may be converted from the source code, etc. If embodied in hardware, each block may represent a circuit or a number of interconnected circuits to implement the specified logical function(s).
Although the flowcharts described herein show a specific order of execution, it is understood that the order of execution may differ from that which is depicted. For example, the order of execution of two or more steps may be scrambled relative to the order shown. Also, two or more blocks shown in succession in the flow charts may be executed concurrently or with partial concurrence. Further, in some embodiments, one or more of the steps shown in the flow charts may be skipped or omitted. In addition, any number of counters, state variables, warning semaphores, or messages might be added to the logical flow described herein, for purposes of enhanced utility, accounting, performance measurement, or providing troubleshooting aids, etc. It is understood that all such variations are within the scope of the present disclosure.
Any logic or application described herein that comprises software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with a computing system such as, for example, a processor in a computer system or other system. In this sense, the logic may comprise, for example, statements including instructions and declarations that can be fetched from the computer-readable medium and executed by a computing system.
In the context of the present disclosure, a “computer-readable medium” can include any medium that can contain, store, maintain, or otherwise include the logic or application described herein for use by or in connection with a computing system. The computer-readable medium can comprise any one of many physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of a suitable computer-readable medium can include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, optical discs, etc. The computer readable medium may be a random access memory (“RAM”). Examples of a RAM can include (but are not limited to) static random access memory (“SRAM”), dynamic random access memory (“DRAM”), magnetic random access memory (“MRAM”), etc. The computer-readable medium may be a read-only memory (“ROM”), a programmable read-only memory (“PROM”), an erasable programmable read-only memory (“EPROM”), an electrically erasable programmable read-only memory (“EEPROM”), or other type of memory device.
It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and the following claims.