1.5. 配置身份提供程序并授予集群访问权限
Red Hat OpenShift Service on AWS (ROSA )包括内置 OAuth 服务器。创建 ROSA 集群后,您必须将 OAuth 配置为使用身份提供程序。然后,您可以在配置的身份提供程序中添加成员以授予它们对集群的访问权限。
您还可以根据需要为身份提供程序用户授予具有 cluster-admin
或 dedicated-admin
特权的身份提供程序用户。
配置身份提供程序
您可以在 AWS (ROSA) 集群上为 Red Hat OpenShift Service 配置不同的身份提供程序类型。支持的类型包括 GitHub、GitHub Enterprise、GitLab、Google、LDAP、OpenID Connect 和 htpasswd 身份提供程序。
htpasswd 身份提供程序选项仅用于创建单一静态管理用户。htpasswd 不支持作为 Red Hat OpenShift Service on AWS 的通用身份提供程序。
以下流程将 GitHub 身份提供程序配置为示例。
流程
- 进入 github.com 并登录到您的 GitHub 帐户。
- 如果您没有用于置备 ROSA 集群的现有 GitHub 组织,请创建一个。按照 GitHub 文档中的步骤操作。
为集群配置 GitHub 身份提供程序,仅限于 GitHub 组织的成员。
使用互动模式配置身份提供程序:
$ rosa create idp --cluster=<cluster_name> --interactive 1
- 1
- 将
<cluster_name>
替换为集群的名称。
输出示例
I: Interactive mode enabled. Any optional fields can be left empty and a default will be selected. ? Type of identity provider: github ? Identity provider name: github-1 ? Restrict to members of: organizations ? GitHub organizations: <github_org_name> 1 ? To use GitHub as an identity provider, you must first register the application: - Open the following URL: https://github.com/organizations/<github_org_name>/settings/applications/new?oauth_application%5Bcallback_url%5D=https%3A%2F%2Foauth-openshift.apps.<cluster_name>/<random_string>.p1.openshiftapps.com%2Foauth2callback%2Fgithub-1&oauth_application%5Bname%5D=<cluster_name>&oauth_application%5Burl%5D=https%3A%2F%2Fconsole-openshift-console.apps.<cluster_name>/<random_string>.p1.openshiftapps.com - Click on 'Register application' ...
- 1
- 使用您的 GitHub 机构的名称替换
<github_org_name>
。
使用输出中的 URL 并选择 Register application,在 GitHub 组织中注册新的 OAuth 应用程序。通过注册应用程序,您可以启用 ROSA 中构建的 OAuth 服务器,以便验证您的 GitHub 组织的成员到集群中。
注意Register a new OAuth application GitHub 表单中的字段通过 ROSA CLI 定义的 URL 自动填充所需的值。
使用 GitHub OAuth 应用页面中的信息填充剩余的
rosa create idp
交互式提示。持续的输出示例
... ? Client ID: <github_client_id> 1 ? Client Secret: [? for help] <github_client_secret> 2 ? GitHub Enterprise Hostname (optional): ? Mapping method: claim 3 I: Configuring IDP for cluster '<cluster_name>' I: Identity Provider 'github-1' has been created. It will take up to 1 minute for this configuration to be enabled. To add cluster administrators, see 'rosa grant user --help'. To login into the console, open https://console-openshift-console.apps.<cluster_name>.<random_string>.p1.openshiftapps.com and click on github-1.
注意激活身份提供商配置的过程可能需要大约两分钟。如果您配置了
cluster-admin
用户,可以通过运行oc get pods -n openshift-authentication --watch
来监控使用更新的配置重新部署 OAuth pod。输入以下命令验证身份提供程序是否已正确配置:
$ rosa list idps --cluster=<cluster_name>
输出示例
NAME TYPE AUTH URL github-1 GitHub https://oauth-openshift.apps.<cluster_name>.<random_string>.p1.openshiftapps.com/oauth2callback/github-1
其他资源
- 有关配置每个支持的身份提供程序类型的详细步骤,请参阅为 STS 配置身份提供程序。
授予用户对集群的访问权限
您可以通过将 Red Hat OpenShift Service 添加到您配置的身份供应商,授予用户对 Red Hat OpenShift Service on AWS (ROSA) 集群的访问权限。
您可以为 ROSA 集群配置不同类型的身份提供程序。以下示例流程将用户添加到配置为集群身份的 GitHub 机构中。
流程
- 进入 github.com 并登录到您的 GitHub 帐户。
- 邀请需要访问您的 GitHub 机构 ROSA 集群的用户。按照 GitHub 文档中的邀请用户加入到您的机构 。
为用户授予管理员权限
将用户添加到配置的身份提供程序后,您可以在 AWS (ROSA) 集群中为 Red Hat OpenShift Service 授予用户 cluster-admin
或 dedicated-admin
权限。
流程
为身份提供程序用户配置
cluster-admin
权限:授予用户
cluster-admin
权限:$ rosa grant user cluster-admin --user=<idp_user_name> --cluster=<cluster_name> 1
- 1
- 使用身份提供程序用户和集群名称替换
<idp_user_name>
和<cluster_name>
。
输出示例
I: Granted role 'cluster-admins' to user '<idp_user_name>' on cluster '<cluster_name>'
验证该用户是否被列为
cluster-admins
组的成员:$ rosa list users --cluster=<cluster_name>
输出示例
ID GROUPS <idp_user_name> cluster-admins
为身份提供程序用户配置
dedicated-admin
权限:授予用户
dedicated-admin
权限:$ rosa grant user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>
输出示例
I: Granted role 'dedicated-admins' to user '<idp_user_name>' on cluster '<cluster_name>'
验证该用户是否被列为
dedicated-admins
组的成员:$ rosa list users --cluster=<cluster_name>
输出示例
ID GROUPS <idp_user_name> dedicated-admins