Connecting to an Azure/Entra Joined Windows Machine from Linux

themew21 pts0 comments

GitHub - themew2/FreeRDP-to-Entra-Connected-Windows-Device: Sets up FreeRDP to allow RDP connections to Azure/Entra Joined Windows Machine · GitHub

/" data-turbo-transient="true" />

Skip to content

Search/

Sign in<br>Sign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

themew2

FreeRDP-to-Entra-Connected-Windows-Device

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Latest commit

History<br>12 Commits<br>12 Commits

Folders and files<br>NameNameLast commit message<br>Last commit date<br>.gitignore

.gitignore

LICENSE

LICENSE

README.md

README.md

rdp-aad.sh

rdp-aad.sh

View all files

Repository files navigation

FreeRDP + Entra ID (AAD) Native Webview Auth on Fedora/Nobara

Building FreeRDP from source with native Entra ID (Azure AD) webview authentication support — the Linux equivalent of Windows' "Use a web account to sign in to the remote computer" checkbox in mstsc.exe.

The distro-packaged freerdp ships without the native in-app login popup — you get a URL printed to the terminal instead, requiring manual copy/paste of the redirect URL after signing in through an external browser. This guide builds FreeRDP with WITH_WEBVIEW=ON to get the real, native popup experience.

Requirements

Before doing anything else, clone FreeRDP and check what you actually have — this guide requires a recent build with WITH_WEBVIEW and AAD support, which are not present in older release tags.

git clone https://github.com/FreeRDP/FreeRDP.git<br>cd FreeRDP<br>git log -1 --format="%H %ci"<br>grep -r "WITH_WEBVIEW" client/SDL/common/aad/CMakeLists.txt

The problem with the stock package

xfreerdp /buildconfig | tr ' ' '\n' | grep -i webview

shows WITH_WEBVIEW=OFF on most distro packages.

What to look for:

The grep command should return a match (option(WITH_WEBVIEW ...)). If it returns nothing, you've checked out a version that predates this feature entirely — stay on the master branch (don't check out a release tag) and pull the latest commits instead.

This guide was built and tested against commit 220f9400e (reported as FreeRDP version 3.30.1-dev0 via --version once built). Anything reasonably close to this on master should work; older tagged releases (3.0.x-3.x early releases) will not.

Once confirmed, continue to the dependency install below.

Step 1 — Install build dependencies

sudo dnf install cmake ninja-build gcc-c++ git \<br>systemd-devel libuuid-devel pulseaudio-libs-devel \<br>libXrandr-devel gsm-devel pam-devel fuse3-devel \<br>opus-devel lame-devel openssl-devel libX11-devel \<br>libXext-devel libXinerama-devel libXcursor-devel \<br>libXi-devel libXdamage-devel libXv-devel libxkbfile-devel \<br>alsa-lib-devel openh264-devel libavcodec-free-devel \<br>libavformat-free-devel libavutil-free-devel \<br>libswresample-free-devel libswscale-free-devel \<br>libusb1-devel uriparser-devel SDL2-devel SDL2_ttf-devel \<br>pkcs11-helper-devel krb5-devel cjson-devel cairo-devel \<br>soxr-devel wayland-devel wayland-protocols-devel \<br>cups-devel webkitgtk6.0-devel

Key package: webkitgtk6.0-devel — FreeRDP's webview feature pulls in a small external helper library (akallabeth/webview via CMake FetchContent) which searches for WebKitGTK in this priority order: webkitgtk-6.0 → webkit2gtk-4.1 → webkit2gtk-4.0. Current Fedora has deprecated webkit2gtk-4.0, but webkitgtk-6.0 (GTK4-based) works fine.

FreeRDP master/dev branch — this was built and tested against FreeRDP 3.30.1-dev0 (commit 220f9400e). The WITH_WEBVIEW build option and the /azure: AAD flag are relatively recent additions, so an older release tag (anything pre-3.x, or early 3.x releases) may not have these features at all.

Confirm your cloned version supports what you need before building:

cd FreeRDP<br>git log -1 --oneline<br>grep -r "WITH_WEBVIEW" client/SDL/common/aad/CMakeLists.txt

If that grep returns nothing, you've cloned a version that predates this feature — pull the latest master branch instead of a specific release tag.

Step 2 — Clone and configure (SDL3 client, webview, AAD, and PulseAudio all enabled)

git clone https://github.com/FreeRDP/FreeRDP.git<br>cd FreeRDP<br>mkdir build && cd build<br>cmake -GNinja -DWITH_WEBVIEW=ON -DWITH_CLIENT_SDL=ON -DWITH_CLIENT_SDL3=ON -DWITH_CLIENT_SDL2=OFF -DWITH_AAD=ON -DWITH_PULSE=ON ..

Confirm before building:

grep -i "webview\|gtk4\|SDL3\|PULSE" CMakeCache.txt

Step 3 — Build

ninja

Step 4 — Find the binary

find . -iname "*freerdp*" -executable -type f

Lands at ./client/SDL/SDL3/sdl-freerdp.

Step 5 — Connect

/sec:aad \<br>/azure:tenantid: \<br>/u:@.com \<br>/cert:ignore \<br>/f \<br>/w:2560 \<br>/h:1440 \<br>/clipboard \<br>/microphone:sys:pulse \<br>/sound:sys:pulse">./client/SDL/SDL3/sdl-freerdp \<br>/v: \<br>/sec:aad \<br>/azure:tenantid: \<br>/u:@.com \<br>/cert:ignore \<br>/f...

devel freerdp webview with_webview build azure

Related Articles