×

创建 AWS 上的 Red Hat OpenShift 服务集群后,必须配置身份提供商以确定用户如何登录以访问集群。

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

了解身份提供商

AWS 上的 Red Hat OpenShift 服务包含一个内置的 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 不支持作为 AWS 上 Red Hat OpenShift 服务的通用身份提供商。有关配置单个用户的步骤,请参见“配置 htpasswd 身份提供商”。

身份提供商参数

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

参数 描述

name

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

mappingMethod

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

claim

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

lookup

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

add

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

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

配置 GitHub 身份提供商

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

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

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

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

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

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

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

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

    • 在提供的字段中会自动生成一个“OAuth 回调 URL”。您将使用此 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. 返回到 AWS 上的 Red Hat OpenShift 服务,并从下拉菜单中选择映射方法。“声明”在大多数情况下是推荐的。

  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. 返回到 AWS 上的 Red Hat OpenShift 服务,并从下拉菜单中选择映射方法。“声明”在大多数情况下是推荐的。

  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. 返回到 AWS 上的 Red Hat OpenShift 服务,并从下拉菜单中选择映射方法。“声明”在大多数情况下是推荐的。

  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

电子邮件地址。

name

显示名称。

有关更多信息,请参阅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. 返回到 AWS 上的 Red Hat OpenShift 服务,并从下拉菜单中选择映射方法。“声明”在大多数情况下是推荐的。

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

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

  10. 输入一个邮箱属性,其值将用作邮箱地址。点击添加更多以添加多个邮箱属性。

  11. 输入一个用户名属性,其值将用作首选用户名。点击添加更多以添加多个首选用户名。

  12. 输入一个首选用户名属性,其值将用作显示名称。点击添加更多以添加多个显示名称。

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

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

  15. 单击“确认”。

验证
  • 现在,“集群列表”页面的“访问控制”选项卡上可见已配置的身份提供商。

配置 htpasswd 身份提供者

配置 htpasswd 身份提供者以创建一个具有集群管理权限的单个静态用户。您可以以该用户身份登录集群以排查问题。

htpasswd 身份提供者选项仅包含在内,以启用创建单个静态管理员用户。对于 AWS 上的 Red Hat OpenShift 服务,htpasswd 不支持作为通用身份提供者。

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

  2. 选择访问控制身份提供者

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

  4. 身份提供者下拉菜单中选择HTPasswd

  5. 名称字段中为身份提供者添加一个唯一名称。

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

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

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

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

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

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

    3. 选择添加用户以授予用户管理员权限。

验证
  • 配置的 htpasswd 身份提供者将显示在访问控制身份提供者页面上。

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

  • 单个管理员用户将显示在访问控制集群角色和访问页面上。还将显示用户的管理员组成员身份。