So long story short, in our company, some people use Windows, and some people use Linux. We want to use VPN for those who work remotely.
For Windows, Microsoft does provide the Azure VPN Client to authenticate with Azure Active Directory using and .xml file (at least it's what being used in the company). Problem is that Client does not support Ubuntu (Or any Linux Distro for that matter).
So my boss tell me to look into this to see how difficult it is to build our in-house software to authenticate with the same .xml file for the VPN so that it can work on both Windows and Ubuntu. So, yeah, I am a Rust lover and just doing some research.
Anybody working with Azure Active Directory Authentication or VPN can provide some input? Thank you.
I don't know what network protocol their VPN client uses. If it's something standard, there could be a library for it. If not a Rust library, then a C library that you could use via FFI. There is some radius client for Rust.
VPNs are definitely doable. There's a WireGuard implementation. If you're going to develop something from scratch, it will be a big committent.
According to this post on the Microsoft forums, Azure VPN is only officially supported on Windows 10 and Mac OS.
So even if you were to develop your own VPN client, you would be left to resolve any technical problems on your own.
I don't understand all the constraints you are under, but my instinct would be to avoid writing your own client and try to find an off-the-shelf solution if possible. Linux users might be more comfortable SSHing into a machine on your office network, for example.