2.5. 配置身份提供程序并授予集群访问权限


Red Hat OpenShift Service on AWS (ROSA )包括内置 OAuth 服务器。创建 ROSA 集群后,您必须将 OAuth 配置为使用身份提供程序。然后,您可以在配置的身份提供程序中添加成员以授予它们对集群的访问权限。

您还可以根据需要为身份提供程序用户授予具有 cluster-admindedicated-admin 特权的身份提供程序用户。

2.5.1. 配置身份提供程序

您可以在 AWS (ROSA) 集群上为 Red Hat OpenShift Service 配置不同的身份提供程序类型。支持的类型包括 GitHub、GitHub Enterprise、GitLab、Google、LDAP、OpenID Connect 和 htpasswd 身份提供程序。

重要

htpasswd 身份提供程序选项仅用于创建单一静态管理用户。htpasswd 不支持作为 Red Hat OpenShift Service on AWS 的通用身份提供程序。

以下流程将 GitHub 身份提供程序配置为示例。

前提条件

  • 您有一个 AWS 帐户。
  • 在您的工作站上安装和配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI rosa
  • 您可以使用 ROSA CLI (rosa)登录到您的红帽帐户。
  • 您创建了 ROSA 集群。
  • 您有一个 GitHub 用户帐户。

流程

  1. 进入 github.com 并登录到您的 GitHub 帐户。
  2. 如果您没有用于置备 ROSA 集群的现有 GitHub 组织,请创建一个。按照 GitHub 文档中的步骤操作。
  3. 为集群配置 GitHub 身份提供程序,仅限于 GitHub 组织的成员。

    1. 使用互动模式配置身份提供程序:

      $ 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>
    2. 使用输出中的 URL 并选择 Register application,在 GitHub 组织中注册新的 OAuth 应用程序。通过注册应用程序,您可以启用 ROSA 中构建的 OAuth 服务器,以便验证您的 GitHub 组织的成员到集群中。

      注意

      Register a new OAuth application GitHub 表单中的字段通过 ROSA CLI 定义的 URL 自动填充所需的值。

    3. 使用 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.

      1
      使用 GitHub OAuth 应用程序的客户端 ID 替换 <github_client_id>
      2
      使用 GitHub OAuth 应用程序的客户端 secret 替换 <github_client_secret>
      3
      指定 claim 作为映射方法。
      注意

      激活身份提供商配置的过程可能需要大约两分钟。如果您配置了 cluster-admin 用户,可以通过运行 oc get pods -n openshift-authentication --watch 来监控使用更新的配置重新部署 OAuth pod。

    4. 输入以下命令验证身份提供程序是否已正确配置:

      $ 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

其他资源

2.5.2. 授予用户对集群的访问权限

您可以通过将 Red Hat OpenShift Service 添加到您配置的身份供应商,授予用户对 Red Hat OpenShift Service on AWS (ROSA) 集群的访问权限。

您可以为 ROSA 集群配置不同类型的身份提供程序。以下示例流程将用户添加到配置为集群身份的 GitHub 机构中。

前提条件

  • 您有一个 AWS 帐户。
  • 在您的工作站上安装和配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI rosa
  • 您可以使用 ROSA CLI (rosa)登录到您的红帽帐户。
  • 您创建了 ROSA 集群。
  • 您有一个 GitHub 用户帐户。
  • 您已为集群配置了 GitHub 身份提供程序。

流程

  1. 进入 github.com 并登录到您的 GitHub 帐户。
  2. 邀请需要访问您的 GitHub 机构 ROSA 集群的用户。按照 GitHub 文档中的邀请用户加入到您的机构

2.5.3. 为用户授予管理员权限

将用户添加到配置的身份提供程序后,您可以在 AWS (ROSA) 集群中为 Red Hat OpenShift Service 授予用户 cluster-admindedicated-admin 权限。

前提条件

  • 您有一个 AWS 帐户。
  • 在您的工作站上安装和配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI rosa
  • 您可以使用 ROSA CLI (rosa)登录到您的红帽帐户。
  • 您创建了 ROSA 集群。
  • 您已为集群配置了 GitHub 身份提供程序,并添加了身份提供程序用户。

流程

  • 为身份提供程序用户配置 cluster-admin 权限:

    1. 授予用户 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>'

    2. 验证该用户是否被列为 cluster-admins 组的成员:

      $ rosa list users --cluster=<cluster_name>

      输出示例

      ID                 GROUPS
      <idp_user_name>    cluster-admins

  • 为身份提供程序用户配置 dedicated-admin 权限:

    1. 授予用户 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>'

    2. 验证该用户是否被列为 dedicated-admins 组的成员:

      $ rosa list users --cluster=<cluster_name>

      输出示例

      ID                 GROUPS
      <idp_user_name>    dedicated-admins

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.