×

创建 Red Hat OpenShift Service on AWS (ROSA) 集群后,必须配置身份提供商以确定用户如何登录以访问集群。

以下主题描述如何使用 OpenShift 集群管理器控制台配置身份提供商。或者,您可以使用 ROSA CLI (rosa) 配置身份提供商并访问集群。

了解身份提供商

Red Hat OpenShift Service on AWS 包含一个内置的 OAuth 服务器。开发人员和管理员获取 OAuth 访问令牌以向 API 进行身份验证。作为管理员,您可以在安装集群后配置 OAuth 以指定身份提供商。配置身份提供商允许用户登录并访问集群。

支持的身份提供商

您可以配置以下类型的身份提供商

身份提供商 描述

GitHub 或 GitHub Enterprise

配置 GitHub 身份提供商以针对 GitHub 或 GitHub Enterprise 的 OAuth 身份验证服务器验证用户名和密码。

GitLab

配置 GitLab 身份提供商以使用 GitLab.com 或任何其他 GitLab 实例作为身份提供商。

Google

使用 Google 的 OpenID Connect 集成 配置 Google 身份提供商。

LDAP

配置 LDAP 身份提供商以使用简单绑定身份验证针对 LDAPv3 服务器验证用户名和密码。

OpenID Connect

配置 OpenID Connect (OIDC) 身份提供商以使用 授权码流程 与 OIDC 身份提供商集成。

htpasswd

为单个静态管理员用户配置 htpasswd 身份提供商。您可以以用户身份登录集群以排除故障。

htpasswd 身份提供商选项仅包含在内以启用单个静态管理员用户的创建。htpasswd 不支持作为 Red Hat OpenShift Service on AWS 的通用身份提供商。有关配置单个用户的步骤,请参阅 *配置 htpasswd 身份提供商*。

身份提供商参数

以下参数对所有身份提供商都是通用的

参数 描述

名称

提供商名称作为前缀添加到提供商用户名以形成身份名称。

mappingMethod

定义用户登录时如何将新身份映射到用户。输入以下值之一

声明

默认值。使用身份的首选用户名配置用户。如果具有该用户名的用户已映射到另一个身份,则会失败。

查找

查找现有身份、用户身份映射和用户,但不自动配置用户或身份。这允许集群管理员手动设置身份和用户,或使用外部流程。使用此方法需要您手动配置用户。

添加

使用身份的首选用户名配置用户。如果已存在具有该用户名的用户,则该身份将映射到现有用户,添加到该用户的任何现有身份映射。当配置多个识别同一组用户并映射到相同用户名的身份提供商时,需要此项。

添加或更改身份提供商时,您可以通过将 mappingMethod 参数设置为 add 来将新提供商中的身份映射到现有用户。

配置 GitHub 身份提供商

配置 GitHub 身份提供商以针对 GitHub 或 GitHub Enterprise 的 OAuth 身份验证服务器验证用户名和密码,并访问您的 Red Hat OpenShift Service on AWS 集群。OAuth 促进了 Red Hat OpenShift Service on AWS 和 GitHub 或 GitHub Enterprise 之间的令牌交换流程。

配置 GitHub 身份验证允许用户使用其 GitHub 凭据登录到 Red Hat OpenShift Service on AWS。为防止任何具有任何 GitHub 用户 ID 的用户登录到您的 Red Hat OpenShift Service on AWS 集群,您必须限制访问权限,仅限于特定 GitHub 组织或团队中的用户。

