CI-CD

[Gitlab] Gitlab 에서 LDAP 설정

IT-PAPA 2024. 5. 29. 06:59
728x90
반응형

Gitlab 에서 LDAP 설정하는 방법을 캡쳐화면을 통해 설명한 것입니다.

아래와 같이 간단한 LDAP 구성을 한 상태에서 각자 환경에 맞는 LDAP 설정을 하시기 바랍니다.

LDAP 구조
LDAP USER atturibue

 

gitlab.rb 설정 파일 수정

 gitlab_rails['ldap_enabled'] = true
 gitlab_rails['prevent_ldap_sign_in'] = false

###! **remember to close this block with 'EOS' below**
 gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
   main: # 'main' is the GitLab 'provider ID' of this LDAP server
     label: 'Welcome ITAPI Gitlab LDAP'
     host: '192.168.0.123'
     port: 389
     uid: 'uid'
     bind_dn: 'cn=admin,dc=itapi,dc=io' # 관리자 계정 DN
     password: 'password1!' # bind_dn 의 비밀번호
     encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
#     verify_certificates: true
#     smartcard_auth: false
#     active_directory: true
#     smartcard_ad_cert_field: 'altSecurityIdentities'
#     smartcard_ad_cert_format: null # 'issuer_and_serial_number', 'issuer_and_subject' , 'principal_name'
#     allow_username_or_email_login: false
#     lowercase_usernames: true
#     block_auto_created_users: false
     base: 'ou=Users,dc=itapi,dc=io' # User 계정 위치
     user_filter: ''
 EOF

gitlab.rb 파일에서 LDAP 설정은 GitLab 인스턴스가 LDAP 서버를 사용하여 사용자 인증을 관리할 수 있도록 합니다. 여기서 주석 처리된 설정들은 기본값으로 비활성화되어 있으며, 필요에 따라 활성화하고 값을 조정할 수 있습니다. 각 설정의 의미는 다음과 같습니다:

  • gitlab_rails['ldap_enabled']: 이 옵션을 true로 설정하면 LDAP 인증이 활성화됩니다. false는 비활성화를 의미합니다.
  • gitlab_rails['prevent_ldap_sign_in']: 이 옵션을 true로 설정하면 LDAP을 통한 로그인이 차단됩니다. false는 LDAP을 통한 로그인을 허용합니다.

LDAP 서버 설정:

  • label: LDAP 서버에 대한 사용자 친화적 이름입니다. 이 이름은 GitLab 로그인 페이지에 표시됩니다.
  • host: LDAP 서버의 주소입니다.
  • port: LDAP 서버의 포트 번호입니다. 일반적으로 LDAP은 389, LDAPS는 636 포트를 사용합니다.
  • uid: 사용자를 고유하게 식별하는 LDAP 속성입니다. 일반적으로 ‘uid’ 또는 'sAMAccountName’이 사용됩니다.
  • bind_dn: LDAP 디렉토리에 바인딩하기 위한 DN(Distinguished Name)입니다.
  • password: bind_dn에 해당하는 사용자의 비밀번호입니다.
  • encryption: LDAP 서버와의 통신을 암호화하는 방법입니다. ‘start_tls’, ‘simple_tls’, ‘plain’ 중에서 선택할 수 있습니다.
  • verify_certificates: SSL 인증서 검증 여부를 결정합니다.
  • smartcard_auth: 스마트카드 인증 사용 여부입니다.
  • active_directory: 활성 디렉토리 사용 여부입니다.
  • allow_username_or_email_login: 사용자 이름 또는 이메일을 통한 로그인 허용 여부입니다.
  • lowercase_usernames: 사용자 이름을 소문자로 처리할지 여부입니다.
  • block_auto_created_users: 자동 생성된 사용자의 로그인을 차단할지 여부입니다.
  • base: 사용자 계정을 검색할 때 사용되는 LDAP 트리의 기본 경로입니다.
  • user_filter: 특정 사용자를 필터링하기 위한 조건입니다.

EE(Enterprise Edition) 전용 설정:

  • group_base: LDAP에서 그룹을 검색할 기본 경로입니다.
  • admin_group: GitLab 관리자 권한을 부여할 LDAP 그룹입니다.
  • sync_ssh_keys: LDAP에서 SSH 키 동기화를 사용할지 여부입니다.

이 설정을 적용한 후에는 GitLab 서비스를 재시작해야 합니다. LDAP 설정은 매우 중요하므로, 변경 전에는 반드시 백업을 수행하고, 설정이 올바른지 테스트하는 것이 좋습니다. LDAP 서버와의 연결 문제나 인증 문제가 발생할 경우, 로그 파일을 확인하여 문제를 해결할 수 있습니다. 또한, LDAP 서버의 설정과 네트워크 구성에 따라 추가 설정이 필요할 수 있습니다.

로그인 화면 - LDAP 로그인 탭
로그인 화면 - LDAP 로그인 탭
LDAP 로그인 완료 화면
LDAP 로그인 완료 화면

728x90
반응형
LIST