18.3. 了解身份验证供应商
身份验证供应商连接到用户身份的第三方源(如身份提供程序或 IDP),获取用户身份,根据该身份发布令牌,并将令牌返回到 Red Hat Advanced Cluster Security for Kubernetes (RHACS)。此令牌允许 RHACS 授权用户。RHACS 在用户界面和 API 调用中使用令牌。
安装 RHACS 后,您必须设置 IDP 来授权用户。
如果您使用 OpenID Connect (OIDC)作为 IDP,RHACS 依赖于映射规则来检查特定声明的值,如 组
、mail、userid
和 name
,用于授权用户。
如果缺少这些详细信息,映射将无法成功,且用户无法访问所需的资源。因此,您需要确保授权来自您的 IDP 的用户(如
组
)所需的声明包含在您的 IDP 身份验证响应中,以启用成功映射。
其他资源
18.3.1. 声明映射
声明是身份提供程序的数据,其中包含他们发出的令牌内的用户。
使用声明映射,您可以指定 RHACS 是否应该自定义从 IDP 接收到的 claim 属性到 RHACS 发布的令牌中的另一个属性。如果不使用声明映射,RHACS 不会将 claim 属性包含在 RHACS-issued 令牌中。
例如,您可以使用声明映射,从用户身份中的角色
映射到 RHACS-issued 令牌中的组
。
RHACS 为每个身份验证供应商使用不同的默认声明映射。
18.3.1.1. OIDC 默认声明映射
以下列表提供默认的 OIDC 声明映射:
-
sub
到userid
-
name
到name
-
email
到email
-
组
到组
18.3.1.2. Auth0 默认声明映射
Auth0
默认声明映射与 OIDC 默认声明映射相同。
18.3.1.3. SAML 2.0 默认声明映射
以下列表适用于 SAML 2.0 默认声明映射:
-
subject.NameID
被映射到userid
-
来自响应的每个 SAML
AttributeStatement.Attribute
都会映射到其名称
18.3.1.4. Google IAP 默认声明映射
以下列表提供 Google IAP 默认声明映射:
-
sub
到userid
-
email
到email
-
hd
到hd
-
google.access_levels
toaccess_levels
18.3.1.5. 用户证书默认声明映射
用户证书与所有其他身份验证供应商不同,因为不与第三方 IDP 通信,而是从用户使用的证书获取用户信息。
用户证书的默认声明映射包括:
-
CertFingerprint
touserid
-
subject
toCommon Name name
-
EmailAddresses
到email
-
subject
toOrganizational Unit groups
18.3.1.6. OpenShift Auth 默认声明映射
以下列表提供了 OpenShift Auth 默认声明映射:
-
组
到组
-
UID
到userid
-
name
到name
18.3.2. 规则
要授权用户,RHACS 依赖于映射规则来检查特定声明的值,如来自用户身份的组
、电子邮件
、userid
和名称
。规则允许将属性具有特定值的用户映射到特定角色。例如,一个规则可以包括以下内容:'key' 是 email
,值为
john@redhat.com
,角色是
Admin
。
如果缺少声明,映射将无法成功,且用户无法访问所需资源。因此,要启用成功映射,您必须确保来自 IDP 的身份验证响应包括授权用户所需的声明,如 组
。
18.3.3. 最低访问角色
RHACS 使用特定身份验证供应商发布的 RHACS 令牌为每个调用者分配最小访问角色。默认将最小访问角色设置为 None
。
例如,假设有一个具有最低访问的角色 Analyst
的身份验证提供程序。在这种情况下,使用此提供程序登录的所有用户都将为其分配 Analyst
角色。
18.3.4. 所需属性
必要的属性可以根据用户身份是否具有带有特定值的属性来限制 RHACS 令牌发出。
例如,您可以将 RHACS 配置为仅在带有 key is_internal
的属性具有属性 true
时发布令牌。具有 is_internal
属性的用户设为 false
或未设置不会获取令牌。