13.3.10.2. 在 master 上配置身份验证


  1. 如果您有:

    • 已安装 OpenShift Container Platform,然后将 /etc/origin/master/master-config.yaml 文件复制到新目录中,例如:

      $ cd /etc/origin/master
      $ mkdir githubconfig; cp master-config.yaml githubconfig
      Copy to Clipboard Toggle word wrap
    • 尚未安装 OpenShift Container Platform,然后启动 OpenShift Container Platform API 服务器,指定(future)OpenShift Container Platform master 的主机名,以及一个用于存储由 start 命令创建的配置文件的目录:

      $ openshift start master --public-master=<apiserver> --write-config=<directory>
      Copy to Clipboard Toggle word wrap

      例如:

      $ openshift start master --public-master=https://myapiserver.com:8443 --write-config=githubconfig
      Copy to Clipboard Toggle word wrap
      注意

      如果要使用 Ansible 安装,您必须将 identityProvider 配置添加到 Ansible playbook 中。如果在使用 Ansible 安装后使用以下步骤手动修改配置,那么每当您重新运行安装工具或升级时,您都会丢失任何修改。

      注意

      使用 openshift 自行启动 master 将自动检测主机名,但 GitHub 必须能够重定向到您在注册应用程序时指定的准确主机名。因此,您无法自动检测 ID,因为它可能会重定向到错误的地址。反之,您必须指定 Web 浏览器用来与 OpenShift Container Platform 集群交互的主机名。

  2. 编辑新的 master-config.yaml 文件的 identityProviders 小节,并复制示例 GitHubIdentityProvider 配置并粘贴它来替换现有的小节:

    oauthConfig:
      ...
      identityProviders:
      - name: github 
    1
    
        challenge: false 
    2
    
        login: true 
    3
    
        mappingMethod: claim 
    4
    
        provider:
          apiVersion: v1
          kind: GitHubIdentityProvider
          ca: ... 
    5
    
          clientID: ... 
    6
    
          clientSecret: ... 
    7
    
          hostname: ... 
    8
    
          organizations: 
    9
    
          - myorganization1
          - myorganization2
          teams: 
    10
    
          - myorganization1/team-a
          - myorganization2/team-b
    Copy to Clipboard Toggle word wrap
    1
    此提供程序名称作为前缀放在 GitHub 数字用户 ID 前,以此组成身份名称。它还可用来构建回调 URL。
    2
    GitHubIdentityProvider 无法用于发送 WWW-Authenticate 质询。
    3
    true 时,来自 Web 客户端(如 Web 控制台)的未经身份验证的令牌请求将重定向到 GitHub 以进行登录。
    4
    控制如何在此提供程序的身份和用户对象之间建立映射,如上 所述
    5
    对于 GitHub Enterprise,CA 是向服务器发出请求时使用的可选的可信证书颁发机构捆绑包。省略此参数以使用默认系统 root 证书。对于 GitHub,请省略此参数。
    6
    注册的 GitHub OAuth 应用程序的客户端 ID。应用程序必须配置有 < master>/oauth2callback/<identityProviderName&gt; 的回调 URL。
    7
    GitHub 发布的客户端 secret。此值也可在 环境变量、外部文件或加密文件 中提供。
    8
    对于 GitHub Enterprise,您必须提供实例的主机名,如 example.com。这个值必须与 /setup/settings 文件中的 GitHub Enterprise hostname 值匹配,且不可包括端口号。对于 GitHub,请省略此参数。
    9
    可选的组织列表。如果指定,只有至少是一个所列组织成员的 GitHub 用户才能登录。如果在 clientID 中配置的 GitHub OAuth 应用程序不归该组织所有,则组织所有者必须授予第三方访问权限才能使用此选项。这可以在组织管理员第一次登录 GitHub 时完成,也可以在 GitHub 组织设置中完成。不可与 teams 字段结合使用。
    10
    可选的团队列表。如果指定,只有是至少一个列出团队的成员的 GitHub 用户才能登录。如果在 clientID 中配置的 GitHub OAuth 应用程序不归该团队的组织所有,则组织所有者必须授予第三方访问权限才能使用此选项。这可以在组织管理员第一次登录 GitHub 时完成,也可以在 GitHub 组织设置中完成。不可与 organizations 字段结合使用。
  3. identityProviders 小节进行以下修改:

    1. 更改供应商名称,以匹配您在 GitHub 上配置回调 URL。

      例如,如果您将回调 URL 定义为 https://myapiserver.com:8443/oauth2callback/github/,则 name 必须是 github

    2. clientID 更改为您之前注册的 GitHub 中的客户端 ID。
    3. clientSecret 改为 之前注册的 GitHub 中的 Client Secret。
    4. 更改 organizationsteams,使其包含一个或多个 GitHub 机构或团队的列表,用户必须具有成员资格才能进行身份验证。如果指定,只有至少是一个列出的机构或团队的成员的 GitHub 用户才能登录。如果未指定,则具有有效 GitHub 帐户的任何人都可以登录。
  4. 保存您的更改并关闭该文件。
  5. 启动 OpenShift Container Platform API 服务器,指定您刚才修改的配置文件:

    $ openshift start master --config=<path/to/modified/config>/master-config.yaml
    Copy to Clipboard Toggle word wrap

配置后,任何登录 OpenShift Container Platform Web 控制台的用户都将提示使用其 GitHub 凭证登录。首次登录时,用户必须点击 授权应用程序 来允许 GitHub 使用其用户名、密码和机构成员资格。然后,用户会被重新重定向到 Web 控制台。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat