Rancher 依赖于用户和用户组来确定谁被允许登录到 Rancher,以及他们可以访问哪些资源。当您配置一个外部身份验证提供者时,该提供者的用户将能够登录到您的 Rancher Server。当用户登录时,身份验证提供者将向您的 Rancher Server 提供用户所属的组的列表。
对集群、项目、多集群应用程序、全局 DNS 提供者和相关资源的访问可以通过向这些资源添加单个用户或组来控制。当您将组添加到资源时,身份验证提供者中属于该组的所有用户都将能够使用您为该组指定的权限访问该资源。有关角色和权限的更多信息,请参见基于角色的访问控制。
管理成员
向资源添加用户或用户组时,您可以通过输入用户或组的名称来搜索用户或组。Rancher Server 将查询身份验证提供者,以查找与您输入的内容匹配的用户和组。搜索仅限于您当前登录时使用的身份验证提供者。例如,如果您启用了 GitHub 身份验证,但使用本地用户帐户登录,则无法搜索 GitHub 用户或组。
所有用户,无论是本地用户还是来自身份验证提供者的用户,都可以进行查看和管理。相关操作可以通过在全局视图中,单击用户后进行操作。
SAML 身份验证提供者警告:
- SAML 协议不支持搜索或查找用户或组。因此,将用户或组添加到 Rancher 时不会对其进行验证。
- 添加用户时,必须正确输入确切的用户 ID(即
UID
字段)。键入用户 ID 时,将不会搜索可能匹配的其他用户 ID。- 添加组时,必须从文本框旁边的下拉列表中选择组。Rancher 假定来自文本框的任何输入都是用户。
- 用户组下拉列表仅显示您所属的用户组。您将无法添加您不是其成员的组。
用户信息
Rancher 维护通过身份验证提供者登录的每个用户的信息。这些信息包括用户是否被允许访问 Rancher Server,以及用户所属的组的列表。Rancher 保留此用户信息,以便 CLI、API 和 kubectl 能够准确地反映基于身份验证提供者中的组成员关系的用户访问。
当用户使用身份验证提供者登录到 UI 时,Rancher 将自动更新该用户信息。
自动更新用户信息
自 v2.2.0 版本起可用
Rancher 会定期刷新用户信息,甚至在用户通过 UI 登录之前也是如此。您可以控制 Rancher 执行此刷新的频率。在全局视图中,单击设置。有两个参数可以控制自动更新的设置:
auth-user-info-max-age-seconds
此设置控制用户信息在 Rancher 中的最大老化时间。如果用户进行 API 调用(直接 UI 访问或通过使用 Rancher CLI 或 kubectl 调用),并且自 Rancher 上次刷新用户信息以来的时间大于此设置,则 Rancher 将触发刷新。此设置默认为
3600
秒,即 1 小时。auth-user-info-resync-cron
此设置控制用于为所有用户重新同步身份验证提供者信息的循环任务周期。无论用户最近是否登录或使用 API,自动刷新任务都会确保用户信息在指定的时间间隔内刷新。此设置默认为“0 0 * * *”,即每天午夜一次。有关此设置的有效值的更多信息,请参见Cron 文档。
注意: 由于 SAML 不支持用户查找,因此基于 SAML 的身份验证提供者不支持定期刷新用户信息。只有当用户登录到 Rancher UI 时,才会刷新用户信息。
手动更新用户信息
如果您不确定 Rancher 上一次执行用户信息自动刷新的时间,则可以通过手动刷新来刷新所有用户的信息。
在全局视图中,单击导航栏中的用户。
单击刷新组成员。
结果: Rancher 为所有用户刷新用户信息。请求此刷新将更新哪些用户可以访问 Rancher 以及每个用户所属的所有组。
注意: 由于 SAML 不支持用户查找,因此基于 SAML 的身份验证提供者不支持手动刷新用户信息。只有当用户登录到 Rancher UI 时,才会刷新用户信息。
会话周期
自 v2.3.0 版本起可用
用户会话的默认生命周期(TTL)是可调的。默认的会话周期是 16 小时。
- 在全局视图中,单击设置。
- 在设置页面,找到**
auth-user-session-ttl-minutes
,点击编辑**。 - 输入会话应该持续的时间(以分钟为单位),然后单击保存。
**结果:**用户的 Rancher 登录会话在设定的分钟数后自动退出。