This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.7.2. Keystone ID 공급자 구성
내부 데이터베이스에 사용자를 저장하는 OpenStack Keystone v3 서버와의 공유 인증을 지원하기 위해 OpenShift Container Platform 클러스터를 Keystone과 통합하도록 keystone
ID 공급자를 구성합니다. 이 구성을 통해 사용자는 Keystone 자격 증명을 사용하여 OpenShift Container Platform에 로그인할 수 있습니다.
7.2.1. OpenShift Container Platform의 ID 공급자 정보
기본적으로는 kubeadmin
사용자만 클러스터에 있습니다. ID 공급자를 지정하려면 해당 ID 공급자를 설명하는 CR(사용자 정의 리소스)을 생성하여 클러스터에 추가해야 합니다.
/
, :
, %
를 포함하는 OpenShift Container Platform 사용자 이름은 지원되지 않습니다.
7.2.2. Keystone 인증 정보
Keystone은 ID, 토큰, 카탈로그 및 정책 서비스를 제공하는 OpenStack 프로젝트입니다.
새 OpenShift Container Platform 사용자가 Keystone 사용자 이름 또는 고유한 Keystone ID를 기반으로 하도록 Keystone과의 통합을 구성할 수 있습니다. 두 방법 모두 사용자는 Keystone 사용자 이름과 암호를 입력하여 로그인합니다. Keystone ID에서 OpenShift Container Platform 사용자를 배치하는 것은 Keystone 사용자를 삭제하고 해당 사용자 이름으로 새 Keystone 사용자를 만드는 경우 새 사용자가 이전 사용자의 리소스에 액세스할 수 있기 때문에 더 안전합니다.
7.2.3. 시크릿 생성
ID 공급자는 openshift-config
네임스페이스에서 OpenShift Container Platform Secret
오브젝트를 사용하여 클라이언트 시크릿, 클라이언트 인증서 및 키를 포함합니다.
절차
다음 명령을 사용하여 키 및 인증서가 포함된
Secret
오브젝트를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret tls <secret_name> --key=key.pem --cert=cert.pem -n openshift-config
$ oc create secret tls <secret_name> --key=key.pem --cert=cert.pem -n openshift-config
작은 정보다음 YAML을 적용하여 시크릿을 생성할 수도 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: v1 kind: Secret metadata: name: <secret_name> namespace: openshift-config type: kubernetes.io/tls data: tls.crt: <base64_encoded_cert> tls.key: <base64_encoded_key>
apiVersion: v1 kind: Secret metadata: name: <secret_name> namespace: openshift-config type: kubernetes.io/tls data: tls.crt: <base64_encoded_cert> tls.key: <base64_encoded_key>
7.2.4. 구성 맵 생성
ID 공급자는 openshift-config
네임스페이스에서 OpenShift Container Platform ConfigMap
오브젝트를 사용하여 인증 기관 번들을 포함합니다. 이들은 주로 ID 공급자에 필요한 인증서 번들을 포함하는 데 사용됩니다.
절차
다음 명령을 사용하여 인증 기관을 포함하는 OpenShift Container Platform
ConfigMap
오브젝트를 정의합니다. 인증 기관은ConfigMap
오브젝트의ca.crt
키에 저장해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create configmap ca-config-map --from-file=ca.crt=/path/to/ca -n openshift-config
$ oc create configmap ca-config-map --from-file=ca.crt=/path/to/ca -n openshift-config
작은 정보다음 YAML을 적용하여 구성 맵을 만들 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: v1 kind: ConfigMap metadata: name: ca-config-map namespace: openshift-config data: ca.crt: | <CA_certificate_PEM>
apiVersion: v1 kind: ConfigMap metadata: name: ca-config-map namespace: openshift-config data: ca.crt: | <CA_certificate_PEM>
7.2.5. Keystone CR 샘플
다음 CR(사용자 정의 리소스)에는 Keystone ID 공급자에 대한 매개변수 및 허용 가능한 값이 표시되어 있습니다.
Keystone CR
apiVersion: config.openshift.io/v1 kind: OAuth metadata: name: cluster spec: identityProviders: - name: keystoneidp mappingMethod: claim type: Keystone keystone: domainName: default url: https://keystone.example.com:5000 ca: name: ca-config-map tlsClientCert: name: client-cert-secret tlsClientKey: name: client-key-secret
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: keystoneidp
mappingMethod: claim
type: Keystone
keystone:
domainName: default
url: https://keystone.example.com:5000
ca:
name: ca-config-map
tlsClientCert:
name: client-cert-secret
tlsClientKey:
name: client-key-secret
- 1
- 이 공급자 이름은 공급자 사용자 이름에 접두어로 지정되어 ID 이름을 형성합니다.
- 2
- 이 공급자의 ID와
User
오브젝트 간 매핑 설정 방법을 제어합니다. - 3
- Keystone 도메인 이름. Keystone에서는 사용자 이름이 도메인에 따라 다릅니다. 단일 도메인만 지원됩니다.
- 4
- Keystone 서버 연결에 사용하는 URL입니다(필수). https를 사용해야 합니다.
- 5
- 선택 사항: OpenShift Container Platform
ConfigMap
오브젝트에 대한 참조로, 구성된 URL에 대한 서버 인증서의 유효성 확인에 사용할 PEM 인코딩 인증 기관 번들이 포함됩니다. - 6
- 선택 사항: OpenShift Container Platform
Secret
오브젝트에 대한 참조로, 구성된 URL에 요청할 때 제공할 클라이언트 인증서가 포함됩니다. - 7
- OpenShift Container Platform
Secret
오브젝트에 대한 참조로, 클라이언트 인증서에 대한 키가 포함됩니다.tlsClientCert
가 지정된 경우 필수입니다.
추가 리소스
-
모든 ID 공급자에 공통된
mappingMethod
와 같은 매개변수에 대한 자세한 내용은 ID 공급자 매개변수를 참조하십시오.
7.2.6. 클러스터에 ID 공급자 추가
클러스터를 설치한 후에는 사용자가 인증할 수 있도록 ID 공급자를 추가하십시오.
사전 요구 사항
- OpenShift Container Platform 클러스터를 생성합니다.
- ID 공급자의 CR(사용자 정의 리소스)을 만듭니다.
- 관리자로 로그인해야 합니다.
절차
정의된 CR을 적용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f </path/to/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
. 이 경우 이 경고를 무시해도 됩니다.암호를 입력하라는 메시지가 표시되면 암호를 입력하여 ID 공급자의 사용자로 클러스터에 로그인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc login -u <username>
$ oc login -u <username>
사용자가 로그인했는지 확인하고 사용자 이름을 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc whoami
$ oc whoami