先决条件
步骤
  1. OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。

  2. 单击 **访问控制** 选项卡。

  3. 单击 **添加身份提供商**。

    您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。

  4. 从下拉菜单中选择 **GitHub**。

  5. 输入身份提供商的唯一名称。此名称以后无法更改。

    • **OAuth 回调 URL** 会自动在提供的字段中生成。您将使用它来注册 GitHub 应用程序。

      https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>

      例如

      https://oauth-openshift.apps.openshift-cluster.example.com/oauth2callback/github
  6. 在 GitHub 上注册应用程序.

  7. 返回 Red Hat OpenShift Service on AWS 并从下拉菜单中选择映射方法。在大多数情况下,建议使用 **声明**。

  8. 输入 GitHub 提供的 **客户端 ID** 和 **客户端密钥**。

  9. 输入 **主机名**。使用 GitHub Enterprise 的托管实例时,必须输入主机名。

  10. 可选:您可以使用证书颁发机构 (CA) 文件来验证已配置的 GitHub Enterprise URL 的服务器证书。单击 **浏览** 以查找并将 **CA 文件** 附加到身份提供商。

  11. 选择 **使用组织** 或 **使用团队** 以将访问权限限制为特定的 GitHub 组织或 GitHub 团队。

  12. 输入您要限制访问权限的组织或团队的名称。单击 **添加更多** 以指定用户可以是其成员的多个组织或团队。

  13. 单击 **确认**。

验证
  • 现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。

配置 GitLab 身份提供商

配置 GitLab 身份提供商以使用 GitLab.com 或任何其他 GitLab 实例作为身份提供商。

先决条件
  • 如果您使用的是 GitLab 7.7.0 到 11.0 版本,则可以使用 OAuth 集成 进行连接。如果您使用的是 GitLab 11.1 或更高版本,则可以使用 OpenID Connect (OIDC) 进行连接,而不是 OAuth。

步骤
  1. OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。

  2. 单击 **访问控制** 选项卡。

  3. 单击 **添加身份提供商**。

    您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。

  4. 从下拉菜单中选择GitLab

  5. 输入身份提供商的唯一名称。此名称以后无法更改。

    • OAuth 回调 URL 将自动生成在提供的字段中。您需要将此 URL 提供给 GitLab。

      https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>

      例如

      https://oauth-openshift.apps.openshift-cluster.example.com/oauth2callback/gitlab
  6. 在 GitLab 中添加一个新的应用程序。.

  7. 返回 Red Hat OpenShift Service on AWS 并从下拉菜单中选择映射方法。在大多数情况下,建议使用 **声明**。

  8. 输入 GitLab 提供的客户端 ID客户端密钥

  9. 输入您的 GitLab 提供商的URL

  10. 可选:您可以使用证书颁发机构 (CA) 文件来验证为已配置的 GitLab URL 配置的服务器证书。单击浏览以查找并附加CA 文件到身份提供程序。

  11. 单击 **确认**。

验证
  • 现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。

配置 Google 身份提供程序

配置 Google 身份提供程序以允许用户使用其 Google 凭据进行身份验证。

使用 Google 作为身份提供程序允许任何 Google 用户向您的服务器进行身份验证。您可以使用hostedDomain配置属性将身份验证限制为特定托管域的成员。

步骤
  1. OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。

  2. 单击 **访问控制** 选项卡。

  3. 单击 **添加身份提供商**。

    您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。

  4. 从下拉菜单中选择Google

  5. 输入身份提供商的唯一名称。此名称以后无法更改。

    • OAuth 回调 URL 将自动生成在提供的字段中。您需要将此 URL 提供给 Google。

      https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>

      例如

      https://oauth-openshift.apps.openshift-cluster.example.com/oauth2callback/google
  6. 使用 Google 的 OpenID Connect 集成 配置 Google 身份提供商。

  7. 返回 Red Hat OpenShift Service on AWS 并从下拉菜单中选择映射方法。在大多数情况下,建议使用 **声明**。

  8. 输入已注册的 Google 项目的客户端 ID 和 Google 发行的客户端密钥

  9. 输入托管域以将用户限制在 Google Apps 域中。

  10. 单击 **确认**。

验证
  • 现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。

配置 LDAP 身份提供程序

配置 LDAP 身份提供程序以使用简单的绑定身份验证,针对 LDAPv3 服务器验证用户名和密码。

