linux-entra-sso:实现Linux设备上Microsoft Entra ID SSO的浏览器扩展
项目介绍
linux-entra-sso
是一个浏览器扩展,它利用本地运行的 Microsoft Identity Broker 来在 Linux 设备上对 Microsoft Entra ID 进行用户身份验证。通过这种方式,用户还可以访问受条件访问策略保护的网站。此扩展主要针对 Firefox 开发,但也提供了对 Google Chrome 和 Chromium 的有限支持。
项目技术分析
linux-entra-sso
使用了多种技术来实现其核心功能。它依赖于 PyGObject
和 pydbus
作为运行时依赖项,通过这些库与本地运行的 microsoft-identity-broker
服务进行通信。此外,它还通过注入 PRT SSO Cookie 来简化 OAuth2 登录流程。
技术细节
- PyGObject:用于与本地系统进行交互,例如调用本地服务和执行系统级别的任务。
- pydbus:允许扩展通过 D-Bus 协议与
microsoft-identity-broker
服务进行通信。 - PRT SSO Cookie:用于在 OAuth2 登录流程中验证用户身份。
项目及技术应用场景
linux-entra-sso
适用于需要通过 Microsoft Entra ID 实现单点登录(SSO)的 Linux 设备用户。以下是一些具体的应用场景:
- 企业环境:在需要集中身份验证和管理的企业环境中,
linux-entra-sso
可以简化用户登录流程。 - 多云环境:在多云架构中,用户可能需要频繁切换不同的云平台,
linux-entra-sso
可以提供无缝的登录体验。 - 开发与测试:开发人员可以在本地环境中使用
linux-entra-sso
来测试集成 Microsoft Entra ID 的应用程序。
项目特点
linux-entra-sso
拥有以下显著特点:
- 跨浏览器支持:尽管主要针对 Firefox 开发,但
linux-entra-sso
也提供了对 Chrome 和 Chromium 的有限支持。 - 自动启用SSO:安装后,SSO 功能将自动启用,无需用户手动配置。
- 易于安装:项目提供了详细的安装指南,支持多种 Linux 发行版。
- 代码完整性:自版本
v0.4
起,项目的 Git 发布标签已经使用维护者的 GPG 密钥进行了签名,确保代码的完整性。
安装流程
Firefox
- 克隆项目仓库。
- 运行
make local-install-firefox
命令。 - 从项目的发布页面获取
linux_entra_sso-<version>.xpi
文件。 - 在扩展权限中启用 “访问
https://login.microsoftonline.com
的数据”。
Chrome
- 克隆项目仓库。
- 运行
make local-install-chrome
命令。 - 从 Chrome Web Store 安装
linux-entra-sso
扩展。
使用说明
安装后,SSO 功能将自动启用。如果需要禁用 SSO,可以点击托盘图标并选择访客账户。如果已经登录,可能需要清除 login.microsoftonline.com
上的所有 cookies。
技术背景
当启用时,扩展会从本地运行的 microsoft-identity-broker
服务中获取 PRT SSO Cookie,并将其注入到 Microsoft Entra ID 的 OAuth2 登录流程中。
已知限制
- 不支持 SNAP 版本的 Firefox。
- Chrome 版本可能会因为 token 过期而导致问题。
故障排除
如果扩展不起作用,可以尝试以下步骤:
- 以交互模式运行宿主组件:
python3 ./linux-entra-sso.py --interactive acquirePrtSsoCookie
。 - 检查 Edge 浏览器中的 SSO 是否正常工作。
通过上述分析和特点介绍,linux-entra-sso
作为一个开源项目,为 Linux 用户提供了方便的 Microsoft Entra ID SSO 解决方案,适用于多种场景,是提高企业安全性和用户体验的理想选择。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考