7장. ID 공급자 구성


7.1. htpasswd ID 공급자 구성

htpasswd ID 공급자를 구성하여 사용자가 htpasswd 파일에서 인증 정보를 사용하여 OpenShift Container Platform에 로그인할 수 있도록 합니다.

htpasswd ID 공급자를 정의하려면 다음 작업을 수행합니다.

  1. htpasswd 파일을 생성하여 사용자 및 암호 정보를 저장합니다.
  2. htpasswd 파일을 나타내는 시크릿을 생성합니다.
  3. 시크릿을 참조하는 htpasswd ID 공급자 리소스를 정의합니다.
  4. 리소스를 기본 OAuth 구성에 적용하여 ID 공급자를 추가합니다.

7.1.1. OpenShift Container Platform의 ID 공급자 정보

기본적으로는 kubeadmin 사용자만 클러스터에 있습니다. ID 공급자를 지정하려면 해당 ID 공급자를 설명하는 CR(사용자 정의 리소스)을 생성하여 클러스터에 추가해야 합니다.

참고

/, :, %를 포함하는 OpenShift Container Platform 사용자 이름은 지원되지 않습니다.

7.1.2. htpasswd 인증 정보

OpenShift Container Platform에서 htpasswd 인증을 사용하면 htpasswd 파일을 기반으로 사용자를 식별할 수 있습니다. htpasswd 파일은 각 사용자의 사용자 이름과 해시된 암호를 포함하는 플랫 파일입니다. htpasswd 유틸리티를 사용하여 이 파일을 생성할 수 있습니다.

주의

프로덕션 환경에는 OpenShift Container Platform에서 htpasswd 인증을 사용하지 마십시오. htpasswd 인증은 개발 환경에만 사용합니다.

7.1.3. htpasswd 파일 생성

htpasswd 파일을 생성하는 방법에 대한 지침은 다음 섹션 중 하나를 참조하십시오.

7.1.3.1. Linux를 사용하여 htpasswd 파일 생성

htpasswd ID 공급자를 사용하려면 htpasswd 를 사용하여 클러스터의 사용자 이름 및 암호가 포함된 플랫 파일을 생성해야 합니다.

사전 요구 사항

  • htpasswd 유틸리티에 액세스할 수 있습니다. Red Hat Enterprise Linux에서는 httpd-tools 패키지를 설치하면 액세스할 수 있습니다.

절차

  1. 사용자 이름과 해시된 암호로 플랫 파일을 생성하거나 업데이트합니다.

    $ htpasswd -c -B -b </path/to/users.htpasswd> <username> <password>

    이 명령에서는 해시된 버전의 암호를 생성합니다.

    예를 들면 다음과 같습니다.

    $ htpasswd -c -B -b users.htpasswd <username> <password>

    출력 예

    Adding password for user user1

  2. 인증 정보를 파일에 계속 추가하거나 업데이트합니다.

    $ htpasswd -B -b </path/to/users.htpasswd> <user_name> <password>

7.1.3.2. Windows를 사용하여 htpasswd 파일 생성

htpasswd ID 공급자를 사용하려면 htpasswd 를 사용하여 클러스터의 사용자 이름 및 암호가 포함된 플랫 파일을 생성해야 합니다.

사전 요구 사항

  • htpasswd.exe에 액세스할 수 있습니다. 이 파일은 많은 Apache httpd 배포판의 \bin 디렉터리에 포함되어 있습니다.

절차

  1. 사용자 이름과 해시된 암호로 플랫 파일을 생성하거나 업데이트합니다.

    > htpasswd.exe -c -B -b <\path\to\users.htpasswd> <username> <password>

    이 명령에서는 해시된 버전의 암호를 생성합니다.

    예를 들면 다음과 같습니다.

    > htpasswd.exe -c -B -b users.htpasswd <username> <password>

    출력 예

    Adding password for user user1

  2. 인증 정보를 파일에 계속 추가하거나 업데이트합니다.

    > htpasswd.exe -b <\path\to\users.htpasswd> <username> <password>

7.1.4. htpasswd 시크릿 생성

htpasswd ID 공급자를 사용하려면 htpasswd 사용자 파일이 포함된 시크릿을 정의해야 합니다.

사전 요구 사항

  • htpasswd 파일을 생성합니다.

프로세스

  • htpasswd 사용자 파일이 포함된 Secret 오브젝트를 생성합니다.

    $ oc create secret generic htpass-secret --from-file=htpasswd=<path_to_users.htpasswd> -n openshift-config 1
    1
    --from-file 인수에 대한 사용자 파일이 포함된 보안 키의 이름은 위의 명령과 같이 htpasswd로 지정해야 합니다.
    작은 정보

    다음 YAML을 적용하여 시크릿을 생성할 수도 있습니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: htpass-secret
      namespace: openshift-config
    type: Opaque
    data:
      htpasswd: <base64_encoded_htpasswd_file_contents>

