13.3.6. Keystone


Keystone 是一个提供身份、令牌、目录和策略服务的 OpenStack 项目。您可以将 OpenShift Container Platform 集群与 Keystone 集成,以便通过配置为将用户存储在内部数据库中的 OpenStack Keystone v3 服务器启用共享身份验证。此配置允许用户使用其 Keystone 凭证登录 OpenShift Container Platform。

您可以配置与 Keystone 的集成,以便 OpenShift Container Platform 的新用户基于 Keystone 用户名或者唯一 Keystone ID。使用这两种方法时,用户可以输入其 Keystone 用户名和密码进行登录。使 OpenShift Container Platform 用户基于 Keystone ID 更为安全。如果删除了某一 Keystone 用户并使用其用户名创建了新的 Keystone 用户,新用户或许能够访问旧用户的资源。

13.3.6.1. 在 master 上配置身份验证

  1. 如果您有:

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

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

      $ openshift start master --public-master=<apiserver> --write-config=<directory>

      例如:

      $ openshift start master --public-master=https://myapiserver.com:8443 --write-config=keystoneconfig
      注意

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

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

    oauthConfig:
      ...
      identityProviders:
      - name: my_keystone_provider 1
        challenge: true 2
        login: true 3
        mappingMethod: claim 4
        provider:
          apiVersion: v1
          kind: KeystonePasswordIdentityProvider
          domainName: default 5
          url: http://keystone.example.com:5000 6
          ca: ca.pem 7
          certFile: keystone.pem 8
          keyFile: keystonekey.pem 9
          useKeystoneIdentity: false 10
    1
    此提供程序名称作为前缀放在提供程序用户名前,以此组成身份名称。
    2
    true 时,来自非 Web 客户端(如 CLI)的未经身份验证的令牌请求会为此提供程序发送 WWW-Authenticate 质询标头。
    3
    true 时,来自 Web 客户端(如 Web 控制台)的未经身份验证的令牌请求会重定向到由该供应商支持的登录页面。
    4
    控制如何在此提供程序的身份和用户对象之间建立映射,如上 所述
    5
    Keystone 域名。在 Keystone 中,用户名是特定于域的。只支持一个域。
    6
    用于连接到 Keystone 服务器的 URL(必需)。
    7
    可选:用于验证所配置 URL 的服务器证书的证书捆绑包。
    8
    可选:向配置的 URL 发出请求时要出现的客户端证书。
    9
    客户端证书的密钥。如果指定了 certFile,则需要此项。
    10
    true 时,表示用户通过 Keystone ID 进行身份验证,而不是由 Keystone 用户名进行身份验证。设置为 false 以根据用户名进行身份验证。
  3. identityProviders 小节进行以下修改:

    1. 更改提供程序 名称 ("my_keystone_provider")以匹配您的 Keystone 服务器。此名称作为前缀放在提供程序用户名前,以此组成身份名称。
    2. 如果需要,更改 mappingMethod 来控制如何在提供程序的身份和用户对象之间建立映射。
    3. domainName 更改为 OpenStack Keystone 服务器的域名。在 Keystone 中,用户名是特定于域的。只支持一个域。
    4. 指定用于连接 OpenStack Keystone 服务器的 url
    5. 另外,要根据 Keystone ID(而非 Keystone 用户名)验证用户身份,可将KeystoneIdentity 设置为 true
    6. (可选)将 ca 更改为证书捆绑包,以用于验证所配置 URL 的服务器证书。
    7. (可选)将 certFile 更改为客户端证书,使其在向配置的 URL 发出请求时显示。
    8. 如果指定了 certFile,您必须将 keyFile 更改为客户端证书的密钥。
  4. 保存您的更改并关闭该文件。
  5. 启动 OpenShift Container Platform API 服务器,指定您刚才修改的配置文件:

    $ openshift start master --config=<path/to/modified/config>/master-config.yaml

配置之后,系统会提示您使用其 Keystone 凭据登录 OpenShift Container Platform Web 控制台。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.