Abstract:
A computing device obtains a request from a user device to access a network beacon. The computing device obtains a device profile for the user device. The computing device determines whether the user device satisfies an authorization rule based on the state of the user device as indicated by the device profile. The computing device authorizes the user device to access the network beacon responsive to determining that the user device satisfies the authorization rule.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of and claims priority to application Ser. No. 13/656,046, filed on Oct. 19, 2012 and titled “SYSTEMS AND METHODS FOR CONTROLLING NETWORK ACCESS”, which is incorporated by reference herein in its entirety. 
     
    
     FIELD OF THE INVENTION 
       [0002]    Embodiments of the disclosure relate generally to data security, and more particularly, to systems and methods for controlling network access 
       BACKGROUND 
       [0003]    Controlling network access is critical to ensure that only authorized client devices may gain access to sensitive information. To date, enterprises have utilized access lists to control which, if any, client devices may access networks. This method may control network access when the group of client devices that are authorized to access the network seldom fluctuates. However, this method is inadequate to control network access when the group of client devices that are authorized to access the network often fluctuates. 
         [0004]    The group of client devices that are authorized to access a network seldom fluctuates when there is a non-transient relationship between a network and the client devices seeking access to the network. For example, a non-transient relationship may exist between a network and client devices where there is an employee-employer relationship between a network and the client devices seeking access to the network. On the contrary, the group of client devices that are authorized to access the network often fluctuates when there is a transient relationship between a network and client devices seeking access to the network. A transient relationship may exist between a network and client devices, for instance, where there is a service provider-customer relationship between a network and the client devices seeking access to the network. As many service providers wish to provide network access for their customers, systems and methods for controlling access to such networks are necessary to ensure that only authorized client devices may gain access to sensitive information. 
       BRIEF SUMMARY 
       [0005]    Some or all of the above needs and/or problems may be addressed by certain embodiments of the disclosure. Certain embodiments may include systems and methods for controlling access to networks. According to one embodiment of the disclosure, there is disclosed a system. The system can include a memory that stores computer-executable instructions. The system can also include a processor configured to access the at least one memory. The processor is configured to execute the computer-executable instructions to perform a method including the steps of receiving one or more requests to access one or more network beacons from one or more client devices, determining whether the client devices satisfy one or more authorization rules associated with the network beacons, authorizing the client devices to access the network beacons in response to a determination that the client devices satisfy the authorization rules associated with the network beacons, and terminating the authorization of the client devices to access the network beacons if the client devices no longer satisfy the authorization rules associated with the network beacons. 
         [0006]    According to another embodiment of the disclosure, there is disclosed a method. The method can include transmitting one or more requests to access one or more network beacons from one or more devices, receiving one or more resources associated with the network beacons on the client devices, and accessing the network beacons from the client devices. 
         [0007]    Further, according to another embodiment of the disclosure, there is disclosed a non-transitory computer-readable medium embodying a program executable in a computing device, the program comprising code that, when executed by a computing device, causes the computing device to perform a method comprising the steps of identifying one or more client devices located within one or more transmission ranges of one or more network beacons, determining whether the client devices satisfy one or more authorization rules associated with the network beacons, and transmitting one or more resources associated with the network beacons to the client devices in response to a determination that the client devices satisfy the authorization rules associated with the network beacons. 
         [0008]    Other embodiments, systems, methods, apparatus aspects, and features of the disclosure will become apparent to those skilled in the art from the following detailed description, the accompanying drawings, and the appended claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    The detailed description is set forth with reference to the accompanying drawings, which are not necessarily drawn to scale. The use of the same reference numbers in different figures indicates similar or identical items. 
           [0010]      FIG. 1  illustrates a block diagram of a networked environment according to certain embodiments of the disclosure. 
           [0011]      FIG. 2  illustrates flow diagrams of exemplary functionality performed by an access control service executed by an access control server in the networked environment of  FIG. 1  according to certain embodiments of the present disclosure. 
           [0012]      FIG. 3  illustrates flow diagrams of exemplary functionality performed by a client side application executed by a client device in the networked environment of  FIG. 1  according to certain embodiments of the present disclosure. 
           [0013]      FIG. 4  illustrates flow diagrams of exemplary functionality performed by an access control service executed by an access control server in the networked environment of  FIG. 1  according to certain embodiments of the present disclosure. 
           [0014]      FIG. 5  illustrates schematic block diagrams of an access control server and a client device employed in the network environment of  FIG. 1  according to certain embodiments of the disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0015]    Illustrative embodiments of the disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the disclosure are shown. The disclosure may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. As noted above, like numbers refer to like elements throughout. 
         [0016]    Illustrative embodiments of the disclosure are directed to, among other things, controlling access to networks. As an overview, access to networks may be controlled by limiting access to network beacons associated with a network to client devices that satisfy one or more authorization rules. In particular, the network beacons may include, for example, Wi-Fi beacons, cellular beacons, satellite beacons, Bluetooth beacons, radio beacons, and/or other beacons capable of transmitting data from a network to client devices. In certain embodiments, an access control service executed by an access control server may authorize one or more client devices that satisfy the authorization rules to access the network beacons. 
         [0017]    The technical effects of certain embodiments of the disclosure may include establishing control of access to networks when access lists may not be predefined, and reducing and/or eliminating the burden of predefining access lists to control access to networks. Moreover, the technical effects of certain embodiments of the invention may include enhancing network access control by assigning specific access rights based on access lists to client devices  120  authorized to access the associated network beacons. 
         [0018]      FIG. 1  depicts certain illustrative components for a networked environment  100  according to various embodiments. The networked environment  100  may include a network  110 , a client device  120 , and an access control server  150 . The network  110  may be or include, for example, any type of wireless network such as a wireless local area network (WLAN), a wireless wide area network (WWAN), or any other type of wireless network now known or later developed. Additionally, the network  110  may be or include the Internet, intranets, extranets, microwave networks, satellite communications, cellular systems, PCS, infrared communications, global area networks, or other suitable networks, etc., or any combination of two or more such networks. In one embodiment, the network  110  facilitates transmission of resources  165  between one or more client devices  120  and an access control server  150 . 
         [0019]    The client device  120  may comprise, for example, a cellular telephone, a smartphone and/or personal digital assistant, a tablet computer and/or web pad, a laptop computer, a desktop computer, a set-top box, a music player, a game console, and/or another device with like capability. For purposes of convenience, the client device  120  is referred to herein in the singular. Even though the client device  120  is referred to in the singular, it is understood that one or more client devices  120  may be employed in the arrangements as descried herein. 
         [0020]    The client device  120  may include a wired network connectivity component (not shown in  FIG. 1 ), for example, an Ethernet network adapter, a modem, and/or the like. The client device  120  may further include a wireless network connectivity interface (not shown in  FIG. 1 ), for example, a PCI (Peripheral Component Interconnect) card, USB (Universal Serial Bus) interface, PCMCIA (Personal Computer Memory Card International Association) card, SDIO (Secure Digital Input-Output) card, NewCard, Cardbus, a modem, a wireless radio transceiver, and/or the like. The client device  120  is operable to communicate via wired connection with the access control server  150  with the aid of the wired network connectivity component. The client device  120  is further operable to communicate wirelessly with the access control server  150  with the aid of the wireless network connectivity component. 
         [0021]    The client device  120  may comprise a memory for storing data and applications, a processor for executing applications stored in memory, a display  136  upon which the processor may execute one or more user interfaces  137 , and a local interface such as a bus, as will be described with respect to  FIG. 5 . The memory of the client device  120  may comprise a data store  122 . The data store  122  of the client device  120  may include a device profile  123 . In one embodiment, the device profile  123  may represent hardware, software, and security attributes that describe the client device  120 . For instance, the device profile  123  may represent hardware specifications of the client device  120 , version and configuration information of various software programs and hardware components installed on the client device  120 , transport protocols enabled on the client device  120 , version and usage information of various other resources stored on the client device  120 , and/or any other attributes associated with the state of the client device  120 . In another embodiment, the device profile  123  may further include characteristics describing the current state of the client device  120 , including indications of the location of the client device  120 , the current time associated with the client device  120 , the client device&#39;s  120  detection of one or more network beacons associated with one or more networks  110 , and the signal strength of the network beacons received by the client device  120 . In yet another embodiment, the device profile  123  may include data indicating a date of a last virus scan of the client device  120 , a date of a last access and/or service by an IT representative, a date of a last access by the access control service  174 , and/or any other data indicating a date of last maintenance of the client device  120 . 
         [0022]    Additionally, the data store  122  of the client device  120  may include one or more user identifiers  132 . The user identifiers  132  may uniquely identify the user of the client device  120 . In one embodiment, the user identifiers  132  may include a username, a password, and/or biometric data related to facial recognition, retina recognition, fingerprint recognition, and the like. Similarly, the data store  122  of the client device  120  may include one or more device identifiers  135 . The device identifiers  132  may uniquely identify the client device  120 . In one embodiment, the device identifiers  135  may be a unique hardware identifier such as a GUID (Globally Unique Identifier), UUID (Universally Unique Identifier), UDID (Unique Device Identifier), serial number, IMEI (Internationally Mobile Equipment Identity), Wi-Fi MAC (Media Access Control) address, Bluetooth MAC address, a CPU ID, and/or the like, or any combination of two or more such hardware identifiers. In another embodiment, the device identifier  135  may be a unique software identifier such a token or certificate, based at least in part on the aforementioned unique hardware identifiers. 
         [0023]    The client device  120  may be configured to execute various applications. For example, the client device  120  may be configured to execute applications such as containerized content applications, web browsing applications, email applications, instant messaging applications, word processing applications and/or other applications capable of receiving and/or rendering resources  165  on a display  136  associated with the client device  120 . Any application capable of receiving and/or rendering resources  165  on a display  136  of the client device  120  is generally referred to herein as a “client side application”  126 . The client side application  126  may be stored in the memory of the client device  120 . In one embodiment, the client side application  126  may be a containerized application that may be authorized to receive and render resources  165  in accordance with one or more resource rules  171 , as described herein. The client side application  126  may include a decryption key to decrypt resources  165  encrypted with an encryption key in order to prevent unauthorized access to the resources  165 . For instance, the client side application  126  may have a decryption key associated with an access control service  174  that may be used to decrypt resources  165  transmitted in an encrypted format to the client device  120  by the access control service  174 . 
         [0024]    The client side application  126  may be executed to transmit one or more requests  177  to access one or more network beacons associated with the network  110 . In certain embodiments, the client side application  126  may transmit access requests  177  to an access control service  174  executed by an access control server  150  associated with the network beacons. In some embodiments, the client device  120  may be permitted to temporarily access the network beacons in order to transmit a request  177  to persistently access the network beacons. In particular, the client side application  126  may be permitted to render a web-based form via a user interface  137  that allows a user of the client device  120  to input one or more user identifiers  132  in order to compile a request  177  to persistently access the network beacons. In one embodiment, the request  177  may include the device profile  123  from the data store  122  of the client device  120 . In another embodiment, the request  177  may include user identifiers  132  from the data store  122  of the client device  120 . In yet another embodiment, the request  177  may include device identifiers  135  from the data store  122  of the client device  120 . 
         [0025]    The client side application  126  may be further executed to receive an indication that the client device  120  is authorized to access the network beacons associated with the network  110 . In certain embodiments, the client side application  126  may receive an authorization indication from an access control service  174  executed by an access control server  150  associated with the network beacons. In one embodiment, the authorization indication may specify that the client device  120  is authorized to access the network beacons while the client device  120  is located within an authorized range of the network beacons. In particular, the authorized ranges associated with the network beacons may include one or more bounded physical areas where a client device  120  may be located within to access the network beacons, one or more ranges of IP addresses that may access the network beacons, one or more ranges of Wi-Fi SSID&#39;s that may access the network beacons, one or more ranges of client device  120  MAC addresses that may access the network beacons, one or more ranges of default gateway addresses and/or public internet addresses that may access the network beacons, one or more ranges of potential network beacon transmission associated with the network beacons, and one or more ranges of acceptable network beacon signal strength levels that may access the network beacons. 
         [0026]    In another embodiment, the authorization indication may specify that the client device  120  is authorized to access the network beacons while one or more resources  165  associated with the network beacons are present on the client device  120 . For instance, the resources  165  associated with the network beacons may individually and/or collectively form a key that may unlock access to the network  110  while the resources  165  are present on the client device  120 . In yet another embodiment, the authorization indication may specify that the client device  120  is authorized to access specific domains and/or services provided via the network beacons based at least in part on one or more of the device profile  123 , user identifiers  132 , and device identifiers  135  associated with the client device  120 . 
         [0027]    The client side application  126  may be further executed to receive one or more resources  165 . In certain embodiments, the client side application  126  may be configured to receive resources  165  associated with the network beacons if the client device  120  is located within an authorized range of the network beacons associated with the network  110 . In some embodiments, the client side application  126  may receive resources  165  that individually and/or collectively form a key that may unlock access to network beacons while the resources  165  are present on the client device  120 . In one embodiment, the client side application  126  may receive the resources  165  from an access control service  174  and/or another service executed by an access control server  150 . In another embodiment, the client side application  126  may receive the resources  165  from a distribution service associated with the network  110  according to a distribution approach as described in application Ser. Nos. 13/396,356 and 13/623,627 both entitled “CONTROLLING DISTRIBUTION OF RESOURCES ON A NETWORK,” which are incorporated herein by reference in their entirety. 
         [0028]    In any instance, the resources  165  may include various types of electronic data that may be associated with the network  110 , such as settings, applications, and content. In one embodiment, settings-type resources  165  may include hardware settings, software settings, and/or the like that configure the functionality provided by the client device  120 . In another embodiment, application-type resources  165  may include book applications, business applications, catalogue applications, education applications, entertainment applications, finance applications, food and drink applications, games applications, health and fitness applications, lifestyle applications, medical applications, music applications, navigation applications, news applications, newsstand applications, photo and video applications, productivity applications, reference applications, social networking applications, sports applications, travel applications, utility applications, weather applications, and/or the like. In yet another embodiment, content-type resources  165  may include application content, video content, image content, audio content, text content, word processor content, presentation content, spreadsheet content, database content, compressed folder content, disk image content, encoded content, backup content, web content, page layout content, plug-in content, font content, system content, developer content, data content and/or the like. 
         [0029]    Additionally, the resources  165  may include one or more resource rules  171 . In certain embodiments, the resource rules  171  may describe and/or regulate the use of the resources  165 . In one embodiment, the resources rules  171  may specify that the resources  165  may only be accessed by authorized and/or secure applications on the client device, such as the client side application  126 . In another embodiment, the resource rules  171  may specify that the resources  165  may not be cut, copied, pasted, transmitted, text messaged, emailed, printed, screen captured, and/or manipulated. In yet another embodiment, the resource rules  171  may specify that the resources  165  are encrypted and may specify that one or more authorized and/or secure applications on the client device  120  have an appropriate decryption key to unlock the resources  165 , such as the client side application  126 . Additionally, the resource rules  171  may specify whether the resources  165  may be rendered while the client device  120  is offline and/or not in communication with the access control service  174 , whether to permit synchronization of the resources  165  with a remote data store, whether to permit storing resources  165  locally on the client device  120 , and whether the resources  165  may only be accessed at certain locations and/or times. 
         [0030]    In other embodiments, the resource rules  171  may be metadata and/or other indications that describe the resources  165 . In particular, the resources rules  171  may specify categories/sub-categories to which the resources  165  belong, that the resources  165  are considered favorites, the ownership of the resources  165 , the managing party of the resources  165 , that the resources  165  are confidential, that the resources  165  are password protected, that historical version of the resources  165 , one or more descriptions of the resources  165 , one or more comments regarding the resources  165 , the size and format of the resources  165 , the download priority associated with the resources  165 , an expiration date associated with the resources  165 , one or more effective dates associated with the resources  165 , and/or the like. 
         [0031]    In some embodiments, the resource rules  171  associated with the resources  165  may change based on the state of the client device  120 . In certain embodiments, the stringency of the resource rules  171  may be increased, reduced, and/or eliminated based on the state of the client device  120 . In one embodiment, the stringency of the resource rules  171  may be increased, reduced, and/or eliminated if the client device  120  is located within the transmission range of certain network beacons. For example, the resource rules  171  may specify that the resources  165  require an 8-digit password to access the resources  165  if the client device  120  is not located within the transmission range of a specific network beacon, and the resource rules  171  may specify that the resources  165  only require a 4-digit password to access the resources  165  if the client device  120  is located within the transmission range of the specific network beacon. In another embodiment, the stringency of the resource rules  171  may be increased, reduced, and/or eliminated if the client device  120  is located within the transmission range of network beacons associated with a certain network. For example, the resource rules  171  may specify that the resources  165  require a 256-bit encryption if the client device  120  is not located within the transmission range of network beacons associated with a specific network, and the resource rules  171  may specify that the resources  165  only require 128-bit encryption if the client device  120  is located within the transmission range of network beacons associated with the specific network. In another embodiment, the stringency of the resource rules  171  may be increased, reduced, and/or eliminated if the client device  120  is located within the transmission range of certain network beacons associated with certain networks. For example, the resource rules  171  may not apply to a client device  120  that is not located within the transmission range of any unknown network beacons and/or is not located within the transmission range of any network beacons associated with unknown networks. 
         [0032]    The client side application  126  may be yet further executed to access one or more resources  165 . In certain embodiments, the client side application  126  may access the resources  165  received from an access control service  174  and/or another distribution service. In some embodiments, the client side application  126  may access the resources  165  on the client device  120  in accordance with the resource rules  171 , as described herein. For example, the client side application  126  may determine that a given resource  165  may not be accessed on a client device  120  because the client device  120  is not located within an authorized location. In any instance, the client side application  126  may access the resources  165  on the client device  120  by installing, activating, and/or executing the resources  165  on the client device  120 . In one embodiment, the client side application  126  may access settings-type resources  165  by transmitting one or more associated settings files to the appropriate locations in the memory of the client device  120 , disabling and/or removing any conflicting settings files, and instructing the client device  120  to conform its operations to the settings-type resources  165 . In another embodiment, the client side application  126  may access application-type resources  165  by transmitting one or more associated application files to the appropriate locations in the memory of the client device  120 , disabling and/or removing any conflicting application files, and instructing the client device  120  to execute the application-type resources  165 . 
         [0033]    In yet another embodiment, the client side application  126  may access content-type resources  165  by transmitting one or more associated content files to the appropriate locations in the memory of the client device  120 , disabling and/or removing any conflicting content files, and instructing the client device  120  to execute one or more applications on the client device  120  capable of rendering and/or presenting the content-type resources  165  to a user of the client device  120 . In particular, the client side application  126  may render and/or present the resources  165  in a user interface  137  by decompressing compressed files and presenting the uncompressed files, mounting disk image files and presenting the mounted image files, running executable files and presenting the executed files, by enabling a data search of the resources  165  and presenting the featured output in a user interface, by calling on another application on the client device  120  to respond to data links contained within the resources  165 , and/or by transmitting a part or the whole of the resources  165  to another application on the client device  120 . Additionally, the client side application  126  may render and/or present a single resource  165  or a series of resources  165  in a comprehensive manner, such as presenting image files in a slideshow-style presentation. Furthermore, the client side application  126  may render and/or present an environment that displays an array of resources  165  in a single view, such as a category-based tree or outline format. 
         [0034]    Additionally, the client side application  126  may be a containerized application that is configured to protect one or more resources  165  associated with one or more network beacons from unauthorized access. In certain embodiments, the client side application  126  may protect resources that have been received from an access control service  174  and/or are accessible on the client device  120 . In one embodiment, the client side application  126  may be executed to identify metadata associated with the resources  165  and ensure that the resources  165  are accessed in accordance with the metadata. For instance, the client side application  126  may prohibit the cutting, copying, pasting, transmitting, emailing, text messaging, screen capturing, and/or otherwise manipulating the resources  165  while the resources  165  are being accessed. In another embodiment, the client side application  126  may prohibit other applications on the client device  120  and/or other services accessible to the client device  120  from accessing the resources  165 . In particular, the client side application  126  may monitor the data stream between the network  110  and the client device  120 , may block any access attempts by another application and/or service, may intercept the resources  165 , and may present the intercepted resource  165  in a user interface  137  rendered by the client side application  126 . In yet another embodiment, the client side application  126  may be executed to call on other services associated with the resources  165  that are executed on the access control server  150  or another server or device accessible to the client side application  126 , for instance, a technical support service that may be executed by the access control server  150 . 
         [0035]    The access control server  150  may comprise, for example, a server computer or any other system providing access control capability. Alternatively, a plurality of access control servers  150  may be employed that are arranged, for example, in one or more server banks or computer banks or other arrangements. For example, a plurality of access control servers  150  together may comprise a cloud computing resource, a grid computing resource, and/or any other distributed computing arrangement. Such access control servers  150  may be located in a single installation or may be distributed among many different geographic locations. For purposes of convenience, the access control server  150  is referred to herein in the singular. Even though the access control server  150  is referred to in the singular, it is understood that a plurality of access control servers  150  may be employed in the arrangements as descried herein. 
         [0036]    The access control server  150  may comprise a memory for storing data and applications and a processor for executing applications stored in memory, as will be described with respect to  FIG. 5 . The memory of the access control server  150  may comprise a data store  153 . The data store  153  may be representative of one or more data stores, as can be appreciated. The data store  153  may contain certain data that is accessible to the access control server  150 . In particular, the data store  153  may contain one or more authorization rules  161 , one or more resources  165 , and one or more resource rules  171  associated with the resources  165 , as described herein. The data in the data store  153  may be associated with the operation of certain applications and/or functionalities executed by the access control server  150 . The data store  153  may utilize strong encryption standards to protect the resources  165  from unauthorized access. For example, the data store  153  may utilize SHA-1 (Standard Hash Algorithm) or a similar strong encryption standard commonly utilized for server-side data storage. 
         [0037]    The access control server  150  may execute certain applications and/or functionalities such the access control service  174 , as well as other applications, services, processes, systems, engines, or functionality not disclosed in detail herein. The access control service  174  may be executed to limit access to one or more network beacons associated with a network  110 . In particular, the access control service  174  may limit network beacon access to one or more client devices  120  that are authorized to access the network beacons associated with the network  110 . The access control service  174  may be further executed to distribute one or more resources  165  associated with the network beacons to one or more client devices  120  that are authorized to access the network beacons. 
         [0038]    The access control service  174  may be executed to control access to one or more network beacons associated with a network  110 . In certain embodiments, the access control service  174  may limit authorization to access the network beacons to one or more client devices  120  that satisfy one or more authorization rules  161  associated with the network beacons. The authorization rules  161  may specify one or more required and/or permitted states that a client device  120  must satisfy in order for the client devices  120  to be authorized to access the network beacons. For example, the authorization rules  161  may include environment-related requirements, resource-related requirements, device-related requirements, and/or the like. 
         [0039]    In one embodiment, the authorization rules  161  may include environment-related requirements that specify one or more locations where the client devices  120  may be authorized to access the network beacons and/or one or more times when the client devices  120  may be authorized to access the network beacons. For instance, the authorization rules  161  may specify that client devices  120  may be authorized to access the network beacons if the client devices  120  are located within one or more authorized locations associated with the network beacons. The authorized location may include a single location, a range of locations, and/or combinations thereof where the client devices  120  may be authorized to access the network beacons. Additionally, the authorization rules  161  may specify that the client devices  120  may be authorized to access the network beacons if the current times associated with the client devices  120  are within one or more authorized windows associated with the network beacons. The authorized windows may include a single time, a span of times, and/or combinations thereof when the client devices  120  may be authorized to access the network beacons. 
         [0040]    In another embodiment, the authorization rules  161  may include resource-related requirements that specify that one or more resources  165  associated with the network beacons are required for the client devices  120  to be authorized to access the network beacons. In certain embodiments, the resources  165  associated with the network beacons may individually and/or collectively represent a key indicating that the client device  120  may be authorized to access the network beacons. In one embodiment, the resources  165  may represent a key while the resources  165  are accessed by the client devices  120 . In particular, the resources  165  may be accessed by the client devices  120  when the resources  165  are stored on, installed on, activated on, and/or executed by the client device  120 . In some embodiments, the authorization rules  161  may specify that the client devices  120  must further comply with one or more resource rules  171  associated with the resources  165  for the client devices  120  to access the resources  165 . For instance, the resource rules  171  associated with the resources  165  may specify that the resources  165  may be accessed by the client devices  120  while the client devices  120  are located within an authorized location. 
         [0041]    In yet another embodiment, the authorization rules  161  may include device-related requirements that specify one or more hardware requirements, software requirements, configuration requirements, maintenance requirements, and/or the like must be satisfied by the client device  120  for the client device  120  to be authorized to access the network beacons. For example, device hardware requirements may include requirements associated with the CPU, memory, power supply, external storage, peripherals, and/or the like. Device 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. Device configuration requirements may include requirements associated with the configuration of the hardware, software, data encryption methods, transport protocols, and/or the like. Additionally, device maintenance requirements may include requirements associated with the date of last virus scan for the client device  120 , the date of the last access of the client device  120  by IT, the date of last communication between the client device  120  and the access control server  150 , the date of last tune-up of the client device  120 , and/or the like. 
         [0042]    In some embodiments, the authorization rules  161  associated with the network beacons may change based on the state of the client device  120 . In certain embodiments, the stringency of the authorization rules  161  may be increased, reduced, and/or eliminated based on the state of the client device  120 . In one embodiment, the stringency of the authorization rules  161  may be increased, reduced, and/or eliminated if the client device  120  is located within the transmission range of certain network beacons. For example, the authorization rules  161  may specify that the network beacons require an 8-digit password to access the network beacons if the client device  120  is not located within the transmission range of a specific network beacon, and the resource rules  171  may specify that the network beacons only require a 4-digit password to access the network beacons if the client device  120  is located within the transmission range of the specific network beacon. In another embodiment, the stringency of the authorization rules  161  may be increased, reduced, and/or eliminated if the client device  120  is located within the transmission range of network beacons associated with a certain network. For example, the authorization rules  161  may specify that the network beacons require 256-bit encryption enabled if the client device  120  is not located within the transmission range of network beacons associated with a specific network, and the authorization rules  161  may specify that the network beacons only require 128-bit encryption if the client device  120  is located within the transmission range of network beacons associated with the specific network. In another embodiment, the stringency of the authorization rules  161  may be increased, reduced, and/or eliminated if the client device  120  is located within the transmission range of certain network beacons associated with certain networks. For example, the authorization rules  161  may not apply to a client device  120  that is not located within the transmission range of any unknown network beacons and/or is not located within the transmission range of any network beacons associated with unknown networks. 
         [0043]    The access control service  174  may be executed to identify one or more client devices  120  that may potentially be authorized to access the network beacons. In certain embodiments, the access control service  174  identifies one or more client devices  120  that are located within the transmission range of the network beacons. In one embodiment, the access control service  174  may identify client devices  120  by receiving one or more requests  177  to access to the network beacons from the client devices  120 . The requests  177  may include a device profile  123  describing the state of the associated client device  120 , one or more user identifiers associated with the user of the client device  120 , and/or one or more device identifiers associated with the client device  120 . In another embodiment, the access control service  174  may identify client devices  120  that are located within one or more authorized locations associated with the network beacons. In yet another embodiment, the access control service  174  may identify client devices  120  whose current times are within one or more authorized windows associated with the network beacons. 
         [0044]    The access control service  174  may be executed to determine whether one or more identified client devices  120  may be authorized access to the network beacons. In certain embodiments, the access control service  174  may determine whether one or more client devices  120  may be authorized access to the network beacons based on one or more authorization rules  161  associated with the network beacons. For example, the access control service  174  may determine whether the client devices  120  satisfy the authorization rules  161  based at least in part on a device profile  123  associated with the client devices  120 . 
         [0045]    The access control service  174  may be executed to authorize one or more client devices  120  to access to the network beacons. In one embodiment, the access control service  174  may authorize a client device  120  by transmitting an authorization key to the client device  120  that allows the client device  120  to access the network beacons. In another embodiment, the access control service  174  may authorize a client device  120  by transmitting one or more resources  165  associated with the network beacons to the client device  120  that individually and/or collectively represent a key that may unlock access to the network beacons. In yet another embodiment, the access control service  174  may authorize a client device  120  by transmitting an indication to the network beacons that specifies that the client device  120  is authorized to access the network beacons. 
         [0046]    In certain embodiments, the access control service  174  may specify one or more access rights associated with the client devices  120  when the access control service  174  authorizes the client devices  120  to access the network beacons. In some embodiments, the access control service  174  may rely on one or more access lists to determine one or more specific access rights associated with the client devices  120  which the access control service  174  has determined are authorized to access the network beacons. The access rights may specify which data and/or services associated with the network beacons may be accessed by the client devices  120  associated with the access rights that have been determined to be authorized to access the network beacons. As an example, an administrator of the access control service  174  may predefine an access list including the identities of a group of client devices associated with an enterprise. Once the access control service  174  has determined that a given client device  120  is authorized to access the network beacons, the access control service  174  may, for example, determine whether the client device  120  is a member of the predefined access list of client devices  120  associated with the enterprise and, if so, assign the access rights associated with the enterprise to the client device  120 . 
         [0047]    The access control service  174  may be further executed to terminate the authorization of one or more client devices  120  to access to the network beacons. In certain embodiments, the access control service  174  may terminate the authorization of client devices  120  that do not satisfy the authorization rules  161  associated with the network beacons. For example, the access control service  174  may terminate the authorization of client devices  120  that are not located within an authorized range of the network beacons, that do not have resources  165  associated with the network beacons executed on the client device  120 , and that do not satisfy resource rules  171  associated with the resources  165 . In some embodiments, the access control service  174  may terminate the authorization of client devices  120  previously provided to the client devices  120  by the access control service  174  and/or another service controlling access to the network  110 . In one embodiment, the access control service  174  may terminate the authorization of client devices  120  by removing an authorization key from the client devices  120  that allows the client devices  120  to access the network beacons. In another embodiment, the access control service  174  may terminate the authorization of client devices  120  by removing one or more resources  165  from the client devices  120  that individually and/or collectively represent a key that allows the client device  120  to access to the network beacons. In yet another embodiment, the access control service  174  may terminate the authorization of client devices  120  by transmitting an indication to the network beacons that specifies that the client device  120  is no longer authorized to access the network beacons. 
         [0048]    The access control service  174  may be further executed to provide one or more authorized client devices  120  with access to a network  110  associated with the network beacons. In certain embodiments, the access control service  174  may represent a gateway to a network  110  associated with the network beacons. In one embodiment, the access control service  174  may be configured to provide client devices  120  with access to the network  110  if the client devices  120  are authorized to access the network beacons based on the authorization rules  161 . In another embodiment, the access control service  174  may be configured to block client device  120  from accessing the network  110  if the client devices  120  are not authorized to access the network beacons based on the authorization rules  161 . 
         [0049]      FIG. 2  is a flowchart illustrating exemplary functionality performed by a access control service  174  executed by a access control server ( FIG. 1 ) according to certain embodiments. It is understood that the flowchart of  FIG. 2  provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the access control service  174  as described herein. As an alternative, the flowchart of  FIG. 2  may be viewed as depicting an example of steps of a method implemented in the access control server  150  according to one or more embodiments. 
         [0050]    Beginning with step  203 , the access control service  174  may receive one or more requests  177  from one or more client devices  120  that request access to one or more network beacons. In certain embodiments, the requests  177  may include data that may assist the access control service  174  in determining whether the client devices  120  from which the requests  177  were received are authorized to access the network beacons. In one embodiment, the requests  177  may include one or more device profiles  123  associated with client devices  120 . In another embodiment, the requests  177  may include one or more user identifiers  132  associated with the client devices  120 . In yet another embodiment, the requests  177  may include one or more device identifiers  135  associated with the client devices  120 . 
         [0051]    Next, in step  206 , the access control service  174  may determine whether the client devices  120  from which the requests  177  were received are authorized to access the network beacons. In certain embodiments, the access control service  174  may determine whether the client devices  120  satisfy one or more authorization rules  161  ( FIG. 1 ) associated with the network beacons that must be satisfied by the client devices  120  in order for the client devices  120  to be authorized to access the network beacons. In one embodiment, the authorization rules  161  may require that one or more resources  165  associated with the network beacons be accessed by the client devices  120 , as described herein. In another embodiment, the authorization rules  161  may require that the client devices  120  are located within one or more authorized ranges associated with the network beacons. In yet another embodiment, the authorization rules  161  may require that the current times associated with the client devices  120  are within one or more authorized windows associated with the network beacons. 
         [0052]    If the access control service  174  determines that the client devices  120  do not satisfy the authorization rules  161  associated with the network beacons, then the access control service  174  may proceed to step  209  and may not authorize the client devices  120  to access the network beacons. In certain embodiments, the access control service  174  may transmit an indication to the client devices  120  and/or the network beacons specifying that the client devices  120  are not authorized to access the network beacons. In some embodiments, the access control service  174  may take no further action once it has been determined that the client devices  120  from which it received the requests  177  are not authorized to access the network beacons. 
         [0053]    On the contrary, if the access control service  174  determines that the client devices  120  do satisfy the authorization rules  161  associated with the network beacons, then the access control service  174  may proceed to step  212  and may authorize the client devices  120  to access the network beacons. In one embodiment, the access control service  174  may transmit an indication to the client devices  120  and/or the network beacons specifying that the client devices  120  are authorized to access the network beacons. In another embodiment, the access control service  174  may transmit one or more resources  165  associated with the network beacons to the client devices  120  that unlock access to the network beacons. 
         [0054]    Then, in step  215 , the access control service  174  may determine whether previously authorized client devices  120  continue to satisfy the authorization rules  161  associated with the network beacons. In certain embodiments, the access control service  174  may determine whether the client devices  120  satisfy the authorization rules  161  on a periodic basis. For example, an administrator of the access control service  174  may configure an interval upon which the access control service  174  determines whether the authorization rules  161  remain satisfied by the client devices  120 . 
         [0055]    If the access control service  174  determines that the authorization rules  161  remain satisfied by the client devices  120 , then the access control service  174  may return to the beginning of step  215  and may again perform step  215  on a configured interval. However, if the access control service  174  determines that the client devices  120  no longer satisfy the authorization rules  161  associated with the network beacons, the access control service  174  may proceed to step  218  and may terminate the authorization of the client devices  120  to access the network beacons. In one embodiment, the access control service  174  may transmit an indication to the client devices  120  and/or the network beacons specifying that the client devices  120  are not authorized to access the network beacons. In another embodiment, the access control service  174  may remove one or more resources  165  from the client devices  120  that are required in order for the client devices  120  to access the network beacons. 
         [0056]      FIG. 3  is a flowchart illustrating exemplary functionality performed by one or more client side applications  126  executed by one or more client devices  120  ( FIG. 1 ) according to certain embodiments. It is understood that the flowchart of  FIG. 3  provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the client side applications  126  as described herein. As an alternative, the flowchart of  FIG. 3  may be viewed as depicting an example of steps of a method implemented in the client devices  120  according to one or more embodiments. 
         [0057]    Beginning with step  303 , one or more client side applications  126  executed by one or more client devices  120  may transmit one or more requests  177  ( FIG. 1 ) to access one or more network beacons. In certain embodiments, the client side applications  126  may transmit the requests  177  to an access control service  174  ( FIG. 1 ), as described herein. In some embodiments, the requests  177  may include data that may indicate whether the client devices  120  are authorized to access the network beacons. In one embodiment, the requests  177  may include one or more device profiles  123  associated with client devices  120 . In another embodiment, the requests  177  may include one or more user identifiers  132  associated with the client devices  120 . In yet another embodiment, the requests  177  may include one or more device identifiers  135  associated with the client devices  120 . 
         [0058]    Next, in step  306 , the client devices  120  may receive one or more resources  165  associated with the network beacons. In certain embodiments, the client side applications  126  may receive the resources  165  from an access control service  174 . In some embodiments, the resources  165  may unlock access to the network beacons while the resources  165  are accessed by the client devices  120 . In any instance, the resources  165  may include, for example, settings-type resources  165  that may be activated on the client devices  120 , application-type resources  165  that may be installed and/or executed by the client devices  120 , and content-type resources  165  that may be stored and/or rendered on the client devices  120 . 
         [0059]    Then, in step  309 , the client side applications  126  may determine whether the client devices  120  are authorized to access the network beacons. In certain embodiments, the client side applications  126  may determine whether the client devices  120  satisfy one or more authorization rules  161  ( FIG. 1 ) associated with the network beacons. In one embodiment, the authorization rules  161  may require that one or more resources  165  associated with the network beacons be accessed by the client devices  120 , as described herein. In another embodiment, the authorization rules  161  may require that the client devices  120  are located within one or more authorized locations associated with the network beacons. In yet another embodiment, the authorization rules  161  may require that the current times associated with the client devices  120  are within one or more authorized windows associated with the network beacons. 
         [0060]    If the client side applications  126  determine that the client devices  120  are not authorized to access the network beacons, then the client side applications  126  may proceed to step  312  and may not access the network beacons. On the other hand, if the client side applications  126  determine that the client devices  120  are authorized to access the network beacons, then the client side applications  126  may proceed to step  315  and may access the network beacons on the client devices  120 . In certain embodiments, the client side applications  126  may provide the client devices  120  with access to the network beacons by facilitating a communicative connection between the client devices  120  and the network  110  via the network beacons. The client side applications  126  may, for instance, receive data on the client devices  120  from a network  110  associated with the network beacons and may transmit data from the client device  120  to the network  110  associated with the network beacons. 
         [0061]    Next, in step  318 , the client side applications  126  may determine whether the client devices  120  continue to satisfy the authorization rules  161  associated with the network beacons. In certain embodiments, the client side applications  126  may determine whether the client devices  120  satisfy the authorization rules  161  on a periodic basis. For example, an administrator of the client side applications  126  may configure an interval upon which the client side applications  126  may determine whether the authorization rules  161  are satisfied by the client devices  120  with access to the network beacons. 
         [0062]    If the client side applications  126  determine that the authorization rules  161  remain satisfied by the client devices  120 , then the client side applications  126  may return to the beginning of step  215  and may again perform step  215  on a configured interval. However, if the client side applications  126  determine that the client devices  120  no longer satisfy the authorization rules  161  associated with the network beacons, the client side applications  126  may proceed to step  321  and may cease access to the network beacons. In one embodiment, the client side applications  126  may cease access to the network beacons by blocking access to the network beacons. In another embodiment, the client side applications  126  may cease access to the network beacons by removing resources  165  from the client devices that are required to access the network beacons. In yet another embodiment, the client side applications  126  may transmit an indication to the network beacons that specifies that the client devices  120  are no longer authorized to access the network beacons. 
         [0063]    Then, in addition to ceasing access to the network beacons upon a determination that the client devices  120  do not satisfy the authorization rules  161  associated with the network beacons, the client side applications  126  may proceed to step  324  and remove one or more resources  165  associated with the network beacons from the client devices  120 . In certain embodiments, the client side applications  126  may delete the resources  165  associated with the network beacons from the client devices  120 . In some embodiments, the client side applications  126  may make the resources  165  inoperable while the client devices  120  do not satisfy the authorization rules  161  associated with the network beacons. In any instance, the client side applications  126  may stop the resources  165  from unlocking access to the network beacons. 
         [0064]      FIG. 4  is a flowchart illustrating exemplary functionality performed by one or more access control services  174  executed by one or more access control servers  150  ( FIG. 1 ) according to certain embodiments. It is understood that the flowchart of  FIG. 4  provides merely an example of the many different types of functional arrangements that may be employed to implement the operation of the access control service  174  as described herein. As an alternative, the flowchart of  FIG. 4  may be viewed as depicting an example of steps of a method implemented in the access control server  150  according to one or more embodiments. 
         [0065]    Beginning with step  403 , an access control service  174  may identify one or more client devices  120  located within one or more transmission ranges of one or more network beacons. In certain embodiments, the transmission ranges of the network beacons may include the area within which a client device  120  may transmit data to and/or receive data from the network beacons. In one embodiment, the access control service  174  may identify the locations of client devices  120  by requesting that the client devices  120  provide an indication of their respective locations. In another embodiment, the access control service  174  may identify the locations of client devices  120  from the device profiles  123  ( FIG. 1 ) associated with the client devices  120 . In any instance, the access control service  174  may identify client devices  120  located within the transmission ranges of the network beacons by determining whether the locations of the client devices  120  are within the transmission ranges of the network beacons. 
         [0066]    Next, in step  406 , the access control service  174  may determine whether the identified client devices  120  are authorized to access the network beacons. In certain embodiments, the access control service  174  may determine whether the client devices  120  satisfy one or more authorization rules  161  ( FIG. 1 ) associated with the network beacons. In one embodiment, the authorization rules  161  may require that one or more resources  165  associated with the network beacons be accessed by the client devices  120 . In another embodiment, the authorization rules  161  may require that the client devices  120  are located within one or more authorized ranges associated with the network beacons. In yet another embodiment, the authorization rules  161  may require that the current times associated with the client devices  120  are within one or more authorized windows associated with the network beacons. 
         [0067]    If the access control service  174  determines that the client devices  120  do not satisfy the authorization rules  161  associated with the network beacons, then the access control service  174  may proceed to step  409  and may not authorize the client devices  120  to access the network beacons. In certain embodiments, the access control service  174  may transmit an indication to the client devices  120  and/or the network beacons specifying that the client devices  120  are not authorized to access the network beacons. In some embodiments, the access control service  174  may take no further action once it has been determined that the identified client devices  120  are not authorized to access the network beacons. 
         [0068]    On the contrary, if the access control service  174  determines that the client devices  120  satisfy the authorization rules  161  associated with the network beacons, then the access control service  174  may proceed to step  412  and may transmit one or more resources  165  associated with the network beacons to the client devices  120 . In certain embodiments, the access control service  174  may transmit the resources  165  to one or more client side applications  126  ( FIG. 1 ) executed by the client devices  120 . The client side application  126  may be a containerized application, for example, that controls the manner in which the resources  165  may be accessed. For example, the client side application  126  may prohibit the resources  165  from being cut, copied, pasted, transmitted, screen captured, printed, and/or otherwise accessed outside of the containerized environment of the client side application  126 . In any instance, the resources  165  may include settings-type resources  165 , application-type resources  165 , and content-type resources  165 , as described herein. 
         [0069]    Then, in addition to transmitting resources  165  associated with the network beacons to the client devices  120  upon a determination that the client devices  120  satisfy the authorization rules  161  associated with the network beacons, the access control service  174  may proceed to step  415  and may authorize the client devices  120  to access the network beacons. In certain embodiments, the access control service  174  may authorize the client devices  120  to access the network beacons by transmitting an authorization key to the client devices  120  that allows the client devices  120  to unlock access the network beacons. In some embodiments, the resources  165  associated with the network beacons that were transmitted to the client devices in step  412  may individually and/or collectively unlock access to the network beacons. In other embodiments, the access control service  174  may authorize the client devices  120  by transmitting an indication to the network beacons that specifies that the client devices  120  are authorized to access the network beacons. 
         [0070]    Next, in step  418 , the access control service  174  may determine whether the client devices  120  continue to satisfy the authorization rules  161  associated with the network beacons. In certain embodiments, the access control service  174  may determine whether the client devices  120  satisfy the authorization rules  161  on a periodic basis. For example, an administrator of the access control service  174  may configure an interval upon which the access control service  174  may determine whether the authorization rules  161  are satisfied by the client devices  120 . 
         [0071]    If the access control service  174  determines that the authorization rules  161  remain satisfied by the client devices  120 , then the access control service  174  may return to the beginning of step  215  and may again perform step  215  on a configured interval. However, if the access control service  174  determines that the client devices  120  no longer satisfy the authorization rules  161  associated with the network beacons, the access control service  174  may proceed to step  421  and may terminate the authorization of the client devices  120  to access the network beacons. In one embodiment, the access control service  174  may transmit one or more instructions to the client devices  120  that block access to the network beacons. In another embodiment, the access control service  174  may disable one or more resources  165  on the client devices  120  that are required to access the network beacons. In yet another embodiment, the access control service  174  may terminate the authorization of the client devices  120  by transmitting an indication to the network beacons that specifies that the client devices  120  are no longer authorized to access the network beacons. 
         [0072]    Then, in addition to terminating the authorization of the client devices  120  to access the network beacons upon a determination that the client devices  120  do not satisfy the authorization rules  161  associated with the network beacons, the access control service  174  may proceed to step  424  and may remove one or more resources  165  associated with the network beacons from the client devices  120 . In certain embodiments, the access control service  174  may delete the resources  165  associated with the network beacons from the client devices  120 . In some embodiments, the access control service  174  may disable the resources  165  while the client devices  120  do not satisfy the authorization rules  161  associated with the network beacons. In any instance, the access control service  174  may stop the resources  165  from unlocking access to the network beacons. 
         [0073]      FIG. 5  shows schematic block diagrams of an exemplary access control server  150  and an exemplary client device  120  according to an embodiment of the present disclosure. The access control server  150  includes at least one processor circuit, for example, having a processor  503  and a memory  506 , both of which are coupled to a local interface  509 . To this end, the access control server  150  may comprise, for example, at least one server computer or like device. Similarly, the client device  120  includes at least one processor circuit, for example, having a processor  553  and a memory  556 , both of which are coupled to a local interface  559 . Additionally, the client device  120  may be in data communication with a display  136  for rendering user interfaces  137  ( FIG. 1 ) and one or more other I/O devices  563  for inputting and outputting data. To this end, the client device  120  may comprise, for example, at least one client computer or like device. 
         [0074]    The following is a general discussion of the components of the access control server  150  and the client device  120 . The local interface  509  and  559  may comprise, for example, a data bus with an accompanying address/control bus or other bus structure as can be appreciated. Stored in the memory  506  and  556  are both data and several components that are executable by the processors  503  and  553 . In particular, with regard to the access control server  150 , stored in the memory  506  and executable by the processor  503  are an access control service  174  and potentially other applications. Additionally, with regard to the client device  120 , stored in the memory  556  and executable by the processor  553  are a client side application  126  and potentially other applications. Also stored in the memory  506  and  556  may be a data store  153  and  122  and other data. In addition, an operating system may be stored in the memory  506  and  556  and executable by the processor  503  and  553 . It is to be understood that there may be other applications that are stored in the memory  506  and  556  and are executable by the processor  503  and  553  as can be appreciated. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages may be employed such as, for example, C, C++, C#, Objective C, Java, JavaScript, Perl, PHP, Visual Basic, Python, Ruby, Delphi, Flash, or other programming languages. 
         [0075]    A number of software components are stored in the memory  506  and  556  and are executable by the processor  503  and  553 . In this respect, the term “executable” means a program file that is in a form that can ultimately be run by the processor  503  and  553 . Examples of executable programs 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 the memory  506  and  556  and run by the processor  503  and  553 , source code that may be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory  506  and  556  and executed by the processor  503  and  553 , or source code that may be interpreted by another executable program to generate instructions in a random access portion of the memory  506  and  556  to be executed by the processor  503  and  553 , etc. An executable program may be stored in any portion or component of the memory  506  and  556  including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components. 
         [0076]    The memory  506  and  556  are defined herein as including 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 are those that retain data upon a loss of power. Thus, the memory  506  and  556  may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, or a combination of any two or more of these memory components. In addition, the RAM may comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The 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. 
         [0077]    Also, the processor  503  and  553  may represent multiple processors, and the memory  506  and  556  may represent multiple memories that operate in parallel processing circuits, respectively. In such a case, the local interface  509  and  559  may be an appropriate network  110  ( FIG. 1 ) that facilitates communication between any two of the multiple processors  503  and  553 , or between any two of the memory  506  and  556 , etc. The local interface  509  and  559  may comprise additional systems designed to coordinate this communication, including, for example, performing load balancing. The processor  503  and  553  may be of electrical or of some other available construction. 
         [0078]    Although the access control service  174 , client side application  126 , and other various systems described herein may be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same may also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit 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 one or more data signals, application specific integrated circuits having appropriate logic gates, or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein. 
         [0079]    The flowcharts of  FIGS. 2 ,  3 , and  4  show certain functionality and operations performed by the access control service  174  and client side application  126 , 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 a processor  503  and  553  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). 
         [0080]    Although the flowcharts of  FIGS. 2 ,  3 , and  4  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  FIGS. 2 ,  3 , and  4  may be executed concurrently or with partial concurrence. Further, in some embodiments, one or more of the steps shown in  FIGS. 2 ,  3 , and  4  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. 
         [0081]    Also, any logic or application described herein, including the access control service  174  and the client side application  126 , that comprises software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor  503  and  553  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 the instruction execution system. In the context of the present disclosure, a “computer-readable medium” can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution 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 would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium may be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). In addition, 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. 
         [0082]    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 protected by the following claims.