$ oc create secret generic <secret_name> --from-literal=clientSecret=<secret> -n openshift-config
使用GitLab.com或任何其他GitLab实例作为身份提供程序来配置gitlab
身份提供程序。
默认情况下,集群中只存在kubeadmin
用户。要指定身份提供程序,必须创建一个描述该身份提供程序的自定义资源(CR),并将其添加到集群中。
OpenShift Container Platform用户名包含 |
配置GitLab身份验证允许用户使用其GitLab凭据登录OpenShift Container Platform。
如果您使用GitLab 7.7.0到11.0版本,您可以使用OAuth集成进行连接。如果您使用GitLab 11.1或更高版本,您可以使用OpenID Connect(OIDC)连接,而不是OAuth。
身份提供程序在openshift-config
命名空间中使用OpenShift Container Platform Secret
对象来包含客户端密钥、客户端证书和密钥。
使用以下命令创建一个包含字符串的Secret
对象
$ oc create secret generic <secret_name> --from-literal=clientSecret=<secret> -n openshift-config
或者,您可以应用以下YAML来创建密钥:
|
您可以使用以下命令定义一个包含文件内容的Secret
对象:
$ oc create secret generic <secret_name> --from-file=<path_to_file> -n openshift-config
身份提供程序在openshift-config
命名空间中使用OpenShift Container Platform ConfigMap
对象来包含证书颁发机构捆绑包。这些主要用于包含身份提供程序所需的证书捆绑包。
使用以下命令定义一个包含证书颁发机构的OpenShift Container Platform ConfigMap
对象。证书颁发机构必须存储在ConfigMap
对象的ca.crt
密钥中。
$ oc create configmap ca-config-map --from-file=ca.crt=/path/to/ca -n openshift-config
或者,您可以应用以下YAML来创建配置映射:
|
以下自定义资源(CR)显示了GitLab身份提供程序的参数和可接受的值。
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: gitlabidp (1)
mappingMethod: claim (2)
type: GitLab
gitlab:
clientID: {...} (3)
clientSecret: (4)
name: gitlab-secret
url: https://gitlab.com (5)
ca: (6)
name: ca-config-map
1 | 此提供程序名称作为前缀添加到GitLab数字用户ID,以形成身份名称。它还用于构建回调URL。 |
2 | 控制如何在此提供程序的身份和User 对象之间建立映射。 |
3 | 已注册的GitLab OAuth应用程序的客户端ID。该应用程序必须配置为回调URL为https://oauth-openshift.apps.<cluster-name>.<cluster-domain>/oauth2callback/<idp-provider-name> 。 |
4 | 对包含GitLab颁发的客户端密钥的OpenShift Container Platform Secret 对象的引用。 |
5 | GitLab提供程序的主机URL。这可以是https://gitlab.com/ 或任何其他自托管的GitLab实例。 |
6 | 可选:对包含PEM编码的证书颁发机构捆绑包的OpenShift Container Platform ConfigMap 对象的引用,用于验证为配置的URL验证服务器证书。 |
有关参数(如mappingMethod
)的信息,这些参数对所有身份提供程序都是通用的,请参阅身份提供程序参数。
安装集群后,请向其添加身份提供程序,以便您的用户可以进行身份验证。
创建 OpenShift Container Platform 集群。
为您的身份提供程序创建自定义资源 (CR)。
您必须以管理员身份登录。
应用已定义的 CR。
$ oc apply -f </path/to/CR>
如果 CR 不存在, |
使用您的身份提供程序中的用户帐户登录集群,并在提示时输入密码。
$ oc login -u <username>
确认用户已成功登录,并显示用户名。
$ oc whoami