×

OpenShift Container Platform 包含一个内置的 OAuth 服务器,您可以将其用作 Red Hat Advanced Cluster Security for Kubernetes (RHACS) 的身份验证提供程序。

配置 OpenShift Container Platform OAuth 服务器作为身份提供程序

要将内置的 OpenShift Container Platform OAuth 服务器集成作为 RHACS 的身份提供程序,请使用本节中的说明。

先决条件
  • 您必须具有在 RHACS 中配置身份提供程序的“访问”权限。

  • 您必须已经通过身份提供程序在 OpenShift Container Platform OAuth 服务器中配置了用户和组。有关身份提供程序要求的信息,请参见了解身份提供程序配置

以下步骤仅为 OpenShift Container Platform OAuth 服务器配置名为“central”的单个主路由。

步骤
  1. 在 RHACS 门户中,转到**平台配置** → **访问控制**。

  2. 单击**创建身份验证提供程序**,然后从下拉列表中选择**OpenShift Auth**。

  3. 在**名称**字段中输入身份验证提供程序的名称。

  4. 为使用所选身份提供程序访问 RHACS 的用户分配**最低访问角色**。用户必须拥有授予此角色或具有更高权限的角色的权限才能登录到 RHACS。

    出于安全考虑,Red Hat 建议您在完成设置之前先将**最低访问角色**设置为**无**。稍后,您可以返回到**访问控制**页面以根据身份提供程序的用户元数据设置更定制的访问规则。

  5. 可选:要为访问 RHACS 的用户和组添加访问规则,请在**规则**部分中单击**添加新规则**,然后输入规则信息并单击**保存**。您将需要用户或组的属性,以便您可以配置访问。

    组映射更强大,因为组通常与团队或权限集相关联,并且比用户需要更少的修改。

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

    • 单击**用户管理** → **用户** → **<用户名>** → **YAML**。

    • 访问k8s/cluster/user.openshift.io~v1~User/<username>/yaml文件并记下nameuid(RHACS 中的userid)和groups的值。

    • 使用 OpenShift Container Platform API,如《OpenShift Container Platform API 参考》中所述。

    以下配置示例描述了如何为具有以下属性的管理员角色配置规则

    • name: administrator

    • groups: ["system:authenticated", "system:authenticated:oauth", "myAdministratorsGroup"]

    • uid: 12345-00aa-1234-123b-123fcdef1234

    您可以使用以下步骤之一为此管理员角色添加规则

    • 要为名称配置规则,请从下拉列表中选择name,在字段中输入administrator,然后在角色下选择管理员

    • 要为组配置规则,请从下拉列表中选择groups,在字段中输入myAdministratorsGroup,然后在角色下选择管理员

    • 要为用户名配置规则,请从下拉列表中选择userid,在字段中输入12345-00aa-1234-123b-123fcdef1234,然后在角色下选择管理员

  • 如果您为 OpenShift Container Platform OAuth 服务器使用自定义 TLS 证书,则必须将 CA 的根证书作为受信任的根 CA 添加到 Red Hat Advanced Cluster Security for Kubernetes。否则,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 服务器不返回键Email

为 OpenShift Container Platform OAuth 服务器创建附加路由

当您使用 Red Hat Advanced Cluster Security for Kubernetes 门户将 OpenShift Container Platform OAuth 服务器配置为身份提供程序时,RHACS 只会为 OAuth 服务器配置单个路由。但是,您可以通过在 Central 自定义资源中将它们指定为注释来创建其他路由。

先决条件
步骤
  • 如果您使用 RHACS Operator 安装了 RHACS

    1. 创建一个包含 Central 自定义资源补丁的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补丁应用于 Central 自定义资源

      $ 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将自定义注释应用于 Central 自定义资源。

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