先决条件
  • 配置 LDAP 身份提供程序时,您需要输入已配置的LDAP URL。已配置的 URL 是 RFC 2255 URL,它指定要使用的 LDAP 主机和搜索参数。URL 的语法是:

    ldap://host:port/basedn?attribute?scope?filter
    URL 组件 描述

    ldap

    对于常规 LDAP,使用字符串ldap。对于安全 LDAP (LDAPS),请改用ldaps

    host:port

    LDAP 服务器的名称和端口。对于 ldap,默认为localhost:389;对于 LDAPS,默认为localhost:636

    basedn

    所有搜索都应从中开始的目录分支的 DN。至少,这必须是目录树的顶部,但它也可以指定目录中的子树。

    attribute

    要搜索的属性。尽管 RFC 2255 允许使用逗号分隔的属性列表,但无论提供多少属性,都只使用第一个属性。如果未提供任何属性,则默认为使用uid。建议选择一个属性,该属性在您将使用的子树中的所有条目中都是唯一的。

    scope

    搜索的范围。可以是onesub。如果未提供范围,则默认为使用范围sub

    filter

    有效的 LDAP 搜索过滤器。如果未提供,则默认为(objectClass=*)

    进行搜索时,属性、过滤器和提供的用户名将组合起来创建一个看起来像这样的搜索过滤器:

    (&(<filter>)(<attribute>=<username>))
    如果 LDAP 目录需要身份验证才能进行搜索,请指定要用于执行条目搜索的bindDNbindPassword
