1. A computing device comprising at least one processor and at least one memory storing program code, the memory and program code being configured to, with the at least one processor, cause the computing device to at least: receive, from a client device, a request to access a distribution service associated with a plurality of resources; determine whether the client device is authorized to access the distribution service; determine, in response to the determination that the client device is authorized to access the distribution service, one or more resources of the plurality of the resources that are approved for the provision to the client device by at least: identifying one or more resource grouping identifiers associated with the client device or a user of the client device; identifying, based at least in part on the identified one or more resource grouping identifiers, one or more particular resources associated with the one or more resource grouping identifiers, and determining, for each of the particular resources, whether the client device complies with one or more distribution rules respectively associated with the particular resources, wherein at least one of the distribution rules specifies that the received resources may be accessed only by authorized applications; cause the one or more resources approved for the provision to the client device to be provided to the client device; and responsive to detecting an attempt to access the received resources by an unauthorized application, blocking the access by the unauthorized application.