18.4. 配置身份提供程序


18.4.1. 将 Okta Identity Cloud 配置为 SAML 2.0 身份提供程序

您可以将 Okta 用作 Red Hat Advanced Cluster Security for Kubernetes (RHACS)的单点登录(SSO)供应商。

18.4.1.1. 创建一个 Okta 应用程序

在将 Okta 用作 Red Hat Advanced Cluster Security for Kubernetes 的 SAML 2.0 身份提供程序前,您必须创建一个 Okta app。

警告

Okta 的 Developer 控制台 不支持创建自定义 SAML 2.0 应用程序。如果使用 Developer 控制台,您必须首先切换到 管理控制台 (Classic UI)。要切换,请单击页面左上角的 Developer Console 并选择 Classic UI

先决条件

  • 您必须拥有一个对 Okta 门户具有管理权限的帐户。

流程

  1. 在 Okta 门户上,从菜单栏中选择 Applications
  2. 单击 Add Application,然后选择 Create New App
  3. Create a New Application Integration 对话框中,将 Web 保留为平台,然后选择 SAML 2.0 作为您要登录用户的协议。
  4. Create
  5. General Settings 页面中,在 App name 字段中输入应用程序的名称。
  6. 点击 Next
  7. SAML Settings 页面中,为以下字段设置值:

    1. 单点登录 URL

      • 将它指定为 https://<RHACS_portal_hostname>/sso/providers/saml/acs
      • 请选中 Use this for Recipient URL 和 Destination URL 选项。
      • 如果您的 RHACS 门户可以通过不同的 URL 访问,您可以通过选中 Allow this application 来请求其他 SSO URL 选项,并使用指定格式添加替代 URL。
    2. 受众 URI (SP 实体 ID)

      • 将值设为 RHACS 或者您选择的另一个值。
      • 请记住,在配置 Red Hat Advanced Cluster Security for Kubernetes 时,需要这个值。
    3. 属性声明

      • 您必须至少添加一个 attribute 语句。
      • 红帽建议使用 email 属性:

        • Name: email
        • 格式: 未指定
        • 值 : user.email
  8. 在继续操作前,验证您是否至少配置了一个 Attribute 语句
  9. 点击 Next
  10. Feedback 页面中,选择一个适用于您的选项。
  11. 选择一个合适 的应用程序类型
  12. Finish

配置完成后,您将重定向到新应用的 Sign On 设置页面。黄色框包含配置 Red Hat Advanced Cluster Security for Kubernetes 所需的信息的链接。

创建应用程序后,将 Okta 用户分配给这个应用程序。进入 Assignments 选项卡,再分配可以访问 Red Hat Advanced Cluster Security for Kubernetes 的独立用户或组集合。例如,分配组 Everyone,以允许机构中所有用户访问 Red Hat Advanced Cluster Security for Kubernetes。

18.4.1.2. 配置 SAML 2.0 身份提供程序

使用本节中的说明,将安全断言标记语言(SAML) 2.0 身份提供程序与 Red Hat Advanced Cluster Security for Kubernetes (RHACS)集成。

先决条件

  • 您必须具有在 RHACS 中配置身份提供程序的权限。
  • 对于 Okta 身份提供程序,您必须为 RHACS 配置 Okta 应用程序。

流程

  1. 在 RHACS 门户中,进入到 Platform Configuration Access Control
  2. Create auth provider,并从下拉列表中选择 SAML 2.0
  3. Name 字段中输入用于标识此身份验证提供程序的名称;例如,OktaGoogle。集成名称显示在登录页面上,以帮助用户选择正确的登录选项。
  4. ServiceProvider issuer 字段中输入您用作 Okta 中的 Audience URISP Entity ID 的值,或者在其他供应商中输入类似的值。
  5. 选择 配置 类型:

    • 选项 1:动态配置 :如果您选择了这个选项,请输入 IdP 元数据 URL身份提供程序控制台中提供的身份提供程序元数据的 URL。配置值从 URL 获取。
    • 选项 2:静态配置 :从 Okta 控制台中的 View Setup instructionss 链接复制所需的静态字段,或者其它供应商的类似位置:

      • IdP Issuer
      • IdP SSO URL
      • 名称/ID 格式
      • IdP 证书(PEM)
  6. 为使用 SAML 访问 RHACS 的用户分配最小 访问角色。

    提示

    完成设置时,将最小访问角色设置为 Admin。之后,您可以返回 Access Control 页面,根据您的身份提供程序中的用户元数据设置更多定制的访问规则。

  7. 点击 Save
