单点登录改进 Fedora 24

多少次你希望你周围的一切都更聪明一点? 当你带着一袋袋杂货进来时,一扇门会自动打开。 当您介入时,灯会亮起。登录到桌面后,无需连续输入两次密码即可解锁您的电子邮件。

在过去的十年中,家庭自动化有了很大的改进。 每年都有许多传感器和智能开关更便宜、更容易使用。 为了 example,芬兰的办公室和购物中心多年来一直自动开门。 当我深入编码或调试会话时,我办公室的灯会关闭以节省电力。 黑暗是我在椅子上不动的结果,好像我冻僵了,或者需要被踢出去跑步。

将单点登录安装到拼图中

然而,我们的工具的单点登录和自动配置仍然是一个愿望。 在企业环境中,Linux 系统往往需要管理员提前进行配置,让用户做到这一点:使用所有可用资源。 有无数令人困惑的文章、博客文章和论坛悲剧,其中一个可怜的灵魂征服了 Kerberos、LDAP、网络文件或打印服务的世界。 陌生人给出建议,并在尝试遵循建议时露出邪恶的笑容。 这让最初的人希望它自己工作。

自 2009 年以来, Fedora 开始打包 固态硬盘. 从 2011 年开始, 免费IPA 也出现在 Fedora. 这两个项目试图解开企业协议的复杂性。 结合 LDAP, Kerberos、DNS、独立的证书颁发机构和漂亮的用户界面,FreeIPA 将一套工具组合在一起,可以在 10-15 分钟内推出完全基于免费软件的企业基础设施。 另一方面,SSSD 使从客户端计算机登录 FreeIPA 成为可能,在这些计算机中,访问权限集中管理并在本地应用。 尽管如此,管理员仍需要从命令行手动注册客户端计算机以允许其使用,并且也需要手动配置应用程序。

从 GUI 添加机器

Fedora 18 和 19 带来了另一项改进:现在可以从图形界面将客户端计算机注册到 Active Directory 和 FreeIPA。 大多数细节都是自动发现的。 您只需要一个域名和一个帐户。 仍然需要密码来配置对应用程序的访问,但对于某些在线资源,GNOME 确实获得了在中心位置配置访问的能力。 这发生在 GNOME 在线帐户. 电子邮件访问以及对文件存储的远程访问现在只需添加一个在线帐户即可。

访问这些远程资源的权利通常被授予一两个星期。 访问权限过期后,您需要重新输入密码才能获得新的授权。 对于经常使用 Kerberos 身份验证的企业资源,由于 Kerberos 票证的发放方式,访问需要每二十四小时(或更少)进行一次授权延期。 虽然 Kerberos 协议允许及时更新票证,并且 SSSD 能够在登录(或屏幕保护程序解锁)时更新票证,但 GNOME 在线帐户中的大多数帐户类型都没有使用此功能。

在云的世界里

在云世界中,大多数远程应用程序倾向于使用 HTTP 或 HTTPS 协议与您的计算机进行通信。 这适用于浏览器,它假设有人在那里,盯着屏幕,回答问题或点击按钮。 一些应用程序不仅支持基于密码的身份验证。 特别是,将身份验证过程中继到另一个应用程序变得非常普遍。 Web 应用程序经常要求“社交网络”登录。 这会将密码检查委托给现有的远程源。 在很多情况下,这是为了 Facebook、Google 或您自己的企业门户。

企业门户通常支持 Kerberos。 这意味着如果您拥有有效的 Kerberos 票证,您的计算机可以与企业门户通信并自动交换身份验证详细信息。 然后,门户会发出一个会话令牌,原始应用程序可以使用该令牌与您一起工作。

libsoup 帮助实现单点登录

自 2009 年以来,GNOME 应用程序无法在此类环境中享受一流的体验。 大多数(如果不是全部)使用 库汤 用于通过 HTTP 或 HTTPS 协议进行的网络通信。 2009 年,libsoup 失去了支持“协商”身份验证的能力。 这包括 Kerberos 和 NTLMSSP 协议。 花了将近七年的时间才得到正确的实施。 这是跨多个 Linux 发行版的许多人的共同努力。

随着 GNOME 3.20 发布 2016 年 3 月下旬,libsoup 添加了协商身份验证支持 再次。 如果应用程序直接使用 libsoup,它们可以请求以透明方式使用 Kerberos 或 NTLMSSP 凭据进行身份验证。 然而,许多应用程序并不直接使用 libsoup。 相反,他们使用称为 WebkitGTK+ 的 HTML 引擎。 WebkitGTK+ 是 改变了 如果通过 HTTPS 访问网站,也可以使用 libsoup 的协商功能。

总之,这项工作实现了一个看似简单的功能。 如果一个 Fedora 24客户端注册了FreeIPA或者Active Directory,用户可以直接去 顿悟浏览器 到任何支持 Kerberos 的公司网站。 通过登录系统,用户无需再次输入任何密码即可登录。 真正的单点登录现在已经到位,除了系统的原始注册之外没有其他配置。

