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 的主路由。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 打开 Add a Auth Provider 菜单,然后选择 OpenShift Auth
  3. Name 字段中输入身份验证提供程序的名称。
  4. 使用所选身份提供程序为访问 RHACS 的用户选择 最小访问权限角色

    提示

    为安全起见,红帽建议在完成设置 时将最低访问角色 设置为 None。之后,您可以返回到 Access Control 页面,根据身份提供程序的用户元数据设置更定制的访问规则。

  5. 可选: 要为访问 RHACS 的用户和组添加访问规则,点 Rules 部分中的 Add new rule,然后输入规则信息并点 Save。您需要用户或组的属性,以便您可以配置访问权限。

    提示

    组映射功能更强大,因为组通常与团队或权限集关联,而且需要修改频率少于用户。

    要在 OpenShift Container Platform 中获取用户信息,您可以使用以下方法之一:

    • User ManagementUsers → < username &gt; → 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:

    1. 创建一个 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
      '
      1
      用于设置主路由的重定向 URI。
      2
      主路由的重定向 URI 引用。
      3
      用于设置第二路由的重定向。
      4
      第二个路由的重定向引用。
    2. CENTRAL_ADDITIONAL_ROUTES 补丁应用到中央自定义资源:

      $ oc patch centrals.platform.stackrox.io \
        -n <namespace> \ 1
        <custom-resource> \ 2
        --patch "$CENTRAL_ADDITIONAL_ROUTES" \
        --type=merge
      1
      <namespace > 替换为包含 Central 自定义资源的项目的名称。
      2
      <custom-resource > 替换为 Central 自定义资源的名称。
  • 或者,如果使用 Helm 安装 RHACS:

    1. 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
      1
      用于设置主路由的重定向。
      2
      对主路由进行重定向引用。
      3
      用于设置第二路由的重定向。
      4
      第二个路由的重定向引用。
    2. 使用 helm upgrade 将自定义注解应用到中央自定义资源:

      $ helm upgrade -n stackrox \
        stackrox-central-services rhacs/central-services \
        -f <path_to_values_public.yaml> 1
      1
      使用 -f 选项指定 values-public.yaml 配置文件的路径。