Google 안전한 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. 액세스 권한을 필요에 따라 설정합니다. 사용자 자격 증명 확인사용자 정보 읽기에 대해 도메인 전체 (GitLab) 또는 선택한 조직 단위 중 하나를 선택해야 합니다. LDAP 클라이언트 추가를 선택합니다.

    note
    GitLab LDAP 그룹 동기화를 사용할 계획이라면 그룹 정보 읽기를 활성화합니다.

    LDAP 클라이언트 추가 단계 2

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

  6. 서비스 상태 섹션을 확장하고 모든 사람을 위해 LDAP 클라이언트를 켭니다. 저장을 선택한 후 다시 세팅으로 돌아가기 위해 서비스 상태 막대를 다시 선택합니다.

  7. 인증 섹션을 확장하고 새 자격 증명 생성을 선택합니다. 이러한 자격 증명을 나중에 사용할 수 있도록 복사/메모합니다. 닫기를 선택한 후 다시 세팅으로 돌아가기 위해 인증 막대를 다시 선택합니다.

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

LDAP 클라이언트 설정

GitLab 구성

이전에 얻은 액세스 자격 증명 및 인증서를 삽입하여 GitLab 구성을 편집합니다.

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

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

Linux 패키지 설치의 경우:

  1. /etc/gitlab/gitlab.rb를 편집합니다:

    gitlab_rails['ldap_enabled'] = true
    gitlab_rails['ldap_servers'] = YAML.load <<-EOS # 아래에서 'EOS'로 이 블록을 닫는 것을 기억하세요.
      main: # 'main'은 이 LDAP 서버의 GitLab '제공자 ID'입니다
        label: 'Google 안전한 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을 편집합니다:

    ldap:
      enabled: true
      servers:
        main: # 'main'는 이 LDAP 서버의 GitLab '제공자 ID'입니다
          label: 'Google 안전한 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 통합과 동일한 단계로 암호화된 자격 증명 사용할 수 있습니다.