本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

配置认证

Rancher为Kubernetes添加的关键功能之一是集中用户身份验证。此功能允许您的用户使用一组凭据在任何Kubernetes集群中进行身份验证。

此集中式用户认证是通过与Rancher其他部分一起安装的Rancher认证代理完成的。此代理对您的用户进行身份验证,并使用服务帐户将其请求转发到您的Kubernetes集群。

用于启用外部提供程序的帐户将被授予管理员权限。如果您使用测试帐户或非管理员帐户,该帐户仍将被授予管理员级别的权限。请参见外部认证配置和主体用户以了解原因。

外部与。本地鉴定

Rancher 认证代理与以下外部认证服务集成。

认证服务

Microsoft Active Directory

GitHub

Microsoft Azure AD

FreeIPA

OpenLDAP

Microsoft AD FS

PingIdentity

Keycloak (OIDC)

Keycloak (SAML)

Okta

Google OAuth

Shibboleth

通用 (OIDC)

然而,Rancher 也提供 本地认证

在大多数情况下,您应该使用外部认证服务而不是本地认证,因为外部认证允许从中心位置进行用户管理。然而,在极少数情况下,您可能希望有一些本地认证用户来管理 Rancher,例如当您的外部认证提供者不可用或正在维护时。

用户和组

  • 本地认证不支持创建或管理组。

  • 在配置外部认证提供者后,请注意,本地 Rancher 范围的管理用户仅显示他们在各自认证提供者中是成员的资源,例如用户和组。

Rancher依赖用户和组来确定谁被允许登录Rancher以及他们可以访问哪些资源。当使用外部提供者进行认证时,组是根据用户从外部提供者提供的。这些用户和组被赋予特定的角色,以便访问集群、项目和全局 DNS 提供者及条目。当您授予一个组访问权限时,认证提供者中该组的所有成员用户将能够以您为该组指定的权限访问该资源。有关角色和权限的更多信息,请参见基于角色的访问控制

有关更多信息,请参见 用户和组

Rancher 授权范围

在您配置 Rancher 以允许使用外部认证服务登录后,您应该配置谁可以登录并使用 Rancher。下列选项可用:

访问级别 说明

允许任何有效用户

任何 授权服务中的用户都可以访问 Rancher。我们通常不鼓励使用此设置!

允许集群、项目的成员以及授权用户和组织

授权服务中的任何用户以及作为 集群成员项目成员 添加的任何组都可以登录 Rancher。此外,您添加到 授权用户和组织 列表中的任何认证服务中的用户或组也可以登录 Rancher。

将访问权限仅限于授权用户和组织

只有认证服务中的用户或添加到授权用户和组织的组才能登录 Rancher。

只有受信任的管理员级别用户才能访问本地群集,该群集管理 Rancher 实例中的所有其他集群。Rancher 直接安装在本地群集上,Rancher 的管理功能允许本地群集上的管理员配置、修改、连接和查看下游集群的详细信息。由于本地群集是 Rancher 实例架构的关键,不当访问会带来安全风险。

要为授权服务中的用户设置 Rancher 访问级别,请按照以下步骤操作:

  1. 在左上角,点击*☰ > 用户与身份验证*。

  2. 在左侧导航栏中,点击 身份验证提供者

  3. 在设置认证提供者的配置详细信息后,使用 站点访问 选项配置用户授权的范围。上表解释了每个选项的访问级别。

  4. 可选:如果您选择的选项不是 允许任何有效用户,,您可以通过在出现的文本字段中搜索将用户添加到授权用户和组织的列表中。

  5. 单击 保存

*结果:*Rancher 访问配置设置已应用。

SAML提供者注意事项
  • 在Rancher中分配权限时,用户和组不会被验证。

  • 添加用户时,必须正确输入确切的用户ID(即`UID Field`)。当您输入用户ID时,不会搜索可能匹配的其他用户ID。

  • 添加组时,您必须从文本框旁边的下拉列表中选择该组。Rancher假设文本框中的任何输入都是用户。

  • 组下拉菜单仅显示您是成员的组。但是,如果您拥有管理员权限或受限的管理员权限,您可以加入您不是成员的组。

外部认证配置和主体用户

配置外部认证需要:

  • 本地用户被分配为管理员角色,以下简称为_本地主体_。

  • 可以通过您的外部认证服务进行身份验证的外部用户,以下简称为_外部主体_。

外部认证的配置也会影响Rancher中主体用户的管理。具体来说,当用户账户启用外部提供者时,将授予管理员级别的权限。这是因为本地主体和外部主体共享相同的用户ID和访问权限。

以下说明演示了这些影响:

  1. 以本地主体身份登录Rancher并完成外部认证的配置。

    登录
  2. Rancher将外部主体与本地主体关联。这两个用户共享本地主体的用户ID。

    主体ID共享
  3. 完成配置后,Rancher会自动注销本地主体。

    注销本地主体
  4. 然后,Rancher会自动以外部主体身份重新登录您。

    登录外部主体
  5. 由于外部主体和本地主体共享一个ID,用户页面上不会显示外部主体的唯一对象。

    登录外部主体
  6. 外部主体和本地主体共享相同的访问权限。

重新配置先前设置的认证提供者

如果您需要重新配置或禁用然后重新启用之前设置的认证提供者,请确保尝试这样做的用户以外部用户身份登录Rancher,而不是本地管理员。

禁用认证提供者

当您禁用身份验证提供者时,Rancher 会删除与其相关的所有资源,例如:

  • 机密。

  • 全局角色绑定。

  • 集群角色模板绑定。

  • 项目角色模板绑定。

  • 与该提供者相关的外部用户,但从未以本地用户身份登录 Rancher。

由于此操作可能导致许多资源的丢失,您可能希望在提供者上添加一个保护措施。为了确保在禁用身份验证提供者时不会运行此清理过程,请在相应的身份验证配置上添加特殊注释。

例如,要为 Azure AD 提供者添加保护措施,请注释 azuread authconfig 对象:

kubectl annotate --overwrite authconfig azuread management.cattle.io/auth-provider-cleanup='user-locked'

在您将注释设置为 unlocked 之前,Rancher 不会执行清理。

手动运行资源清理

即使在您配置另一个身份验证提供者后,Rancher 可能仍会保留来自先前禁用的身份验证提供者配置的资源。例如,如果您使用了提供者 A,然后禁用它并开始使用提供者 B,当您升级到新版本的 Rancher 时,您可以手动触发对由提供者 A 配置的资源的清理。

要手动触发已禁用身份验证提供者的清理,请在其身份验证配置中添加 management.cattle.io/auth-provider-cleanup 注释和 unlocked 值。