13.2. 将 Google Workspace 配置为 OIDC 身份提供程序

您可以使用 Google Workspace 作为 Red Hat Advanced Cluster Security for Kubernetes 的单点登录(SSO)供应商。

13.2.1. 为您的 GCP 项目设置 OAuth 2.0 凭证

要将 Google Workspace 配置为 Red Hat Advanced Cluster Security for Kubernetes 的身份供应商,您必须首先为您的 GCP 项目配置 OAuth 2.0 凭证。

先决条件

  • 您必须具有机构的 Google Workspace 帐户的管理员级访问权限,才能创建新项目,或为现有项目创建和配置 OAuth 2.0 凭证的权限。红帽建议创建一个新项目来管理 Red Hat Advanced Cluster Security for Kubernetes 的访问。

流程

  1. 创建新的 Google Cloud Platform(GCP)项目,请参阅 Google 文档主题 创建和管理项目
  2. 创建项目后,打开 Google API 控制台中的 Credentials 页面。
  3. 验证徽标旁边列出的项目名称,以确保您正在使用正确的项目。
  4. 要创建新凭证,请转至 Create CredentialsOAuth 客户端 ID
  5. 选择 Web application 作为 Application type
  6. Name 框中输入应用程序名称,例如: RHACS
  7. Authorized redirect URIs 框中,输入 https://<stackrox_hostname>:<port_number>/sso/providers/oidc/callback

    • <stackrox_hostname > 替换为您公开您的 Central 实例的主机名。
    • <port_number > 替换为您 expose Central 的端口号。如果您使用标准 HTTPS 端口 443, 可以省略端口号。
  8. Create。这会创建一个应用程序和凭证,并将您重新指向 credentials 页面。
  9. 此时会打开一个信息框,显示新创建的应用程序的详细信息。关闭信息框。
  10. 复制并保存以 .apps.googleusercontent.com 结尾的 客户端 ID。您可以使用 Google API 控制台检查此客户端 ID。
  11. 从左侧的导航菜单中选择 OAuth consent 屏幕

    注意

    OAuth 批准屏幕配置对整个 GCP 项目有效,而不仅仅是您在前面的步骤中创建的应用程序。如果您已经在这个项目中配置了 OAuth 批准屏幕,并希望为 Red Hat Advanced Cluster Security for Kubernetes 登录应用不同的设置,请创建一个新的 GCP 项目。

  12. 在 OAuth 批准屏幕上:

    1. 选择 应用程序类型 作为 Internal。如果选择 公共,则具有 Google 帐户的任何人都可以登录。
    2. 输入描述性 应用程序名称。此名称显示在同意屏幕上的用户。例如,将 RHACS 或 &lt ;organization_name> SSO 用于 Red Hat Advanced Cluster Security for Kubernetes
    3. 验证 Google API 的 Scope 只列出 电子邮件配置集和 openid 范围。只有这些范围才需要单点登录。如果您向其他范围授予额外的范围,这会增加公开敏感数据的风险。

13.2.2. 指定客户端 secret

在指定客户端 secret 时,Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.39 及更新的版本支持 OAuth 2.0 授权代码授予 身份验证流程。当使用此验证流时,Red Hat Advanced Cluster Security for Kubernetes 使用刷新令牌来把用户登录超过 OIDC 身份提供程序中配置的令牌过期时间。

当用户注销时,Red Hat Advanced Cluster Security for Kubernetes 会从客户端中删除刷新令牌。另外,如果您的身份提供程序 API 支持刷新令牌撤销,Red Hat Advanced Cluster Security for Kubernetes 也会向身份提供程序发送请求以撤销刷新令牌。

在将 Red Hat Advanced Cluster Security for Kubernetes 配置为与 OIDC 身份提供程序集成时,您可以指定客户端 secret。

注意
  • 您不能使用带有 Fragment Callback modeClient Secret
  • 您不能编辑现有身份验证供应商的配置。
  • 如果要使用 客户端 Secret,您必须在 Red Hat Advanced Cluster Security for Kubernetes 中创建一个新的 OIDC 集成。

红帽建议在使用 OIDC 身份提供程序连接 Red Hat Advanced Cluster Security for Kubernetes 时使用客户端 secret。如果您不想使用 客户端 Secret,则必须选择 Do not use Client Secret(不推荐) 选项。

13.2.3. 在 Red Hat Advanced Cluster Security for Kubernetes 中配置 OIDC 身份提供程序

您可以将 Red Hat Advanced Cluster Security for Kubernetes 配置为使用 OpenID Connect(OIDC)身份提供程序。

先决条件

  • 您必须已在身份提供程序中配置了应用程序,如 Google Workspace。
  • 您必须具有在 Red Hat Advanced Cluster Security for Kubernetes 中配置身份提供程序的权限。

流程

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 打开 Add a Auth Provider 菜单,然后选择 OpenID Connect
  3. 填写以下详情:

    • 集成名称 :用于标识身份验证提供程序的名称。例如: Auth0Google Workspace"。集成名称显示在登录页面中,以帮助用户选择正确的符号选项。
    • 回调模式 :选择 HTTP POST (默认)。另外,还提供了名为 Fragment 的替代模式,它围绕单页应用程序(SPA)的限制。红帽只支持旧集成的 Fragment 模式,不建议将其用于新的集成。
    • issuer :身份提供程序的根 URL,如 Google Workspace https://accounts.google.com。如需更多信息,请参阅您的身份提供程序文档。

      注意

      如果您使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.49 及更新版本,对于 Issuer 您可以:

      • 为 root URL 前缀有 https+insecure:// 以跳过 TLS 验证。这个配置是不安全的,红帽不推荐这样做。仅将其用于测试目的。
      • 指定查询字符串,如 ?key1=value1&key2=value2 和 root URL。Red Hat Advanced Cluster Security for Kubernetes 将 Issuer 的值附加到授权端点中。您可以使用它来自定义供应商的登录屏幕。例如,您可以使用 hd 参数在 PingFederate 中使用 pfidpadapterid 参数 优化 Google Workspace 登录屏幕。
    • 客户端 ID :您配置的项目的 OIDC 客户端 ID。
  4. 使用所选身份提供程序 访问 Red Hat Advanced Cluster Security for Kubernetes 的用户,选择最小访问角色

    提示

    在完成设置时,将 Minimum access role 设置为 Admin。之后,您可以返回到 Access Control 页面,根据身份提供程序的用户元数据设置更定制的访问规则。

  5. 点击 Save

验证

  1. 在 RHACS 门户网站中,导航至 Platform ConfigurationAccess Control
  2. 选择 Auth Provider Rules 选项卡。
  3. Auth Providers 部分下,选择您要验证配置的身份验证提供程序。
  4. Auth Provider 部分标头选择 Test LoginTest Login 页面将在新的浏览器标签页中打开。
  5. 使用您的凭据登录。

    • 成功后,Red Hat Advanced Cluster Security for Kubernetes 显示您为登录的凭证发送的用户 ID用户属性
    • 在失败时,Red Hat Advanced Cluster Security for Kubernetes 会显示一条信息来描述身份提供程序无法处理的响应的原因。
  6. 关闭 Test Login browser 选项卡。