$ oc create secret tls <secret_name> --key=key.pem --cert=cert.pem -n openshift-config
配置keystone
身份提供程序以将您的OpenShift Container Platform集群与Keystone集成,从而可以使用与配置为在内部数据库中存储用户的OpenStack Keystone v3服务器共享身份验证。此配置允许用户使用其Keystone凭据登录到OpenShift Container Platform。
默认情况下,您的集群中只存在kubeadmin
用户。要指定身份提供程序,您必须创建一个描述该身份提供程序的自定义资源 (CR),并将其添加到集群。
OpenShift Container Platform用户名包含 |
Keystone 是一个OpenStack项目,提供身份、令牌、目录和策略服务。
您可以配置与Keystone的集成,以便新的OpenShift Container Platform用户基于Keystone用户名或唯一的Keystone ID。使用这两种方法,用户都可以通过输入其Keystone用户名和密码登录。将OpenShift Container Platform用户基于Keystone ID更安全,因为如果您删除Keystone用户并使用该用户名创建一个新的Keystone用户,则新用户可能会访问旧用户的资源。
身份提供程序在openshift-config
命名空间中使用OpenShift Container PlatformSecret
对象来包含客户端密钥、客户端证书和密钥。
使用以下命令创建一个包含密钥和证书的Secret
对象
$ oc create secret tls <secret_name> --key=key.pem --cert=cert.pem -n openshift-config
或者,您可以应用以下YAML来创建密钥:
|
身份提供程序在openshift-config
命名空间中使用OpenShift Container PlatformConfigMap
对象来包含证书颁发机构捆绑包。这些主要用于包含身份提供程序所需的证书捆绑包。
使用以下命令定义包含证书颁发机构的 OpenShift Container Platform `ConfigMap` 对象。证书颁发机构必须存储在 `ConfigMap` 对象的 `ca.crt` 密钥中。
$ oc create configmap ca-config-map --from-file=ca.crt=/path/to/ca -n openshift-config
或者,您可以应用以下 YAML 来创建 ConfigMap:
|
以下自定义资源 (CR) 显示了 Keystone 身份提供程序的参数和可接受的值。
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: keystoneidp (1)
mappingMethod: claim (2)
type: Keystone
keystone:
domainName: default (3)
url: https://keystone.example.com:5000 (4)
ca: (5)
name: ca-config-map
tlsClientCert: (6)
name: client-cert-secret
tlsClientKey: (7)
name: client-key-secret
1 | 此提供程序名称作为前缀添加到提供程序用户名,以形成身份名称。 |
2 | 控制如何在此提供程序的身份和 `User` 对象之间建立映射。 |
3 | Keystone 域名。在 Keystone 中,用户名是特定于域的。仅支持单个域。 |
4 | 用于连接到 Keystone 服务器的 URL(必需)。这必须使用 https。 |
5 | 可选:指向包含 PEM 编码证书颁发机构捆绑包的 OpenShift Container Platform `ConfigMap` 对象的引用,用于验证为配置的 URL 验证服务器证书。 |
6 | 可选:指向包含客户端证书的 OpenShift Container Platform `Secret` 对象的引用,在向配置的 URL 发出请求时出示。 |
7 | 指向包含客户端证书密钥的 OpenShift Container Platform `Secret` 对象的引用。如果指定了 `tlsClientCert`,则需要此项。 |
有关所有身份提供程序共有的参数(例如 `mappingMethod`)的信息,请参阅 身份提供程序参数。
安装集群后,向其中添加身份提供程序,以便您的用户可以进行身份验证。
创建 OpenShift Container Platform 集群。
为您的身份提供程序创建自定义资源 (CR)。
您必须以管理员身份登录。
应用已定义的 CR
$ oc apply -f </path/to/CR>
如果 CR 不存在,`oc apply` 将创建一个新的 CR,并可能会触发以下警告:`Warning: oc apply should be used on resources created by either oc create --save-config or oc apply`。在这种情况下,您可以安全地忽略此警告。 |
以身份提供程序中的用户身份登录集群,并在提示时输入密码。
$ oc login -u <username>
确认用户已成功登录,并显示用户名。
$ oc whoami