LDAP Rake 작업
Offering: GitLab Self-Managed
다음은 LDAP 관련 Rake 작업입니다. LDAP 확인 Rake 작업은 bind_dn 및 password 자격 증명(구성된 경우)을 테스트하고 LDAP 사용자 샘플을 나열합니다. 기본적으로 이 작업은 100명의 LDAP 사용자 샘플을 반환합니다.
다음은 LDAP 관련 Rake 작업입니다.
확인#
LDAP 확인 Rake 작업은 bind_dn 및 password 자격 증명(구성된 경우)을 테스트하고 LDAP 사용자 샘플을 나열합니다. 이 작업은 gitlab:check 작업의 일부로도 실행되지만 아래 명령을 사용하여 독립적으로 실행할 수 있습니다.
sudo gitlab-rake gitlab:ldap:check
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:check
기본적으로 이 작업은 100명의 LDAP 사용자 샘플을 반환합니다. 확인 작업에 숫자를 전달하여 이 한도를 변경합니다:
rake gitlab:ldap:check[50]
그룹 동기화 실행#
다음 작업은 그룹 동기화를 즉시 실행합니다. 다음 예약된 그룹 동기화가 실행될 때까지 기다리지 않고 구성된 모든 그룹 멤버십을 LDAP에 맞게 업데이트하려는 경우에 유용합니다.
그룹 동기화가 수행되는 빈도를 변경하려면 대신 크론 스케줄 조정을 사용하세요.
sudo gitlab-rake gitlab:ldap:group_sync
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:group_sync
공급자 이름 변경#
gitlab.yml 또는 gitlab.rb에서 LDAP 서버 ID를 변경하는 경우 모든 사용자 ID를 업데이트해야 합니다. 그렇지 않으면 사용자가 로그인할 수 없습니다. 이전 공급자와 새 공급자를 입력하면 이 작업이 데이터베이스에서 일치하는 모든 ID를 업데이트합니다.
old_provider와 new_provider는 접두사 ldap와 구성 파일의 LDAP 서버 ID로 구성됩니다. 예를 들어, gitlab.yml 또는 gitlab.rb에서 다음과 같은 LDAP 구성을 볼 수 있습니다:
main:
label: 'LDAP'
host: '_your_ldap_server'
port: 389
uid: 'sAMAccountName'
# ...
main은 LDAP 서버 ID입니다. 함께 고유한 공급자는 ldapmain입니다.
잘못된 새 공급자를 입력하면 사용자가 로그인할 수 없습니다. 이런 경우 잘못된 공급자를 old_provider로, 올바른 공급자를 new_provider로 하여 작업을 다시 실행하세요.
sudo gitlab-rake gitlab:ldap:rename_provider[old_provider,new_provider]
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:rename_provider[old_provider,new_provider]
예시#
기본 서버 ID main(전체 공급자 ldapmain)으로 시작한다고 가정합니다. main을 mycompany로 변경하면 new_provider는 ldapmycompany입니다. 모든 사용자 ID의 이름을 변경하려면 다음 명령을 실행합니다:
sudo gitlab-rake gitlab:ldap:rename_provider[ldapmain,ldapmycompany]
출력 예시:
100 users with provider 'ldapmain' will be updated to 'ldapmycompany'.
If the new provider is incorrect, users will be unable to sign in.
Do you want to continue (yes/no)? yes
User identities were successfully updated
다른 옵션#
old_provider와 new_provider를 지정하지 않으면 작업이 이를 묻습니다:
sudo gitlab-rake gitlab:ldap:rename_provider
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:rename_provider
출력 예시:
What is the old provider? Ex. 'ldapmain': ldapmain
What is the new provider? Ex. 'ldapcustom': ldapmycompany
이 작업은 확인 대화 상자를 건너뛰는 force 환경 변수도 허용합니다:
sudo gitlab-rake gitlab:ldap:rename_provider[old_provider,new_provider] force=yes
시크릿#
GitLab은 암호화된 파일에서 읽기 위해 LDAP 구성 시크릿을 사용할 수 있습니다. 암호화된 파일의 내용을 업데이트하기 위한 다음 Rake 작업이 제공됩니다.
시크릿 표시#
현재 LDAP 시크릿의 내용을 표시합니다.
sudo gitlab-rake gitlab:ldap:secret:show
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:secret:show
출력 예시:
main:
password: '123'
bind_dn: 'gitlab-adm'
시크릿 편집#
편집기에서 시크릿 내용을 열고, 종료 시 결과 내용을 암호화된 시크릿 파일에 씁니다.
sudo gitlab-rake gitlab:ldap:secret:edit EDITOR=vim
sudo RAILS_ENV=production EDITOR=vim -u git -H bundle exec rake gitlab:ldap:secret:edit
원시 시크릿 쓰기#
STDIN으로 새 시크릿 내용을 제공하여 씁니다.
echo -e "main:\n password: '123'" | sudo gitlab-rake gitlab:ldap:secret:write
echo -e "main:\n password: '123'" | sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:secret:write
시크릿 예시#
-
편집기 예시:
편집 명령이 편집기에서 작동하지 않는 경우 쓰기 작업을 사용할 수 있습니다:
# Write the existing secret to a plaintext file sudo gitlab-rake gitlab:ldap:secret:show > ldap.yaml # Edit the ldap file in your editor ... # Re-encrypt the file cat ldap.yaml | sudo gitlab-rake gitlab:ldap:secret:write # Remove the plaintext file 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
