How feasible it is to create something like Azure VPN Client in Rust

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.

2 Likes

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.

2 Likes

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.