Connecting Linux to Windows RDP with Azure AD / Entra ID (MFA Guide)

Many modern enterprises have shifted their remote desktop infrastructure to rely on Microsoft Entra ID (formerly Azure Active Directory) for authentication. While connecting to these endpoints from a Windows machine is straightforward, doing so from a Linux system has historically been a significant challenge.

In this guide, we will walk you through the system requirements and configuration steps to establish a secure Remote Desktop Protocol (RDP) connection to an Entra ID-joined machine using Vessel RDP on Linux.

Why Entra ID (Azure AD) RDP is Different

Traditional RDP clients rely on standard Network Level Authentication (NLA) with regular username/password credentials. However, when a target Windows machine is joined to Azure AD:

  1. Authentication requires modern authentication protocols (OAuth 2.0 / SAML).
  2. It often requires Multi-Factor Authentication (MFA), such as a code from the Microsoft Authenticator app or a security key.
  3. The RDP client must spawn a secure local web browser view to render the Microsoft login portal and capture the resulting security token.

Vessel RDP solves this by building a native webview helper using Slint and GTK libraries, allowing you to authenticate seamlessly.

Prerequisites & System Setup

To render the secure Microsoft MFA login windows, your Linux distribution requires a web browser integration library (webkit2gtk-4.1). If this library is missing, the authentication window will fail to open.

Run the appropriate command for your Linux distribution to install WebKitGTK and GTK3:

# Ubuntu / Debian
sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0 libfuse2

# Fedora / RHEL
sudo dnf install gtk3 webkit2gtk4.1 fuse

# Arch Linux
sudo pacman -S gtk3 webkit2gtk-4.1 fuse2

[!NOTE] If you are using NixOS, ensure that both webkit2gtk-4.1 and gtk3 are present in your environment.systemPackages or wrapped appropriately.

Step-by-Step Connection Configuration

Once your system libraries are set up, follow these steps to configure your remote connection:

1. Create a New Server Profile

Open Vessel RDP, click the Add Server (+) button in the sidebar, and specify a descriptive name.

2. Configure Credentials

In the connection inspector panel:

  • Server Address: Input the IP or hostname of the target machine.
  • Username: Enter your full corporate email address associated with Azure AD (e.g., [email protected]). Do not use legacy NT formats like AzureAD\yourname.

3. Change Security Protocol

Locate the Security Protocol option. By default, it is set to Auto. Click the dropdown and change it to AAD (Azure Active Directory).

Protocol Settings:
+-------------------+
| Security:   [AAD] |
+-------------------+

4. Connect and Complete MFA

Click Connect. A separate, secure Microsoft login window will appear.

  1. Enter your password.
  2. Complete your corporate Multi-Factor Authentication challenge (Authenticator app approval, SMS, or hardware token).
  3. Upon successful verification, the pop-up window will close automatically, and your Windows remote desktop session will launch in a new tab inside Vessel RDP.

Best Practices & Troubleshooting

  • Clipboard & Audio Redirection: Ensure that clipboard sync and audio redirection are toggled on in the inspector panel before you connect, as these cannot be changed mid-session.
  • FUSE Errors: If you run Vessel RDP as an AppImage and it fails with FUSE filesystem errors, extract and run the app manually using:
    ./VesselRDP-x86_64.appimage --appimage-extract-and-run

For further assistance, check out our comprehensive User Guide or contact Support.

Get Vessel RDP Today

Connect securely with Microsoft Entra ID (Azure AD), manage multiple tabs, and experience instant cursor responsiveness on Linux.