重要

如果您的 SAML 身份提供程序的身份验证响应满足以下条件:

  • 包括一个 NotValidAfter assertion: 用户会话保持有效,直到 NotValidAfter 字段中指定的时间已过。用户会话过期后,用户必须重新进行身份验证。
  • 不包括 NotValidAfter assertion:用户会话在 30 天内保持有效,然后用户必须重新进行身份验证。

验证

  1. 在 RHACS 门户中,进入到 Platform Configuration Access Control
  2. 选择 Auth Providers 选项卡。
  3. 点击您要验证配置的身份验证供应商。
  4. Auth Provider 部分标头中选择 Test loginTest 登录页面 将在新的浏览器标签页中打开。
  5. 使用您的凭证登录。

    • 如果您成功登录,RHACS 会显示用于登录到该系统的凭证的身份提供程序的用户 ID用户属性
    • 如果您的登录尝试失败,RHACS 会显示描述无法处理身份提供程序的响应信息。
  6. 关闭 Test login 浏览器标签页。

    注意

    即使响应指示身份验证成功,您可能需要根据身份提供程序中的用户元数据创建额外的访问规则。

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

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

18.4.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 Credentials OAuth 客户端 ID
  5. 选择 Web application 作为 Application type
  6. Name 框中,输入应用程序的名称,如 RHACS
  7. Authorized 重定向 URIs 框中,输入 https://<stackrox_hostname>:<port_number>/sso/providers/oidc/callback

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

    注意

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

  12. 在 OAuth consent 屏幕页面中:

    1. 选择 Application type 作为 Internal。如果您选择 Public,则具有 Google 帐户的任何人都可以登录。
    2. 输入描述性 应用程序名称。当用户登录后,此名称显示在同意屏幕上的用户。例如,使用 RHACS<organization_name> SSO for Red Hat Advanced Cluster Security for Kubernetes
    3. 验证 Google API 的范围是否 仅列出 电子邮件配置集和 openid 范围。单点登录只需要这些范围。如果您授予其他范围,它会增加公开敏感数据的风险。

18.4.2.2. 指定客户端 secret

Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.39 及更新版本在指定客户端 secret 时支持 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 集成。

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

18.4.2.3. 配置 OIDC 身份提供程序

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

先决条件

  • 您必须已在身份提供程序中配置了应用程序,如 Google Workspace。
  • 您必须具有在 RHACS 中配置身份提供程序的权限。

流程

  1. 在 RHACS 门户中,进入到 Platform Configuration Access Control
  2. Create auth provider,并从下拉列表中选择 OpenID Connect
  3. 在以下字段中输入信息:

    • 名称 :用于标识身份验证提供程序的名称,如 Google Workspace。集成名称显示在登录页面上,以帮助用户选择正确的登录选项。
    • 回调模式 :选择 Auto-select (推荐),这是默认值,除非身份提供程序需要其他模式。

      注意

      片段 模式围绕单页应用程序(SPAs)的限制而设计。红帽只支持早期 集成的 Fragment 模式,我们不推荐将其用于后续集成。

    • 签发者 :身份提供程序的根 URL;例如,Google Workspace 的 https://accounts.google.com。如需更多信息,请参阅您的身份提供程序文档。

      注意

      如果您使用 RHACS 版本 3.0.49 及更新的版本,对于 Issuer,您可以执行以下操作:

      • 为您的 root URL 为 https+insecure:// 前缀,以跳过 TLS 验证。此配置不安全,我们不推荐这样做。仅将其用于测试目的。
      • 指定查询字符串;例如,?key1=value1&key2=value2 和 root URL。当您将其输入到授权端点时,RHACS 将 Issuer 的值附加到授权端点。您可以使用它来自定义供应商的登录屏幕。例如,您可以使用 hd 参数将 Google Workspace 登录屏幕优化到特定的托管域,或使用 pfidpadapterid 参数PingFederate 中预选一个验证方法。
    • 客户端 ID :您配置的项目的 OIDC 客户端 ID。
    • Client Secret :输入身份提供程序(IdP)提供的客户端 secret。如果您不使用客户端 secret (不推荐),请选择 Do not use Client Secret
  4. 为使用所选 身份提供程序访问 RHACS 的用户分配最小 访问角色。

    提示

    完成设置时,将最小访问角色设置为 Admin。之后,您可以返回 Access Control 页面,根据您的身份提供程序中的用户元数据设置更多定制的访问规则。

  5. 要为访问 RHACS 的用户和组添加访问规则,请点击 Rules 部分中的 Add new rule。例如,要为名为 administrator 的用户提供 Admin 角色,您可以使用以下键值对创建访问规则:

    名称

    Administrator

    角色

    Admin

  6. Save

