GitHub 或 GitHub Enterprise
创建 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 的 OpenID Connect 集成 配置 Google 身份提供商。 |
|||
LDAP |
配置 LDAP 身份提供商以使用简单绑定身份验证针对 LDAPv3 服务器验证用户名和密码。 |
||
OpenID Connect |
配置 OpenID Connect (OIDC) 身份提供商以使用 授权码流程 与 OIDC 身份提供商集成。 |
||
htpasswd |
为单个静态管理员用户配置 htpasswd 身份提供商。您可以以用户身份登录集群以排除故障。
|
以下参数对所有身份提供商都是通用的
参数 | 描述 |
---|---|
|
提供商名称作为前缀添加到提供商用户名以形成身份名称。 |
|
定义用户登录时如何将新身份映射到用户。输入以下值之一
|
添加或更改身份提供商时,您可以通过将 mappingMethod 参数设置为 add 来将新提供商中的身份映射到现有用户。 |
配置 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 组织或团队中的用户。 |
必须由 GitHub 组织管理员直接在 GitHub 组织设置 中创建 OAuth 应用程序。
GitHub 组织或团队 设置在您的 GitHub 帐户中。
从 OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。
单击 **访问控制** 选项卡。
单击 **添加身份提供商**。
您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。 |
从下拉菜单中选择 **GitHub**。
输入身份提供商的唯一名称。此名称以后无法更改。
**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
返回 Red Hat OpenShift Service on AWS 并从下拉菜单中选择映射方法。在大多数情况下,建议使用 **声明**。
输入 GitHub 提供的 **客户端 ID** 和 **客户端密钥**。
输入 **主机名**。使用 GitHub Enterprise 的托管实例时,必须输入主机名。
可选:您可以使用证书颁发机构 (CA) 文件来验证已配置的 GitHub Enterprise URL 的服务器证书。单击 **浏览** 以查找并将 **CA 文件** 附加到身份提供商。
选择 **使用组织** 或 **使用团队** 以将访问权限限制为特定的 GitHub 组织或 GitHub 团队。
输入您要限制访问权限的组织或团队的名称。单击 **添加更多** 以指定用户可以是其成员的多个组织或团队。
单击 **确认**。
现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。
配置 GitLab 身份提供商以使用 GitLab.com 或任何其他 GitLab 实例作为身份提供商。
如果您使用的是 GitLab 7.7.0 到 11.0 版本,则可以使用 OAuth 集成 进行连接。如果您使用的是 GitLab 11.1 或更高版本,则可以使用 OpenID Connect (OIDC) 进行连接,而不是 OAuth。
从 OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。
单击 **访问控制** 选项卡。
单击 **添加身份提供商**。
您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。 |
从下拉菜单中选择GitLab。
输入身份提供商的唯一名称。此名称以后无法更改。
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
返回 Red Hat OpenShift Service on AWS 并从下拉菜单中选择映射方法。在大多数情况下,建议使用 **声明**。
输入 GitLab 提供的客户端 ID 和客户端密钥。
输入您的 GitLab 提供商的URL。
可选:您可以使用证书颁发机构 (CA) 文件来验证为已配置的 GitLab URL 配置的服务器证书。单击浏览以查找并附加CA 文件到身份提供程序。
单击 **确认**。
现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。
配置 Google 身份提供程序以允许用户使用其 Google 凭据进行身份验证。
使用 Google 作为身份提供程序允许任何 Google 用户向您的服务器进行身份验证。您可以使用 |
从 OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。
单击 **访问控制** 选项卡。
单击 **添加身份提供商**。
您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。 |
从下拉菜单中选择Google。
输入身份提供商的唯一名称。此名称以后无法更改。
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
使用 Google 的 OpenID Connect 集成 配置 Google 身份提供商。
返回 Red Hat OpenShift Service on AWS 并从下拉菜单中选择映射方法。在大多数情况下,建议使用 **声明**。
输入已注册的 Google 项目的客户端 ID 和 Google 发行的客户端密钥。
输入托管域以将用户限制在 Google Apps 域中。
单击 **确认**。
现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。
配置 LDAP 身份提供程序以使用简单的绑定身份验证,针对 LDAPv3 服务器验证用户名和密码。
配置 LDAP 身份提供程序时,您需要输入已配置的LDAP URL。已配置的 URL 是 RFC 2255 URL,它指定要使用的 LDAP 主机和搜索参数。URL 的语法是:
ldap://host:port/basedn?attribute?scope?filter
URL 组件 | 描述 |
---|---|
|
对于常规 LDAP,使用字符串 |
|
LDAP 服务器的名称和端口。对于 ldap,默认为 |
|
所有搜索都应从中开始的目录分支的 DN。至少,这必须是目录树的顶部,但它也可以指定目录中的子树。 |
|
要搜索的属性。尽管 RFC 2255 允许使用逗号分隔的属性列表,但无论提供多少属性,都只使用第一个属性。如果未提供任何属性,则默认为使用 |
|
搜索的范围。可以是 |
|
有效的 LDAP 搜索过滤器。如果未提供,则默认为 |
进行搜索时,属性、过滤器和提供的用户名将组合起来创建一个看起来像这样的搜索过滤器:
(&(<filter>)(<attribute>=<username>))
如果 LDAP 目录需要身份验证才能进行搜索,请指定要用于执行条目搜索的bindDN 和bindPassword 。 |
从 OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。
单击 **访问控制** 选项卡。
单击 **添加身份提供商**。
您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。 |
从下拉菜单中选择LDAP。
输入身份提供商的唯一名称。此名称以后无法更改。
从下拉菜单中选择一种映射方法。在大多数情况下,建议使用声明。
输入LDAP URL以指定要使用的 LDAP 搜索参数。
可选:输入绑定 DN和绑定密码。
输入将 LDAP 属性映射到身份的属性。
输入一个ID属性,其值应作为用户 ID 使用。单击添加更多以添加多个 ID 属性。
可选:输入一个首选用户名属性,其值应作为显示名称使用。单击添加更多以添加多个首选用户名属性。
可选:输入一个电子邮件属性,其值应作为电子邮件地址使用。单击添加更多以添加多个电子邮件属性。
可选:单击显示高级选项以将证书颁发机构 (CA) 文件添加到您的 LDAP 身份提供程序,以验证为已配置的 URL 配置的服务器证书。单击浏览以查找并附加CA 文件到身份提供程序。
可选:在高级选项下,您可以选择使 LDAP 提供程序不安全。如果您选择此选项,则不能使用 CA 文件。
如果您使用的是不安全的 LDAP 连接 (ldap:// 或端口 389),则必须在配置向导中选中不安全选项。 |
单击 **确认**。
现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。
配置 OpenID 身份提供程序以使用 授权码流程 与 OpenID Connect 身份提供程序集成。
AWS 上的 Red Hat OpenShift 服务中的身份验证操作员要求已配置的 OpenID Connect 身份提供程序实现 OpenID Connect Discovery 规范。 |
声明是从 OpenID 身份提供程序返回的 JWT id_token
中读取的,如果指定了,则从发行者 URL 返回的 JSON 中读取。
必须至少配置一个声明用作用户的身份。
您还可以指示哪些声明用作用户的首选用户名、显示名称和电子邮件地址。如果指定了多个声明,则使用第一个具有非空值的值。标准声明是:
声明 | 描述 |
---|---|
|
配置用户时的首选用户名。用户希望被称为的简写名称,例如 |
|
电子邮件地址。 |
|
显示名称。 |
有关更多信息,请参阅 OpenID 声明文档。
在配置 OpenID Connect 之前,请检查要与 AWS 上的 Red Hat OpenShift 服务集群一起使用的任何 Red Hat 产品或服务的安装前提条件。
从 OpenShift 集群管理器 导航到 **集群列表** 页面,然后选择您需要为其配置身份提供商的集群。
单击 **访问控制** 选项卡。
单击 **添加身份提供商**。
您也可以单击集群创建后显示的警告消息中的 **添加 Oauth 配置** 链接来配置您的身份提供商。 |
从下拉菜单中选择OpenID。
输入身份提供商的唯一名称。此名称以后无法更改。
OAuth 回调 URL 将自动生成在提供的字段中。
https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>
例如
https://oauth-openshift.apps.openshift-cluster.example.com/oauth2callback/openid
按照 创建授权请求 的步骤,在 OpenID 身份提供程序中注册一个新的 OpenID Connect 客户端。
返回 Red Hat OpenShift Service on AWS 并从下拉菜单中选择映射方法。在大多数情况下,建议使用 **声明**。
输入 OpenID 提供的客户端 ID和客户端密钥。
输入**发行者 URL**。这是 OpenID 提供商声明为发行者标识符的 URL。它必须使用 https 方案,且不包含 URL 查询参数或片段。
输入其值应用作电子邮件地址的**电子邮件**属性。单击**添加更多**以添加多个电子邮件属性。
输入其值应用作首选用户名 的**名称**属性。单击**添加更多**以添加多个首选用户名。
输入其值应用作显示名称的**首选用户名**属性。单击**添加更多**以添加多个显示名称。
可选:单击**显示高级选项**以将证书颁发机构 (CA) 文件添加到您的 OpenID 身份提供商。
可选:在高级选项下,您可以添加**附加作用域**。默认情况下,将请求OpenID
作用域。
单击 **确认**。
现在可以在 **集群列表** 页面的 **访问控制** 选项卡上看到已配置的身份提供商。
配置 htpasswd 身份提供商以创建一个具有集群管理权限的单个静态用户。您可以以该用户身份登录到您的集群以对问题进行故障排除。
仅包含 htpasswd 身份提供商选项是为了启用创建单个静态管理员用户。htpasswd 不支持作为 AWS 上 Red Hat OpenShift 服务的通用身份提供商。 |
从OpenShift 集群管理器,导航到**集群列表**页面并选择您的集群。
选择**访问控制** → **身份提供商**。
单击 **添加身份提供商**。
从**身份提供商**下拉菜单中选择**HTPasswd**。
在身份提供商的**名称**字段中添加唯一名称。
使用建议的静态用户的用户名和密码,或创建您自己的用户名和密码。
在您在下一步中选择**添加**后,此步骤中定义的凭据将不可见。如果您丢失了凭据,则必须重新创建身份提供商并再次定义凭据。 |
选择**添加**以创建 htpasswd 身份提供商和单个静态用户。
授予静态用户管理集群的权限
在**访问控制** → **集群角色和访问**下,选择**添加用户**。
输入您在上一步中创建的静态用户的**用户 ID**。
选择一个**组**。dedicated-admins
组中的用户对 AWS 上的 Red Hat OpenShift 服务具有标准的管理权限。cluster-admins
组中的用户对集群拥有完全的管理访问权限。
选择**添加用户**以授予用户管理权限。
配置的 htpasswd 身份提供商在**访问控制** → **身份提供商**页面上可见。
创建身份提供商后,同步通常在两分钟内完成。htpasswd 身份提供商可用后,您可以以该用户身份登录到集群。 |
单个管理员用户在**访问控制** → **集群角色和访问**页面上可见。还显示用户的管理组成员资格。