×

身份验证提供程序连接到第三方用户身份源(例如,身份提供程序或 IDP),获取用户身份,基于该身份发出令牌,并将令牌返回给 Red Hat Advanced Cluster Security for Kubernetes (RHACS)。此令牌允许 RHACS 授权用户。RHACS 在用户界面和 API 调用中使用此令牌。

安装 RHACS 后,必须设置 IDP 以授权用户。

如果您使用 OpenID Connect (OIDC) 作为您的 IDP,RHACS 依赖于检查特定声明(如 `groups`、`email`、`userid` 和 `name`)的值的映射规则,这些值来自用户 ID 令牌或 `UserInfo` 端点响应,以授权用户。如果缺少这些详细信息,则映射将无法成功,用户将无法访问所需的资源。因此,您需要确保授权用户(例如 `groups`)所需的声明包含在 IDP 的身份验证响应中,以启用成功的映射。

声明映射

声明是身份提供程序在其发出的令牌中包含的关于用户的数据。

使用声明映射,您可以指定 RHACS 是否应将其从 IDP 收到的声明属性自定义为 RHACS 发出的令牌中的另一个属性。如果您不使用声明映射,RHACS 不会在 RHACS 发出的令牌中包含声明属性。

例如,您可以使用声明映射将用户身份中的 `roles` 映射到 RHACS 发出的令牌中的 `groups`。

RHACS 对每个身份验证提供程序使用不同的默认声明映射。

OIDC 默认声明映射

以下列表提供了默认的 OIDC 声明映射

  • `sub` 到 `userid`

  • `name` 到 `name`

  • `email` 到 `email`

  • `groups` 到 `groups`

Auth0 默认声明映射

Auth0 的默认声明映射与 OIDC 默认声明映射相同。

SAML 2.0 默认声明映射

以下列表适用于 SAML 2.0 默认声明映射

  • Subject.NameID 映射到 userid

  • 响应中的每个 SAML AttributeStatement.Attribute 都映射到其名称

Google IAP 默认声明映射

以下列表提供了 Google IAP 默认声明映射

  • `sub` 到 `userid`

  • `email` 到 `email`

  • hd 映射到 hd

  • google.access_levels 映射到 access_levels

用户证书默认声明映射

用户证书与所有其他身份验证提供程序不同,因为它不与第三方 IDP 通信,而是从用户使用的证书获取用户信息。

用户证书的默认声明映射包括:

  • CertFingerprint 映射到 userid

  • Subject → Common Name 映射到 name

  • EmailAddresses 映射到 email

  • Subject → Organizational Unit 映射到 groups

OpenShift Auth 默认声明映射

以下列表提供了 OpenShift Auth 默认声明映射

  • `groups` 到 `groups`

  • uid 映射到 userid

  • `name` 到 `name`

规则

为了授权用户,RHACS 依赖于检查特定声明(例如用户身份中的groupsemailuseridname)值的映射规则。规则允许将具有特定值属性的用户映射到特定角色。例如,规则可能包括:`key` 为 emailvalue[email protected]roleAdmin

如果声明缺失,则映射将无法成功,用户将无法访问所需的资源。因此,为了实现成功的映射,必须确保来自 IDP 的身份验证响应包含授权用户所需的声明,例如 groups

最低访问权限角色

RHACS 为每个使用特定身份验证提供程序颁发的 RHACS 令牌的调用者分配最低访问权限角色。默认情况下,最低访问权限角色设置为 None

例如,假设有一个身份验证提供程序,其最低访问权限角色为 Analyst。在这种情况下,所有使用此提供程序登录的用户都将被分配 Analyst 角色。

必需属性

必需属性可以根据用户身份是否具有特定值的属性来限制 RHACS 令牌的颁发。

例如,您可以将 RHACS 配置为仅在密钥为 is_internal 的属性具有属性值 true 时才颁发令牌。is_internal 属性设置为 false 或未设置的用户将无法获得令牌。