I am developing an Android Device Management (Enterprise) application. One of the requirements given to me was to block all the applications on the device (Tablets) from using cellular data except the applications installed by the organisation. The devices may have Lollipop or lower versions and there are approximately 100,000 devices (so, rooting them is not preferred/almost impossible). I have looked up on the internet regarding this and a non-root solution I found was to use the VPN service provided by Android.
My idea is to have a VPN server (like openVpn) and have some restrictions (firewall) that block certain urls. I am not sure if this is a viable solution considering that the devices use cellular data in rural areas of India and the network is not exactly super strong and connecting to the VPN server every time would be extra load. I would like to understand if there are better ways to restrict apps from using data.