验证

  1. 在 RHACS 门户中,进入到 Platform Configuration Access Control
  2. 选择 Auth provider 选项卡。
  3. 选择您要验证配置的身份验证供应商。
  4. Auth Provider 部分标头中选择 Test loginTest 登录页面 将在新的浏览器标签页中打开。
  5. 使用您的凭证登录。

    • 如果您成功登录,RHACS 会显示用于登录到该系统的凭证的身份提供程序的用户 ID用户属性
    • 如果您的登录尝试失败,RHACS 会显示描述无法处理身份提供程序的响应信息。
  6. 关闭 Test Login 浏览器标签页。

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

OpenShift Container Platform 包括一个内置的 OAuth 服务器,可用作 Red Hat Advanced Cluster Security for Kubernetes (RHACS)的身份验证供应商。

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

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

先决条件

  • 您必须具有 AuthProvider 权限,才能在 RHACS 中配置身份提供程序。
  • 您必须已通过身份提供程序在 OpenShift Container Platform OAuth 服务器中配置了用户和组。有关身份提供程序要求的详情,请参阅 了解身份提供程序配置
注意

以下流程只为 OpenShift Container Platform OAuth 服务器配置一个名为 central 的主路由。

流程

  1. 在 RHACS 门户中,进入到 Platform Configuration Access Control
  2. Create auth provider,然后从下拉列表中选择 OpenShift Auth
  3. Name 字段中输入身份验证提供程序的名称。
  4. 为使用所选 身份提供程序访问 RHACS 的用户分配最小 访问角色。用户必须具有授予此角色的权限或具有较高权限的角色才能登录到 RHACS。

    提示

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

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

    提示

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

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

    • User Management Users &lt ;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 下拉列表中选择 name,在 Value 字段中输入 administrator,然后在 Role 下选择 Administrator
    • 要为组配置规则,请从 Key 下拉列表中选择 groups,在 Value 字段中输入 myAdministratorsGroup,然后在 Role 下选择 Admin
    • 要为用户名配置规则,请从 Key 下拉列表中选择 userid,在 Value 字段中输入 12345-00aa-1234-123b-123fcdef1234,然后在 Role 下选择 Admin
重要
  • 如果将自定义 TLS 证书用于 OpenShift Container Platform OAuth 服务器,您必须将 CA 的 root 证书作为可信 root 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 服务器不会返回密钥 电子邮件

18.4.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 自定义资源的补丁:

      $ 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
      将 & lt;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 配置文件的路径。

18.4.4. 使用 SSO 配置将 Azure AD 连接到 RHACS

要使用 Sign-On (SSO)配置将 Azure Active Directory (AD)连接到 RHACS,您需要向令牌添加特定的声明(例如, 声明到令牌),并将用户、组或两者都分配给企业级应用程序。

18.4.4.1. 使用 SSO 配置将组声明添加到 SAML 应用的令牌

在 Azure AD 中配置应用程序注册,以在令牌中包含 声明。具体步骤请参阅 使用 SSO 配置将组声明添加到 SAML 应用的 令牌中。

重要

验证您是否正在使用最新版本的 Azure AD。有关如何将 Azure AD 升级到最新版本的更多信息,请参阅 Azure AD Connect: 从上一版本升级到最新版本

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.