第 52 章 使用外部身份提供程序向 IdM 进行身份验证

警告

将用户身份验证委派给外部身份提供者目前还只是一个技术预览,不是一个完全支持的功能。

您可以将用户与支持 OAuth 2 设备授权流的外部身份提供者(IdP)关联。当这些用户使用 RHEL 8.7 或更高版本中提供的 SSSD 版本进行身份验证时,它们会在外部 IdP 执行身份验证和授权后收到带有 Kerberos 票据的 RHEL 身份管理(IdM)单点登录功能。

主要特性包括:

  • 使用 ipa idp-* 命令添加、修改和删除对外部 IdP 的引用。
  • 使用 ipa user-mod --user-auth-type=idp 命令为用户启用 IdP 身份验证。

本节讨论以下主题:

52.1. 将 IdM 连接到外部 IdP 的好处

作为管理员,您可能想要允许存储在外部身份源(如云服务供应商)中的用户访问连接到 Identity Management (IdM) 环境的 RHEL 系统。要达到此目的,您可以将这些用户的 Kerberos 票据的身份验证和授权过程委托给该外部实体。

您可以使用此功能扩展 IdM 的功能,并允许存储在外部身份提供程序 (IdP) 中的用户访问由 IdM 管理的 Linux 系统。

52.1.1. IdM 如何通过外部 IdP 融合登录

SSSD 2.7.0 包含 sssd-idp 软件包,该软件包可实施 idp Kerberos pre-authentication 方法。这个验证方法遵循 OAuth 2.0 设备授权流,将授权决策委派给外部 IdP:

  1. IdM 客户端用户启动 OAuth 2.0 设备授权流,例如,通过在命令行中使用 kinit 实用程序检索 Kerberos TGT。
  2. 一个特殊的代码和网站链接从授权服务器发送到 IdM KDC 后端。
  3. IdM 客户端显示用户的链接和代码。在本例中,IdM 客户端会输出命令行中的链接和代码。
  4. 用户在浏览器中打开网站链接,可以在另一个主机上、移动电话等:

    1. 用户输入特殊代码。
    2. 如有必要,用户登录到基于 OAuth 2.0 的 IdP。
    3. 系统将提示用户授权客户端访问信息。
  5. 用户在原始设备提示符处确认访问。在这个示例中,用户在命令行中点 Enter 键。
  6. IdM KDC 后端轮询 OAuth 2.0 授权服务器以访问用户信息。

支持什么:

  • 启用了 键盘互动 验证方法通过 SSH 远程登录,它允许调用可插拔式身份验证模块 (PAM) 库。
  • 通过 logind 服务,使用控制台本地登录。
  • 使用 kinit 实用程序检索 Kerberos ticket-granting ticket (TGT)。

当前不支持什么:

  • 直接登录到 IdM WebUI。要登录到 IdM WebUI,您必须首先获取一个 Kerberos ticket。
  • 直接登录 Cockpit WebUI。要登录 Cockpit Web UI,您必须首先获取一个 Kerberos ticket。