7.1.5. htpasswd CR 샘플

다음 CR(사용자 정의 리소스)에는 htpasswd ID 공급자에 대한 매개변수 및 허용 가능한 값이 표시되어 있습니다.

htpasswd CR

apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
  name: cluster
spec:
  identityProviders:
  - name: my_htpasswd_provider 1
    mappingMethod: claim 2
    type: HTPasswd
    htpasswd:
      fileData:
        name: htpass-secret 3

1
이 공급자 이름은 공급자 사용자 이름에 접두어로 지정되어 ID 이름을 형성합니다.
2
이 공급자의 ID와 User 오브젝트 간 매핑 설정 방법을 제어합니다.
3
htpasswd를 사용하여 생성한 파일이 포함된 기존 시크릿입니다.

추가 리소스

7.1.6. 클러스터에 ID 공급자 추가

클러스터를 설치한 후에는 사용자가 인증할 수 있도록 ID 공급자를 추가하십시오.

사전 요구 사항

  • OpenShift Container Platform 클러스터를 생성합니다.
  • ID 공급자의 CR(사용자 정의 리소스)을 만듭니다.
  • 관리자로 로그인해야 합니다.

절차

  1. 정의된 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. 이 경우 이 경고를 무시해도 됩니다.

  2. 암호를 입력하라는 메시지가 표시되면 암호를 입력하여 ID 공급자의 사용자로 클러스터에 로그인합니다.

    $ oc login -u <username>
  3. 사용자가 로그인했는지 확인하고 사용자 이름을 표시합니다.

    $ oc whoami

7.1.7. htpasswd ID 공급자의 사용자 업데이트

기존 htpasswd ID 공급자에서 사용자를 추가하거나 제거할 수 있습니다.

사전 요구 사항

  • htpasswd 사용자 파일이 포함된 Secret 오브젝트를 생성했습니다. 이 절차에서는 이름을 htpass-secret이라고 가정합니다.
  • htpasswd ID 공급자를 구성했습니다. 이 절차에서는 이름이 my_htpasswd_provider라고 가정합니다.
  • htpasswd 유틸리티에 액세스할 수 있습니다. Red Hat Enterprise Linux에서는 httpd-tools 패키지를 설치하면 액세스할 수 있습니다.
  • 클러스터 관리자 권한이 있어야 합니다.

프로세스

  1. htpass-secret Secret 오브젝트에서 htpasswd 파일을 검색하여 파일 시스템에 저장합니다.

    $ oc get secret htpass-secret -ojsonpath={.data.htpasswd} -n openshift-config | base64 --decode > users.htpasswd
  2. users.htpasswd 파일에서 사용자를 추가하거나 제거합니다.

    • 새로운 사용자 추가:

      $ htpasswd -bB users.htpasswd <username> <password>

      출력 예

      Adding password for user <username>

    • 기존 사용자 제거:

      $ htpasswd -D users.htpasswd <username>

      출력 예

      Deleting password for user <username>

  3. users.htpasswd 파일에서 htpass-secret Secret 오브젝트를 업데이트된 사용자로 교체합니다.

    $ oc create secret generic htpass-secret --from-file=htpasswd=users.htpasswd --dry-run=client -o yaml -n openshift-config | oc replace -f -
    작은 정보

    다음 YAML을 적용하여 시크릿을 대체할 수 있습니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: htpass-secret
      namespace: openshift-config
    type: Opaque
    data:
      htpasswd: <base64_encoded_htpasswd_file_contents>
  4. 하나 이상의 사용자를 제거한 경우 각 사용자에 대한 기존 리소스를 추가로 제거해야 합니다.

    1. User 오브젝트 삭제:

      $ oc delete user <username>

      출력 예

      user.user.openshift.io "<username>" deleted

      사용자를 제거해야 합니다. 그러지 않으면 토큰이 만료되지 않는 한 사용자가 토큰을 계속 사용할 수 있습니다.

    2. 사용자의 Identity 오브젝트 삭제:

      $ oc delete identity my_htpasswd_provider:<username>

      출력 예

      identity.user.openshift.io "my_htpasswd_provider:<username>" deleted

7.1.8. 웹 콘솔을 사용하여 ID 공급자 구성

CLI 대신 웹 콘솔을 통해 ID 공급자(IDP)를 구성합니다.

사전 요구 사항

  • 웹 콘솔에 클러스터 관리자로 로그인해야 합니다.

절차

  1. Administration Cluster Settings으로 이동합니다.
  2. Configuration 탭에서 OAuth 를 클릭합니다.
  3. ID 공급자 섹션의 추가 드롭다운 메뉴에서 ID 공급자를 선택합니다.
참고

기존 IDP를 덮어쓰지 않고 웹 콘솔을 통해 여러 IDP를 지정할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.