Browser plugin for Linux to SSO on Microsoft Entra ID using a locally running microsoft identity broker (Intune).
JavaScript
217
377 commits
updated Sep 23, 2026
This browser extension uses a locally running Microsoft Identity Broker to authenticate the current user on Microsoft Entra ID on Linux devices. By that, also sites behind conditional access policies can be accessed. The extension is written for Firefox but provides a limited support for Google Chrome, Chromium and Thunderbird.
[!NOTE] This extension will only work on intune-enabled Linux devices. Please double check this by running the
intune-portalapplication and check if your user is logged in (after clickingsign-in).
The extension consists of two parts:
The extension requires PyGObject and pydbus as runtime dependencies.
sudo apt-get install python3-gi python3-pydbussudo pacman -S python-gobject python-pydbusasdf you must install the Python packages manually: pip install PyGObject pydbus$ git clone https://github.com/siemens/linux-entra-sso.git
$ cd linux-entra-sso
$ # Firefox & Thunderbird
$ make local-install-firefox
$ # Chromium, Chrome and Brave
$ make local-install-(brave|chrome|chromium|vivaldi)
$ # All supported browsers
$ make local-install
[!NOTE] System-wide installation and configuration is supported. For more information, see Global Install.
To complete the setup, install the WebExtension in your browser. This is necessary alongside the host tooling for the extension to function properly.
Firefox & Thunderbird: Signed Version from GitHub Releases:
Install the signed webextension linux_entra_sso-<version>.xpi from the project's releases page.
If you are installing for Thunderbird, right-click the link and select "Save Link As..." to avoid installing it in Firefox.
Chromium, Chrome & Brave: Signed Extension from Chrome Web Store: Install the signed browser extension from the Chrome Web Store.
Development Version and Other Browsers: If you want to execute unsigned versions of the extension (e.g. test builds) on Firefox, you have to use either Firefox ESR, nightly or developer, as standard Firefox does not allow installing unsigned extensions since version 48.
To build the extension, perform the following steps:
make to build the extension (For Firefox, build/<platform>/linux-entra-sso-*.xpi is generated)xpinstall.signatures.required to falseDeveloper mode.linux-entra-sso-*.xpi file (Firefox). On Chrome, use load unpacked and point to build/chromeAfter installing the extension, you might need to manually grant the following permission:
https://login.microsoftonline.com.No configuration is required. The SSO is automatically enabled.
If you want to disable the SSO for this session, click on the tray icon and select the guest account.
In case you are already logged in, you might need to clear all cookies on login.microsoftonline.com.
For single-page applications (SPAs, like the Teams PWA) that perform automated re-logins in the background, ensure the extension has the necessary permissions to interact with the SPA's domain. Otherwise, a manual re-login after approximately 24 hours (depending on the tenant's configuration) may be required.
To grant the necessary permissions, follow these steps:
Once configured, no further authentication requests will be needed. To revoke permissions, return to the extension's settings and select the domain again. For details, also see PRIVACY.md.
When enabled, the extension acquires a PRT SSO Cookie
from the locally running microsoft-identity-broker service and inject that into the OAuth2 login flow on Microsoft Entra ID (login.microsoftonline.com).
Running the extension in a Snap Firefox on Ubuntu 22.04 or later is supported but requires the xdg-desktop-portal host package and at least Firefox 104.
After installing the extension (both native and web extension part), restart the browser.
When Firefox starts, a message should appear to allow Firefox to use the WebExtension backend.
Once granted, the application should behave as on a native install.
An alternative is to use the firefox-esr Debian package.
Browsers installed as Flatpak are not officially supported, as they run in a sandbox that isolates them from the native messaging host.
They may work when the xdg-native-messaging-proxy
is used to bridge into the sandbox, but this relies on several conditions that are beyond the control of linux-entra-sso.
In case the extension is not working, check the following:
python3 ./linux-entra-sso.py --interactive acquirePrtSsoCookieSince version v0.4, git release tags are signed with one of the following maintainer GPG keys:
AF73F6EF5A53CFE304569F50E648A311F67A50FC (Felix Moessbauer)004C647D7572CF7D72BDB4FB699D850A9F417BD8 (Jan Kiszka)Since version v1.8.0, the following keys are used:
3785ED68D0F83B7BD7D23D7FE1136CEB2754A0BD (Felix Moessbauer)004C647D7572CF7D72BDB4FB699D850A9F417BD8 (Jan Kiszka)This project is licensed according to the terms of the Mozilla Public
License, v. 2.0. A copy of the license is provided in LICENSES/MPL-2.0.txt.
JavaScript
64.9%
Python
15.7%
Makefile
11.4%
CSS
4.4%
HTML
3.6%
Browser plugin for Linux to SSO on Microsoft Entra ID using a locally running microsoft identity broker (Intune).
JavaScript
217
377 commits
updated Sep 23, 2026
This browser extension uses a locally running Microsoft Identity Broker to authenticate the current user on Microsoft Entra ID on Linux devices. By that, also sites behind conditional access policies can be accessed. The extension is written for Firefox but provides a limited support for Google Chrome, Chromium and Thunderbird.
[!NOTE] This extension will only work on intune-enabled Linux devices. Please double check this by running the
intune-portalapplication and check if your user is logged in (after clickingsign-in).
The extension consists of two parts:
The extension requires PyGObject and pydbus as runtime dependencies.
sudo apt-get install python3-gi python3-pydbussudo pacman -S python-gobject python-pydbusasdf you must install the Python packages manually: pip install PyGObject pydbus$ git clone https://github.com/siemens/linux-entra-sso.git
$ cd linux-entra-sso
$ # Firefox & Thunderbird
$ make local-install-firefox
$ # Chromium, Chrome and Brave
$ make local-install-(brave|chrome|chromium|vivaldi)
$ # All supported browsers
$ make local-install
[!NOTE] System-wide installation and configuration is supported. For more information, see Global Install.
To complete the setup, install the WebExtension in your browser. This is necessary alongside the host tooling for the extension to function properly.
Firefox & Thunderbird: Signed Version from GitHub Releases:
Install the signed webextension linux_entra_sso-<version>.xpi from the project's releases page.
If you are installing for Thunderbird, right-click the link and select "Save Link As..." to avoid installing it in Firefox.
Chromium, Chrome & Brave: Signed Extension from Chrome Web Store: Install the signed browser extension from the Chrome Web Store.
Development Version and Other Browsers: If you want to execute unsigned versions of the extension (e.g. test builds) on Firefox, you have to use either Firefox ESR, nightly or developer, as standard Firefox does not allow installing unsigned extensions since version 48.
To build the extension, perform the following steps:
make to build the extension (For Firefox, build/<platform>/linux-entra-sso-*.xpi is generated)xpinstall.signatures.required to falseDeveloper mode.linux-entra-sso-*.xpi file (Firefox). On Chrome, use load unpacked and point to build/chromeAfter installing the extension, you might need to manually grant the following permission:
https://login.microsoftonline.com.No configuration is required. The SSO is automatically enabled.
If you want to disable the SSO for this session, click on the tray icon and select the guest account.
In case you are already logged in, you might need to clear all cookies on login.microsoftonline.com.
For single-page applications (SPAs, like the Teams PWA) that perform automated re-logins in the background, ensure the extension has the necessary permissions to interact with the SPA's domain. Otherwise, a manual re-login after approximately 24 hours (depending on the tenant's configuration) may be required.
To grant the necessary permissions, follow these steps:
Once configured, no further authentication requests will be needed. To revoke permissions, return to the extension's settings and select the domain again. For details, also see PRIVACY.md.
When enabled, the extension acquires a PRT SSO Cookie
from the locally running microsoft-identity-broker service and inject that into the OAuth2 login flow on Microsoft Entra ID (login.microsoftonline.com).
Running the extension in a Snap Firefox on Ubuntu 22.04 or later is supported but requires the xdg-desktop-portal host package and at least Firefox 104.
After installing the extension (both native and web extension part), restart the browser.
When Firefox starts, a message should appear to allow Firefox to use the WebExtension backend.
Once granted, the application should behave as on a native install.
An alternative is to use the firefox-esr Debian package.
Browsers installed as Flatpak are not officially supported, as they run in a sandbox that isolates them from the native messaging host.
They may work when the xdg-native-messaging-proxy
is used to bridge into the sandbox, but this relies on several conditions that are beyond the control of linux-entra-sso.
In case the extension is not working, check the following:
python3 ./linux-entra-sso.py --interactive acquirePrtSsoCookieSince version v0.4, git release tags are signed with one of the following maintainer GPG keys:
AF73F6EF5A53CFE304569F50E648A311F67A50FC (Felix Moessbauer)004C647D7572CF7D72BDB4FB699D850A9F417BD8 (Jan Kiszka)Since version v1.8.0, the following keys are used:
3785ED68D0F83B7BD7D23D7FE1136CEB2754A0BD (Felix Moessbauer)004C647D7572CF7D72BDB4FB699D850A9F417BD8 (Jan Kiszka)This project is licensed according to the terms of the Mozilla Public
License, v. 2.0. A copy of the license is provided in LICENSES/MPL-2.0.txt.
JavaScript
64.9%
Python
15.7%
Makefile
11.4%
CSS
4.4%
HTML
3.6%