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...