13.3. 将 OpenShift Container Platform OAuth 服务器配置为身份提供程序
OpenShift Container Platform 包含一个内置 OAuth 服务器,您可以用作 Red Hat Advanced Cluster Security for Kubernetes(RHACS)的身份验证供应商。
13.3.1. 将 OpenShift Container Platform OAuth 服务器配置为 Red Hat Advanced Cluster Security for Kubernetes 中的身份提供程序
要将内置的 OpenShift Container Platform OAuth 服务器集成为 Red Hat Advanced Cluster Security for Kubernetes(RHACS)的身份供应商,请使用本节中的说明。
先决条件
-
您必须具有
AuthProvider
权限才能在 RHACS 中配置身份提供程序。 - 您必须已通过身份提供程序在 OpenShift Container Platform OAuth 服务器中配置了用户和组。有关身份提供程序要求的详情,请参阅 了解身份提供程序配置。
以下流程只为 OpenShift Container Platform OAuth 服务器配置一个名为 central
的主路由。
流程
- 在 RHACS 门户网站中,导航至 Platform Configuration → Access Control。
- 打开 Add a Auth Provider 菜单,然后选择 OpenShift Auth。
- 在 Name 字段中输入身份验证提供程序的名称。
使用所选身份提供程序为访问 RHACS 的用户选择 最小访问权限角色。
提示为安全起见,红帽建议在完成设置 时将最低访问角色 设置为 None。之后,您可以返回到 Access Control 页面,根据身份提供程序的用户元数据设置更定制的访问规则。
可选: 要为访问 RHACS 的用户和组添加访问规则,点 Rules 部分中的 Add new rule,然后输入规则信息并点 Save。您需要用户或组的属性,以便您可以配置访问权限。
提示组映射功能更强大,因为组通常与团队或权限集关联,而且需要修改频率少于用户。
要在 OpenShift Container Platform 中获取用户信息,您可以使用以下方法之一:
- 点 User Management → Users → < username > → YAML。
-
访问
k8s/cluster/user.openshift.io~v1~User/<username>/yaml
文件,并记录名称
、uid
( RHACS 中的userid
)和组
。 - 使用 OpenShift Container Platform API 参考。
以下配置示例描述了如何使用以下属性为 Admin 角色配置规则:
-
名称
:管理员
-
groups
:["system:authenticated", "system:authenticated:oauth", "myAdministratorsGroup"]
-
UID
:12345-00aa-1234-123b-123fcdef1234
您可以使用以下步骤之一为这个管理员角色添加规则:
-
要为名称配置规则,请从 Key 下拉列表中选择
名称
,在 Value 字段中输入administrator
,然后在 Role 下选择 Administrator。 -
要为组配置规则,请从 Key 下拉列表中选择
组
,在 Value 字段中输入myAdministratorsGroup
,然后选择 Admin 下的 Role。 -
要为用户名配置规则,请从 Key 下拉列表中选择
userid
,在 Value 字段中输入12345-00aa-1234-123b-123fcdef1234
,然后选择 Role 下的 Admin。
- 如果您将自定义 TLS 证书用于 OpenShift Container Platform OAuth 服务器,您必须将 CA 的 root 证书添加到 Red Hat Advanced Cluster Security for Kubernetes 中作为可信 root CA。否则,Central 无法连接到 OpenShift Container Platform OAuth 服务器。
在使用
roxctl
CLI 安装 Red Hat Advanced Cluster Security for Kubernetes 时启用 OpenShift Container Platform OAuth 服务器集成,在 Central 中将ROX_ENABLE_OPENSHIFT_AUTH
环境变量设置为true
:$ oc -n stackrox set env deploy/central ROX_ENABLE_OPENSHIFT_AUTH=true
-
对于访问规则,OpenShift Container Platform OAuth 服务器不会返回密钥
电子邮件
。
其他资源
13.3.2. 为 OpenShift Container Platform OAuth 服务器创建额外的路由
当使用 Red Hat Advanced Cluster Security for Kubernetes 门户将 OpenShift Container Platform OAuth 服务器配置为身份提供程序时,RHACS 仅为 OAuth 服务器配置一个路由。但是,您可以通过在 Central 自定义资源中将路由指定为注解来创建其他路由。
流程
如果您使用 RHACS Operator 安装 RHACS:
创建一个
CENTRAL_ADDITIONAL_ROUTES
环境变量,其中包含中央自定义资源的补丁:$ CENTRAL_ADDITIONAL_ROUTES=' spec: central: exposure: loadBalancer: enabled: false port: 443 nodePort: enabled: false route: enabled: true persistence: persistentVolumeClaim: claimName: stackrox-db customize: annotations: serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1 serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2 serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3 serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4 '
将
CENTRAL_ADDITIONAL_ROUTES
补丁应用到中央自定义资源:$ oc patch centrals.platform.stackrox.io \ -n <namespace> \ 1 <custom-resource> \ 2 --patch "$CENTRAL_ADDITIONAL_ROUTES" \ --type=merge
或者,如果使用 Helm 安装 RHACS:
在
values-public.yaml
文件中添加以下注解:customize: central: annotations: serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1 serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2 serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3 serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4
使用
helm upgrade
将自定义注解应用到中央自定义资源:$ helm upgrade -n stackrox \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> 1
- 1
- 使用
-f
选项指定values-public.yaml
配置文件的路径。