LDAP Rake tasks

Tier: 무료, 프리미엄, 얼티밋 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: 프리미엄, 얼티밋 Offering: Self-managed

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

참고: 그룹 동기화가 수행되는 빈도를 변경하려면 크론 일정을 조정하십시오.

  • 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입니다.

경고: 부적절한 새 제공자를 입력하면 사용자가 로그인할 수 없게 됩니다. 이런 경우 작업을 다시 부적절한 제공자를 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)에서 시작하는 것을 고려해보세요. 이를 main에서 mycompany로 변경하면 new_providerldapmycompany입니다. 모든 사용자 ID를 다시 이름 짓으려면 다음 명령을 실행하세요.

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

예시 출력:

Provider가 'ldapmain'인 100명의 사용자가 'ldapmycompany'로 업데이트됩니다.
새로운 Provider가 잘못된 경우 사용자가 로그인할 수 없게 됩니다.
계속하시겠습니까 (yes/no)? yes

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

다른 옵션

old_providernew_provider를 지정하지 않으면 작업에서 이에 대해 프롬프트합니다:

  • Linux 패키지 설치:

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

    bundle exec rake gitlab:ldap:rename_provider RAILS_ENV=production
    

예시 출력:

이전 제공자는 무엇입니까? Ex. 'ldapmain': ldapmain
새 제공자는 무엇입니까? Ex. 'ldapcustom': ldapmycompany

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

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

Secrets

GitLab은 LDAP 구성 secrets를 사용하여 암호화된 파일에서 읽을 수 있습니다. 다음은 암호화된 파일의 내용을 업데이트하는 데 사용되는 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
    

Secrets 예시

편집기 예시

편집 명령이 편집기와 작동하지 않는 경우 write 작업을 사용할 수 있습니다:

# 기존 비밀을 평문 파일에 작성
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