7.8. Google ID 공급자 구성
Google OpenID Connect 통합을 사용하여 google
ID 공급자를 구성합니다.
7.8.1. OpenShift Container Platform의 ID 공급자 정보
기본적으로는 kubeadmin
사용자만 클러스터에 있습니다. ID 공급자를 지정하려면 해당 ID 공급자를 설명하는 CR(사용자 정의 리소스)을 생성하여 클러스터에 추가해야 합니다.
/
, :
, %
를 포함하는 OpenShift Container Platform 사용자 이름은 지원되지 않습니다.
7.8.2. Google 인증 정보
Google을 ID 공급자로 사용하면 모든 Google 사용자가 서버 인증을 수행할 수 있습니다. hostedDomain
구성 속성을 사용하여 특정 호스트 도메인의 멤버 인증을 제한할 수 있습니다.
Google을 ID 공급자로 사용하려면 사용자가 <namespace_route>/oauth/token/request
를 사용하여 토큰을 가져와야 합니다.
7.8.3. 시크릿 생성
ID 공급자는 openshift-config
네임스페이스에서 OpenShift Container Platform Secret
오브젝트를 사용하여 클라이언트 시크릿, 클라이언트 인증서 및 키를 포함합니다.
프로세스
다음 명령을 사용하여 문자열이 포함된
Secret
오브젝트를 생성합니다.$ oc create secret generic <secret_name> --from-literal=clientSecret=<secret> -n openshift-config
작은 정보다음 YAML을 적용하여 시크릿을 생성할 수도 있습니다.
apiVersion: v1 kind: Secret metadata: name: <secret_name> namespace: openshift-config type: Opaque data: clientSecret: <base64_encoded_client_secret>
다음 명령을 사용하여 파일 내용이 포함된
Secret
오브젝트를 정의할 수 있습니다.$ oc create secret generic <secret_name> --from-file=<path_to_file> -n openshift-config
7.8.4. Google CR 샘플
다음 CR(사용자 정의 리소스)에는 Google ID 공급자에 대한 매개변수 및 허용 가능한 값이 표시되어 있습니다.
Google CR
apiVersion: config.openshift.io/v1 kind: OAuth metadata: name: cluster spec: identityProviders: - name: googleidp 1 mappingMethod: claim 2 type: Google google: clientID: {...} 3 clientSecret: 4 name: google-secret hostedDomain: "example.com" 5
- 1
- 이 공급자 이름은 Google 숫자 사용자 ID 앞에 접두어로 지정되어 ID 이름을 형성합니다. 리디렉션 URL을 빌드하는 데에도 사용됩니다.
- 2
- 이 공급자의 ID와
User
오브젝트 간 매핑 설정 방법을 제어합니다. - 3
- 등록된 Google 프로젝트의 클라이언트 ID. 프로젝트는
https://oauth-openshift.apps.<cluster-name>.<cluster-domain>/oauth2callback/<idp-provider-name>
의 리디렉션 URI를 사용하여 구성해야 합니다. - 4
- OpenShift Container Platform
Secret
오브젝트에 대한 참조로, Google에서 발행한 클라이언트 시크릿이 포함됩니다. - 5
- 로그인 계정을 제한하는 데 사용되는 호스트 도메인입니다.
lookup
mappingMethod
가 사용되는 경우 선택 사항입니다. 비어있는 경우 모든 Google 계정을 인증할 수 있습니다.
추가 리소스
-
모든 ID 공급자에 공통된
mappingMethod
와 같은 매개변수에 대한 자세한 내용은 ID 공급자 매개변수를 참조하십시오.
7.8.5. 클러스터에 ID 공급자 추가
클러스터를 설치한 후에는 사용자가 인증할 수 있도록 ID 공급자를 추가하십시오.
사전 요구 사항
- OpenShift Container Platform 클러스터를 생성합니다.
- ID 공급자의 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
. 이 경우 이 경고를 무시해도 됩니다.OAuth 서버에서 토큰을 가져옵니다.
kubeadmin
사용자가 제거된 경우oc login
명령을 실행하면 토큰을 검색할 수 있는 웹 페이지에 액세스하는 방법에 대한 지침이 제공됩니다.웹 콘솔에서 (?) Help
Command Line Tools Copy Login Command로 이동하여 이 페이지에 액세스할 수도 있습니다. 클러스터에 로그인하여 인증을 위해 토큰을 전달합니다.
$ oc login --token=<token>
참고이 ID 공급자는 사용자 이름과 암호를 사용한 로그인을 지원하지 않습니다.
사용자가 로그인했는지 확인하고 사용자 이름을 표시합니다.
$ oc whoami