使用 Yubikey 单点登录

在与红帽桌面团队合作进行这些改进时,我录制了几个视频来展示如何使用单点登录 Fedora 在真实生活中。 视频中展示的所有功能现在都可以通过 Fedora 24 Beta,尽管您可以通过艺术品看到它是用补丁展示的 Fedora 23系统。 2016 年 2 月 Fedora 24 还没有。

第一个演示 显示如何登录 Fedora 工作站作为 FreeIPA 部署中的用户。 首先使用密码,然后使用双因素身份验证。 在 Kerberos 代理的帮助下直接通过 Internet 登录后,SSSD 会获得 Kerberos 票证。 同一张票用于(无需密码)加入 OpenConnect VPN。 由于我们是公司环境的一部分,我们可以访问 FreeIPA 管理控制台。

在 FreeIPA 控制台的帮助下,我们分配了一个 尤比奇 给用户的 USB 令牌。 当我们再次尝试解锁屏幕时,GDM 提示需要输入第一因素(密码)和第二因素(由 Yubikey 硬件生成的 HOTP 令牌)密钥。 成功登录后,SSSD 会更新 Kerberos 票证。

如果您对如何配置 Kerberos 代理和 OpenConnect VPN 以使用 Kerberos 感兴趣,请查看此 红帽文章 或一个 OpenConnect VPN 配方.

使用 Google Apps 单点登录

从 GNOME 中添加在线帐户

第二个演示 展示了 Epiphany 如何针对 FreeIPA Web 界面使用 Kerberos 透明地进行身份验证。 请注意,此用户有一个与该帐户关联的电子邮件地址。 此电子邮件由 Google Apps for Domain 部署管理。 因此,我们希望允许在不向 Google 提供任何密码的情况下单点登录 Google 应用程序。

为此,我们使用 伊普西隆 项目。 Ipsilon 是与 FreeIPA 集成的身份提供程序。 Ipsilon 实现 SAMLv2 协议,并允许 Google Apps for Domain 向 Ipsilon 请求身份验证和经过身份验证的用户的身份。 当我们尝试登录 Google Apps 时,我们会被重定向到我们的 Ipsilon 服务器。 Ipsilon 服务器使用 Kerberos 提供身份验证选择,浏览器会自动让我们登录。Ipsilon 将我们重定向回 Google,我们可以访问 Google 应用程序。

Fedora 24 包括 FreeIPA 和 Ipsilon,以便配置您自己的 Google Apps for Domain 实例以针对您自己的 FreeIPA 域进行身份验证。 跟随 本文 更多细节。

ownCloud 满足单点登录

同样可以在其他云环境中实现。 这 第三个视频 实际上显示了它是如何工作的 ownCloud. ownCloud 是一个自托管的文件同步和共享服务器。 它通过 Web 界面、同步客户端或 WebDAV 提供对您的数据的访问,同时提供一个平台来轻松查看、同步和跨设备共享 – 一切尽在您的控制之下。

在那里,我们将 Ipsilon 配置为接受来自 ownCloud 的身份验证请求。 为此,一个

mod_auth_mellon

通过 ownCloud 创建以发送此类请求。 这是正在进行的工作。 目前, 亚当威廉姆森的模块 和一个通用的

mod_auth_mellon

Ipsilon 客户端 可用于配置ownCloud。

目前,通过 Kerberos 使用 ownCloud 和类似的基于 WebDAV 的共享站点并不容易。 许多工作仍在继续改进 GNOME 在线帐户,以便在无人看管的情况下自动获取用户凭据,以防有人访问受 Ipsilon 或类似身份提供程序保护的 WebDAV 资源。

为什么单点登录对 Fedora?

为什么所有这些工作对 Fedora? 毕竟很少有企业使用 Fedora 在生产中。 答案实际上取决于你如何看待自己。 使用 FreeIPA 和其他解决方案,例如 Samba AD 域控制器 (即将到来 Fedora),现在可以轻松在家中部署自己的企业级环境,完全基于免费软件,独立于任何外部云身份提供商。 这使得 Fedora 塑造企业 IT 未来并参与实现它的理想场所。

Fedora 让您走得更远,因为当今世界比以往更加紧密相连。 人们经常关注当前创造就业的热潮。 这在跨国界的家庭、亲戚和朋友之间编织了自己的分布式私人通信网络。 今天,这些网络依赖于社交网络和云。 有时,他们不能免于政府的入侵。 的版本 Fedora 提供真正独立的能力,单点登录等功能使每个人都可以更轻松地使用自己的通信。 我们并没有随着岁月变年轻,我们的亲戚和朋友也一样。 用户体验改进使复杂系统更易于访问,并允许使用更安全的技术来保护我们的环境。