LDAP Rake 작업

Tier: Free, Premium, Ultimate Offering: Self-Managed

다음은 LDAP 관련 Rake 작업입니다.

확인

LDAP 확인 Rake 작업은 bind_dn 및 (구성된 경우) password 자격 증명을 테스트하고 LDAP 사용자의 샘플을 나열합니다. 이 작업은 또한 gitlab:check 작업의 일부로 실행되지만 아래 명령을 사용하여 독립적으로 실행할 수 있습니다.

  • Linux 패키지 설치:

    sudo gitlab-rake gitlab:ldap:check
    
  • 자체 컴파일된 설치:

    sudo -u git -H bundle exec rake gitlab:ldap:check RAILS_ENV=production
    

기본적으로 작업은 100개의 LDAP 사용자 샘플을 반환합니다. 이 한도를 변경하려면 확인 작업에 숫자를 전달하세요:

rake gitlab:ldap:check[50]

그룹 동기화 실행

Tier: Premium, Ultimate Offering: Self-Managed

다음 작업은 그룹 동기화를 즉시 실행합니다. 다음 예정된 그룹 동기화를 기다리지 않고 LDAP에 대한 모든 구성된 그룹 멤버십을 업데이트하려는 경우 유용합니다.

note
그룹 동기화를 수행하는 빈도를 변경하려면 크론 일정을 조정하세요.
  • Linux 패키지 설치:

    sudo gitlab-rake gitlab:ldap:group_sync
    
  • 자체 컴파일된 설치:

    bundle exec rake gitlab:ldap:group_sync
    

공급자 이름 바꾸기

gitlab.yml 또는 gitlab.rb에서 LDAP 서버 ID를 변경하면 모든 사용자 ID를 업데이트해야 합니다. 그렇지 않으면 사용자는 로그인할 수 없습니다. 이 작업은 데이터베이스에서 모든 일치하는 ID를 업데이트합니다.

old_providernew_provider는 구성 파일에서 LDAP 서버 ID의 접두사 ldap에 해당하는 것입니다. 예를 들어, gitlab.yml이나 gitlab.rb에서 다음과 같은 LDAP 구성을 볼 수 있습니다.

main:
  label: 'LDAP'
  host: '_your_ldap_server'
  port: 389
  uid: 'sAMAccountName'
  ...

main은 LDAP 서버 ID입니다. 이에 따라 고유한 공급자는 ldapmain입니다.

caution
잘못된 신규 공급자를 입력하면 사용자가 로그인할 수 없습니다. 이 경우 작업을 다시 잘못된 공급자를 old_provider로 사용하여 올바른 공급자를 new_provider로 사용하여 실행하세요.
  • Linux 패키지 설치:

    sudo gitlab-rake gitlab:ldap:rename_provider[old_provider,new_provider]
    
  • 자체 컴파일된 설치:

    bundle exec rake gitlab:ldap:rename_provider[old_provider,new_provider] RAILS_ENV=production
    

예시

기본 서버 ID main (전체 공급자 ldapmain)로 시작한다고 가정해 보겠습니다. mainmycompany로 변경하면 new_providerldapmycompany입니다. 모든 사용자 ID를 변경하려면 다음 명령을 실행하세요:

sudo gitlab-rake gitlab:ldap:rename_provider[ldapmain,ldapmycompany]

예시 출력:

'ldapmain' 공급자가 있는 사용자 100명이 'ldapmycompany'로 업데이트됩니다.
신규 공급자가 잘못된 경우 사용자가 로그인할 수 없습니다.
계속하시겠습니까 (예/아니오)? yes

사용자 ID가 성공적으로 업데이트되었습니다

기타 옵션

old_providernew_provider를 지정하지 않으면 작업이 이를 요청합니다:

  • Linux 패키지 설치:

    sudo gitlab-rake gitlab:ldap:rename_provider
    
  • 자체 컴파일된 설치:

    bundle exec rake gitlab:ldap:rename_provider RAILS_ENV=production
    

예시 출력:

이전 공급자는? 예: 'ldapmain': ldapmain
새 공급자는? 예: 'ldapcustom': ldapmycompany

이 작업은 확인 대화상자를 건너뛰는 force 환경 변수도 허용합니다:

sudo gitlab-rake gitlab:ldap:rename_provider[old_provider,new_provider] force=yes

비밀

GitLab은 LDAP 구성 비밀을 사용하여 암호화된 파일에서 읽을 수 있습니다. 암호화된 파일의 내용을 업데이트하기 위해 다음과 같은 Rake 작업을 제공합니다.

비밀 표시

현재 LDAP 비밀 내용을 표시합니다.

  • Linux 패키지 설치:

    sudo gitlab-rake gitlab:ldap:secret:show
    
  • 자체 컴파일된 설치:

    bundle exec rake gitlab:ldap:secret:show RAILS_ENV=production
    

예시 출력:

main:
  password: '123'
  bind_dn: 'gitlab-adm'

비밀 편집

비밀 내용을 편집기에서 열고, 결과 콘텐츠를 종료할 때 암호화된 비밀 파일에 작성합니다.

  • Linux 패키지 설치:

    sudo gitlab-rake gitlab:ldap:secret:edit EDITOR=vim
    
  • 자체 컴파일된 설치:

    bundle exec rake gitlab:ldap:secret:edit RAILS_ENV=production EDITOR=vim
    

원시 비밀 작성

STDIN에서 제공된 새로운 비밀 내용을 작성합니다.

  • Linux 패키지 설치:

    echo -e "main:\n  password: '123'" | sudo gitlab-rake gitlab:ldap:secret:write
    
  • 자체 컴파일된 설치:

    echo -e "main:\n  password: '123'" | bundle exec rake gitlab:ldap:secret:write RAILS_ENV=production
    

비밀 예시

편집기 예제

편집 명령이 편집기와 함께 작동하지 않는 경우에 사용하여 기존 비밀을 평문 파일에 쓸 수 있습니다:

# 기존 비밀을 평문 파일에 씁니다
sudo gitlab-rake gitlab:ldap:secret:show > ldap.yaml
# 편집기에서 ldap 파일 편집
...
# 파일을 다시 암호화합니다
cat ldap.yaml | sudo gitlab-rake gitlab:ldap:secret:write
# 평문 파일 삭제
rm ldap.yaml

KMS 통합 예제

KMS로 암호화된 콘텐츠를 수신용 응용 프로그램으로 사용할 수도 있습니다:

gcloud kms decrypt --key my-key --keyring my-test-kms --plaintext-file=- --ciphertext-file=my-file --location=us-west1 | sudo gitlab-rake gitlab:ldap:secret:write

Google Cloud 비밀 통합 예제

Google Cloud에서 비밀을 사용하기 위한 수신 응용 프로그램으로 사용할 수도 있습니다:

gcloud secrets versions access latest --secret="my-test-secret" > $1 | sudo gitlab-rake gitlab:ldap:secret:write