Google Secure LDAP

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

Google Cloud Identity는 인증 및 그룹 동기화를 위해 GitLab과 구성할 수 있는 안전한 LDAP 서비스를 제공합니다.

안전한 LDAP는 표준 LDAP 서버와 약간 다른 구성을 필요로 합니다. 아래 단계에서 다룹니다:

  • Google 관리자 콘솔에서 안전한 LDAP 클라이언트 구성
  • 필요한 GitLab 구성

안전한 LDAP는 특정 Google Workspace 버전에서만 사용할 수 있습니다. 자세한 내용은 Google 안전한 LDAP 서비스 문서를 참조하세요.

Google LDAP 클라이언트 구성

  1. https://admin.google.com/Dashboard으로 이동하고 Google Workspace 도메인 관리자로서 로그인합니다.

  2. 앱 > LDAP > 클라이언트 추가로 이동합니다.

  3. LDAP 클라이언트 이름과 선택적인 설명을 제공합니다. 어떤 설명 값이든 적합합니다. 예를 들어, 이름은 GitLab이고 설명은 GitLab LDAP 클라이언트가 될 수 있습니다. 계속을 선택합니다.

    LDAP 클라이언트 추가 단계 1

  4. Access Permission을 필요에 따라 설정합니다. Verify user credentialsRead user information 모두에 대해 Entire domain (GitLab) 또는 Selected organizational units 중 하나를 선택해야 합니다. LDAP 클라이언트 추가를 선택합니다.

    참고: GitLab LDAP 그룹 동기화를 사용할 계획이라면 Read group information을 켜야 합니다.

    LDAP 클라이언트 추가 단계 2

  5. 생성된 인증서를 다운로드합니다. 이는 GitLab이 Google 안전한 LDAP 서비스와 통신하기 위해 필요합니다. 다운로드한 인증서를 나중에 사용하기 위해 저장합니다. 다운로드한 후에 클라이언트 세부 정보로 이동을 선택합니다.

  6. 서비스 상태 섹션을 확장하고 LDAP 클라이언트를 모두에게 대해 ON으로 설정합니다. 저장을 선택한 후에 다시 서비스 상태 막대를 선택하여 접고 설정의 나머지로 돌아갑니다.

  7. 인증 섹션을 확장하고 새 자격 증명 생성을 선택합니다. 이러한 자격 증명은 나중에 사용하기 위해 복사하거나 기록해 둬야 합니다. 닫기를 선택한 후에 다시 인증 막대를 선택하여 접고 설정의 나머지로 돌아갑니다.

이제 Google 안전한 LDAP 클라이언트 구성이 완료되었습니다. 아래 스크린샷은 최종 설정의 예시를 보여줍니다. 이제 GitLab을 구성하는 단계로 이동해주세요.

LDAP 클라이언트 설정

GitLab 구성

이전에 가져온 액세스 자격 증명 및 인증서를 삽입하여 GitLab을 구성합니다.

다음은 이전의 LDAP 클라이언트 구성에서 얻은 값을 사용하여 수정해야 하는 구성 키입니다:

  • bind_dn: 액세스 자격 증명 사용자 이름
  • password: 액세스 자격 증명 비밀번호
  • cert: 다운로드한 인증서 번들의 .crt 파일 텍스트
  • key: 다운로드한 인증서 번들의 .key 파일 텍스트

Linux 패키지 설치의 경우:

  1. /etc/gitlab/gitlab.rb를 편집합니다: ```ruby gitlab_rails[‘ldap_enabled’] = true gitlab_rails[‘ldap_servers’] = YAML.load «-EOS # 하단에 ‘EOS’로 이 블록을 닫는 것을 기억하세요 main: # ‘main’은 이 LDAP 서버의 GitLab ‘provider ID’입니다 label: ‘Google Secure LDAP’

    host: 'ldap.google.com'
    port: 636
    uid: 'uid'
    bind_dn: 'DizzyHorse'
    password: 'd6V5H8nhMUW9AuDP25abXeLd'
    encryption: 'simple_tls'
    verify_certificates: true
    retry_empty_result_with_codes: [80]
    base: "DC=example,DC=com"
    tls_options:
      cert: |
        -----BEGIN CERTIFICATE-----
        ...
        -----END CERTIFICATE-----
      
      key: |
        -----BEGIN PRIVATE KEY-----
        ...
        -----END PRIVATE KEY----- EOS ```
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 재구성합니다.

자체 컴파일 설치의 경우:

  1. config/gitlab.yml을 편집합니다: ```yaml ldap: enabled: true servers: main: # ‘main’은 이 LDAP 서버의 GitLab ‘provider ID’입니다 label: ‘Google Secure LDAP’ base: “DC=example,DC=com” host: ‘ldap.google.com’ port: 636 uid: ‘uid’ bind_dn: ‘DizzyHorse’ password: ‘d6V5H8nhMUW9AuDP25abXeLd’ encryption: ‘simple_tls’ verify_certificates: true retry_empty_result_with_codes: [80]

      tls_options:
        cert: |
          -----BEGIN CERTIFICATE-----
          ...
          -----END CERTIFICATE-----
    
        key: |
          -----BEGIN PRIVATE KEY-----
          ...
          -----END PRIVATE KEY----- ```
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 재시작합니다.

암호화된 자격 증명 사용

선택적으로 bind_dnpassword를 별도의 암호화된 구성 파일에 저장할 수 있습니다. 이는 일반 LDAP 통합과 동일한 단계를 사용하여 수행할 수 있습니다.