步骤
  1. OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。

  2. 单击 **访问控制** 选项卡。

  3. 单击 **添加身份提供商**。

    您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。

  4. 从下拉菜单中选择LDAP

  5. 输入身份提供商的唯一名称。此名称以后无法更改。

  6. 从下拉菜单中选择一种映射方法。在大多数情况下,建议使用声明

  7. 输入LDAP URL以指定要使用的 LDAP 搜索参数。

  8. 可选:输入绑定 DN绑定密码

  9. 输入将 LDAP 属性映射到身份的属性。

    • 输入一个ID属性,其值应作为用户 ID 使用。单击添加更多以添加多个 ID 属性。

    • 可选:输入一个首选用户名属性,其值应作为显示名称使用。单击添加更多以添加多个首选用户名属性。

    • 可选:输入一个电子邮件属性,其值应作为电子邮件地址使用。单击添加更多以添加多个电子邮件属性。

  10. 可选:单击显示高级选项以将证书颁发机构 (CA) 文件添加到您的 LDAP 身份提供程序,以验证为已配置的 URL 配置的服务器证书。单击浏览以查找并附加CA 文件到身份提供程序。

  11. 可选:在高级选项下,您可以选择使 LDAP 提供程序不安全。如果您选择此选项,则不能使用 CA 文件。

    如果您使用的是不安全的 LDAP 连接 (ldap:// 或端口 389),则必须在配置向导中选中不安全选项。

  12. 单击 **确认**。

验证
  • 现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。

配置 OpenID 身份提供程序

配置 OpenID 身份提供程序以使用 授权码流程 与 OpenID Connect 身份提供程序集成。

AWS 上的 Red Hat OpenShift 服务中的身份验证操作员要求已配置的 OpenID Connect 身份提供程序实现 OpenID Connect Discovery 规范。

声明是从 OpenID 身份提供程序返回的 JWT id_token 中读取的,如果指定了,则从发行者 URL 返回的 JSON 中读取。

必须至少配置一个声明用作用户的身份。

您还可以指示哪些声明用作用户的首选用户名、显示名称和电子邮件地址。如果指定了多个声明,则使用第一个具有非空值的值。标准声明是:

声明 描述

preferred_username

配置用户时的首选用户名。用户希望被称为的简写名称,例如janedoe。通常是一个与用户在身份验证系统中的登录名或用户名相对应的值,例如用户名或电子邮件。

email

电子邮件地址。

名称

显示名称。

有关更多信息,请参阅 OpenID 声明文档

先决条件
  • 在配置 OpenID Connect 之前,请检查要与 AWS 上的 Red Hat OpenShift 服务集群一起使用的任何 Red Hat 产品或服务的安装前提条件。

步骤
  1. OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。

  2. 单击 **访问控制** 选项卡。

  3. 单击 **添加身份提供商**。

    您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。

  4. 从下拉菜单中选择OpenID

  5. 输入身份提供商的唯一名称。此名称以后无法更改。

    • OAuth 回调 URL 将自动生成在提供的字段中。

      https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>

      例如

      https://oauth-openshift.apps.openshift-cluster.example.com/oauth2callback/openid
  6. 按照 创建授权请求 的步骤,在 OpenID 身份提供程序中注册一个新的 OpenID Connect 客户端。

  7. 返回 Red Hat OpenShift Service on AWS 并从下拉菜单中选择映射方法。在大多数情况下,建议使用 **声明**。

  8. 输入 OpenID 提供的客户端 ID客户端密钥

  9. 输入**发行者 URL**。这是 OpenID 提供商声明为发行者标识符的 URL。它必须使用 https 方案,且不包含 URL 查询参数或片段。

  10. 输入其值应用作电子邮件地址的**电子邮件**属性。单击**添加更多**以添加多个电子邮件属性。

  11. 输入其值应用作首选用户名 的**名称**属性。单击**添加更多**以添加多个首选用户名。

  12. 输入其值应用作显示名称的**首选用户名**属性。单击**添加更多**以添加多个显示名称。

  13. 可选:单击**显示高级选项**以将证书颁发机构 (CA) 文件添加到您的 OpenID 身份提供商。

  14. 可选:在高级选项下,您可以添加**附加作用域**。默认情况下,将请求OpenID作用域。

  15. 单击 **确认**。

验证
  • 现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。

配置 htpasswd 身份提供商

配置 htpasswd 身份提供商以创建一个具有集群管理权限的单个静态用户。您可以以该用户身份登录到您的集群以对问题进行故障排除。

仅包含 htpasswd 身份提供商选项是为了启用创建单个静态管理员用户。htpasswd 不支持作为 AWS 上 Red Hat OpenShift 服务的通用身份提供商。

步骤
  1. OpenShift 集群管理器,导航到**集群列表**页面并选择您的集群。

  2. 选择**访问控制** → **身份提供商**。

  3. 单击 **添加身份提供商**。

  4. 从**身份提供商**下拉菜单中选择**HTPasswd**。

  5. 在身份提供商的**名称**字段中添加唯一名称。

  6. 使用建议的静态用户的用户名和密码,或创建您自己的用户名和密码。

    在您在下一步中选择**添加**后,此步骤中定义的凭据将不可见。如果您丢失了凭据,则必须重新创建身份提供商并再次定义凭据。

  7. 选择**添加**以创建 htpasswd 身份提供商和单个静态用户。

  8. 授予静态用户管理集群的权限

    1. 在**访问控制** → **集群角色和访问**下,选择**添加用户**。

    2. 输入您在上一步中创建的静态用户的**用户 ID**。

    3. 选择一个**组**。dedicated-admins组中的用户对 AWS 上的 Red Hat OpenShift 服务具有标准的管理权限。cluster-admins组中的用户对集群拥有完全的管理访问权限。

    4. 选择**添加用户**以授予用户管理权限。

验证
  • 配置的 htpasswd 身份提供商在**访问控制** → **身份提供商**页面上可见。

    创建身份提供商后,同步通常在两分钟内完成。htpasswd 身份提供商可用后,您可以以该用户身份登录到集群。

  • 单个管理员用户在**访问控制** → **集群角色和访问**页面上可见。还显示用户的管理组成员资格。