구글 안전한 LDAP
Google Cloud Identity은 GitLab과 구성할 수 있는 인증 및 그룹 동기화를 위한 안전한 LDAP 서비스를 제공합니다.
안전한 LDAP는 표준 LDAP 서버와 약간 다른 구성을 필요로 합니다. 아래 단계에서 다루는 내용은 다음과 같습니다:
- Google 관리자 콘솔에서 안전한 LDAP 클라이언트 구성하기
- 필요한 GitLab 구성
안전한 LDAP는 특정 Google Workspace 에디션에서만 사용할 수 있습니다. 자세한 내용은 Google Secure LDAP 서비스 문서를 참조하세요.
Google LDAP 클라이언트 구성하기
-
https://admin.google.com/Dashboard로 이동하여 Google Workspace 도메인 관리자로서 로그인합니다.
-
Apps > LDAP > 클라이언트 추가로 이동합니다.
-
LDAP 클라이언트 이름 및 선택 사항인 설명을 제공합니다. 설명 값은 어떤 것이든 상관없습니다. 예를 들어, 이름은
GitLab
이고 설명은GitLab LDAP 클라이언트
가 될 수 있습니다. 계속을 선택합니다. -
액세스 권한을 필요에 따라 설정합니다. 사용자 자격 증명 확인과 사용자 정보 읽기에 대해 전체 도메인(GitLab) 또는 선택한 조직 단위 중 하나를 선택해야 합니다. LDAP 클라이언트 추가를 선택합니다.
참고: GitLab LDAP 그룹 동기화를 사용할 계획이라면
그룹 정보 읽기
를 켜두세요. -
생성된 인증서를 다운로드합니다. 이는 GitLab이 Google 안전한 LDAP 서비스와 통신하는 데 필요합니다. 다운로드한 인증서를 나중에 사용하기 위해 저장하세요. 다운로드한 후, 클라이언트 세부 정보로 이동을 선택합니다.
-
서비스 상태 섹션을 확장하고 LDAP 클라이언트를
모든 사용자에 대해 켬
으로 설정합니다. 저장을 선택한 후, 다시 서비스 상태 막대를 선택하여 축소하여 나머지 설정으로 돌아갑니다. -
인증 섹션을 확장하고 새 자격 증명 생성을 선택합니다. 이러한 자격 증명을 나중에 사용할 수 있도록 복사하거나 메모하세요. 닫기를 선택한 후, 다시 인증 막대를 선택하여 축소하여 나머지 설정으로 돌아갑니다.
이제 Google 안전한 LDAP 클라이언트 구성이 완료되었습니다. 아래 화면은 최종 설정의 예시를 보여줍니다. 계속해서 GitLab을 구성하세요.
GitLab 구성하기
이전에 얻은 액세스 자격 증명 및 인증서를 삽입하여 GitLab 구성을 편집하세요.
이전에 LDAP 클라이언트 구성 중에 얻은 값을 사용하여 수정해야 하는 구성 키는 다음과 같습니다:
-
bind_dn
: 액세스 자격 증명 사용자 이름 -
password
: 액세스 자격 증명 암호 -
cert
: 다운로드한 인증서 번들의.crt
파일 텍스트 -
key
: 다운로드한 인증서 번들의.key
파일 텍스트
Linux 패키지 설치의 경우:
-
/etc/gitlab/gitlab.rb
를 편집합니다:gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = YAML.load <<-EOS # 아래에 'EOS'로 이 블록을 닫아야 합니다 main: # 'main'은 이 LDAP 서버의 GitLab '공급자 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----- MIIDbDCCAlSgAwIBAgIGAWlzxiIfMA0GCSqGSIb3DQEBCwUAMHcxFDASBgNVBAoTC0dvb2dsZSBJ bmMuMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQDEwtMREFQIENsaWVudDEPMA0GA1UE CxMGR1N1aXRlMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTAeFw0xOTAzMTIyMTE5 MThaFw0yMjAzMTEyMTE5MThaMHcxFDASBgNVBAoTC0dvb2dsZSBJbmMuMRYwFAYDVQQHEw1Nb3Vu dGFpbiBWaWV3MRQwEgYDVQQDEwtMREFQIENsaWVudDEPMA0GA1UECxMGR1N1aXRlMQswCQYDVQQG EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ALOTy4aC38dyjESk6N8fRsKk8DN23ZX/GaNFL5OUmmA1KWzrvVC881OzNdtGm3vNOIxr9clteEG/ tQwsmsJvQT5U+GkBt+tGKF/zm7zueHUYqTP7Pg5pxAnAei90qkIRFi17ulObyRHPYv1BbCt8pxNB 4fG/gAXkFbCNxwh1eiQXXRTfruasCZ4/mHfX7MVm8JmWU9uAVIOLW+DSWOFhrDQduJdGBXJOyC2r Gqoeg9+tkBmNH/jjxpnEkFW8q7io9DdOUqqNgoidA1h9vpKTs3084sy2DOgUvKN9uXWx14uxIyYU Y1DnDy0wczcsuRt7l+EgtCEgpsLiLJQbKW+JS1UCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAf60J yazhbHkDKIH2gFxfm7QLhhnqsmafvl4WP7JqZt0u0KdnvbDPfokdkM87yfbKJU1MTI86M36wEC+1 P6bzklKz7kXbzAD4GggksAzxsEE64OWHC+Y64Tkxq2NiZTw/76POkcg9StiIXjG0ZcebHub9+Ux/ rTncip92nDuvgEM7lbPFKRIS/YMhLCk09B/U0F6XLsf1yYjyf5miUTDikPkov23b/YGfpc8kh6hq 1kqdi6a1cYPP34eAhtRhMqcZU9qezpJF6s9EeN/3YFfKzLODFSsVToBRAdZgGHzj//SAtLyQTD4n KCSvK1UmaMxNaZyTHg8JnMf0ZuRpv26iSg== -----END CERTIFICATE----- key: | -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCzk8uGgt/HcoxEpOjfH0bCpPAz dt2V/xmjRS+TlJpgNSls671QvPNTszXbRpt7zTiMa/XJbXhBv7UMLJrCb0E+VPhpAbfrRihf85u8 7nh1GKkz+z4OacQJwHovdKpCERYte7pTm8kRz2L9QWwrfKcTQeHxv4AF5BWwjccIdXokF10U367m rAmeP5h31+zFZvCZllPbgFSDi1vg0ljhYaw0HbiXRgVyTsgtqxqqHoPfrZAZjR/448aZxJBVvKu4 qPQ3TlKqjYKInQNYfb6Sk7N9POLMtgzoFLyjfbl1sdeLsSMmFGNQ5w8tMHM3LLkbe5fhILQhIKbC 4iyUGylviUtVAgMBAAECggEAIPb0CQy0RJoX+q/lGbRVmnyJpYDf+115WNnl+mrwjdGkeZyqw4v0 BPzkWYzUFP1esJRO6buBNFybQRFdFW0z5lvVv/zzRKq71aVUBPInxaMRyHuJ8D5lIL8nDtgVOwyE 7DOGyDtURUMzMjdUwoTe7K+O6QBU4X/1pVPZYgmissYSMmt68LiP8k0p601F4+r5xOi/QEy44aVp aOJZBUOisKB8BmUXZqmQ4Cy05vU9Xi1rLyzkn9s7fxnZ+JO6Sd1r0Thm1mE0yuPgxkDBh/b4f3/2 GsQNKKKCiij/6TfkjnBi8ZvWR44LnKpu760g/K7psVNrKwqJG6C/8RAcgISWQQKBgQDop7BaKGhK 1QMJJ/vnlyYFTucfGLn6bM//pzTys5Gop0tpcfX/Hf6a6Dd+zBhmC3tBmhr80XOX/PiyAIbc0lOI 31rafZuD/oVx5mlIySWX35EqS14LXmdVs/5vOhsInNgNiE+EPFf1L9YZgG/zA7OUBmqtTeYIPDVC 7ViJcydItQKBgQDFmK0H0IA6W4opGQo+zQKhefooqZ+RDk9IIZMPOAtnvOM7y3rSVrfsSjzYVuMS w/RP/vs7rwhaZejnCZ8/7uIqwg4sdUBRzZYR3PRNFeheW+BPZvb+2keRCGzOs7xkbF1mu54qtYTa HZGZj1OsD83AoMwVLcdLDgO1kw32dkS8IQKBgFRdgoifAHqqVah7VFB9se7Y1tyi5cXWsXI+Wufr j9U9nQ4GojK52LqpnH4hWnOelDqMvF6TQTyLIk/B+yWWK26Ft/dk9wDdSdystd8L+dLh4k0Y+Whb +lLMq2YABw+PeJUnqdYE38xsZVHoDjBsVjFGRmbDybeQxauYT7PACy3FAoGBAK2+k9bdNQMbXp7I j8OszHVkJdz/WXlY1cmdDAxDwXOUGVKIlxTAf7TbiijILZ5gg0Cb+hj+zR9/oI0WXtr+mAv02jWp W8cSOLS4TnBBpTLjIpdu+BwbnvYeLF6MmEjNKEufCXKQbaLEgTQ/XNlchBSuzwSIXkbWqdhM1+gx EjtBAoGARAdMIiDMPWIIZg3nNnFebbmtBP0qiBsYohQZ+6i/8s/vautEHBEN6Q0brIU/goo+nTHc t9VaOkzjCmAJSLPUanuBC8pdYgLu5J20NXUZLD9AE/2bBT3OpezKcdYeI2jqoc1qlWHlNtVtdqQ2 AcZSFJQjdg5BTyvdEDhaYUKGdRw= -----END PRIVATE KEY----- EOS
-
파일을 저장하고 변경 사항이 적용되도록 GitLab을 재구성하세요.
자체 컴파일한 설치의 경우:
-
config/gitlab.yml
을 편집합니다:```yaml ldap: enabled: true servers: main: # ‘main’은 이 LDAP 서버의 GitLab ‘공급자 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----- MIIDbDCCAlSgAwIBAgIGAWlzxiIfMA0GCSqGSIb3DQEBCwUAMHcxFDASBgNVBAoTC0dvb2dsZSBJ bmMuMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQDEwtMREFQIENsaWVudDEPMA0GA1UE CxMGR1N1aXRlMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTAeFw0xOTAzMTIyMTE5 MThaFw0yMjAzMTEyMTE5MThaMHcxFDASBgNVBAoTC0dvb2dsZSBJbmMuMRYwFAYDVQQHEw1Nb3Vu dGFpbiBWaWV3MRQwEgYDVQQDEwtMREFQIENsaWVudDEPMA0GA1UECxMGR1N1aXRlMQswCQYDVQQG EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ALOTy4aC38dyjESk6N8fRsKk8DN23ZX/GaNFL5OUmmA1KWzrvVC881OzNdtGm3vNOIxr9clteEG/ tQwsmsJvQT5U+GkBt+tGKF/zm7zueHUYqTP7Pg5pxAnAei90qkIRFi17ulObyRHPYv1BbCt8pxNB 4fG/gAXkFbCNxwh1eiQXXRTfru
암호화된 자격 증명 사용
bind_dn
및 password
을 선택적으로 별도의 암호화된 구성 파일에 저장할 수 있습니다.
일반 LDAP 통합과 동일한 단계를 사용합니다.