- 이중 인증과 함께 개인 액세스 토큰 사용
- OAuth 자격 증명 도우미
- 이중 인증 활성화
- 복구 코드
- 2단계 인증이 활성화된 상태에서 로그인
- 2단계 인증 비활성화
- GitLab 관리자 정보
이중 인증
Offering: GitLab.com, Self-managed
이중 인증(2FA)은 GitLab 계정에 추가 보안 수준을 제공합니다. 다른 사람이 귀하의 계정에 접근하려면 사용자 이름과 비밀번호 및 이중 인증의 두 번째 요소에 대한 접근이 필요합니다.
GitLab은 이중 인증의 두 번째 요소로 다음을 지원합니다:
- 시간 기반 일회성 비밀번호(TOTP). 활성화되면 GitLab은 로그인할 때 코드를 입력하라고 요청합니다. 코드는 귀하의 일회성 비밀번호 인증기(예: 귀하의 장치 중 하나에 있는 비밀번호 관리자)에 의해 생성됩니다.
- WebAuthn 장치. 로그인할 때 사용자 이름과 비밀번호를 제공하면 WebAuthn 장치를 활성화하도록 요청받습니다(보통 장치의 버튼을 눌러서). 이는 귀하를 대신하여 안전한 인증을 수행합니다.
장치를 설정한 경우, 장치를 잃어버릴 경우에도 계정에 접근할 수 있도록 TOTP도 설정하세요.
이중 인증과 함께 개인 액세스 토큰 사용
2FA가 활성화되면 비밀번호를 사용하여 GitLab에 HTTPS 또는 GitLab API로 인증할 수 없습니다. 대신 개인 액세스 토큰을 사용할 수 있습니다.
OAuth 자격 증명 도우미
다음 Git 자격 증명 도우미는 OAuth를 사용하여 GitLab에 인증합니다. 이는 이중 인증과 호환됩니다. 최초 인증 시 도우미가 웹 브라우저를 열고 GitLab에서 앱을 승인하라는 요청을 받습니다. 이후 인증에는 상호작용이 필요하지 않습니다.
Git 자격 증명 관리자
Git 자격 증명 관리자 (GCM)은 기본적으로 OAuth를 사용하여 인증합니다. GCM은 수동 구성 없이 GitLab.com을 지원합니다. 자체 관리되는 GitLab과 함께 GCM을 사용하려면 GitLab 지원을 참조하세요.
매번 푸시할 때 재인증을 필요로 하지 않도록 GCM은 캐싱과 다양한 플랫폼별 자격 증명 저장소를 지원하여 세션 간 지속됩니다. 이 기능은 개인 액세스 토큰이나 OAuth를 사용할 때 유용합니다.
Git for Windows에는 Git 자격 증명 관리자가 포함되어 있습니다.
Git 자격 증명 관리자는 주로 GitHub, Inc.에서 개발하고 있습니다. 이는 오픈 소스 프로젝트이며 커뮤니티에서 지원합니다.
git-credential-oauth
git-credential-oauth는 수동 구성 없이 GitLab.com 및 여러 인기 있는 공개 호스트를 지원합니다. 자체 관리되는 GitLab과 함께 사용하려면 git-credential-oauth 커스텀 호스트 문서를 참조하세요.
많은 Linux 배포판에는 git-credential-oauth가 패키지로 포함되어 있습니다.
git-credential-oauth는 커뮤니티에서 지원하는 오픈 소스 프로젝트입니다.
이중 인증 활성화
다음 방법으로 2FA를 활성화할 수 있습니다:
- 일회성 비밀번호 인증기. 2FA를 활성화한 후 복구 코드를 백업하세요.
- WebAuthn 장치.
2FA를 활성화하려면 계정 이메일이 확인되어야 합니다.
일회성 비밀번호 활성화
일회성 비밀번호로 2FA를 활성화하려면:
-
GitLab에서:
- 귀하의 사용자 설정에 접근합니다.
- 계정을 선택합니다.
- 이중 인증 활성화를 선택합니다.
-
귀하의 장치(보통 귀하의 전화)에서:
- 호환되는 애플리케이션을 설치합니다. 예를 들어:
- 클라우드 기반(하드웨어 장치를 잃어버릴 경우 접근을 복원할 수 있어 추천하는 방식):
- 기타(전용):
- 기타(오픈 소스 소프트웨어):
- 애플리케이션에서 다음 두 가지 방법 중 하나로 새 항목을 추가합니다:
- 귀하의 장치 카메라로 GitLab에서 표시된 코드를 스캔하여 자동으로 항목을 추가합니다.
- 제공된 세부 정보를 입력하여 수동으로 항목을 추가합니다.
- 호환되는 애플리케이션을 설치합니다. 예를 들어:
-
GitLab에서:
- 귀하의 장치에서의 항목에서 여섯 자리 핀 번호를 핀 코드에 입력합니다.
- 현재 비밀번호를 입력합니다.
- 제출을 선택합니다.
정확한 핀을 입력했다면 GitLab은 복구 코드 목록을 표시합니다. 이를 다운로드하고 안전한 장소에 보관하세요.
FortiAuthenticator를 사용하여 일회성 비밀번호 활성화하기
자체 관리 GitLab에서는 기본적으로 이 기능을 사용할 수 없습니다. 사용자별로 이 기능을 사용할 수 있도록 하려면 관리자가 forti_authenticator
라는 기능 플래그를
활성화해야 합니다.
GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 없습니다.
GitLab에서 FortiAuthenticator를 일회성 비밀번호(OTP) 공급자로 사용할 수 있습니다. 사용자는 다음을 충족해야 합니다:
- FortiAuthenticator와 GitLab 모두에서 동일한 사용자 이름으로 존재해야 합니다.
- FortiAuthenticator에서 FortiToken이 구성되어 있어야 합니다.
FortiAuthenticator의 사용자 이름과 액세스 토큰이 필요합니다. 아래에 표시된 access_token
은 FortiAuthenticator 액세스 키입니다. 토큰을 얻으려면
Fortinet 문서 라이브러리에 있는 REST API 솔루션 가이드를 확인하세요.
FortiAuthenticator 버전 6.2.0에서 테스트했습니다.
GitLab에서 FortiAuthenticator를 구성합니다. GitLab 서버에서:
-
구성 파일을 엽니다.
Linux 패키지 설치의 경우:
sudo editor /etc/gitlab/gitlab.rb
자체 컴파일된 설치의 경우:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
-
공급자 구성을 추가합니다.
Linux 패키지 설치의 경우:
gitlab_rails['forti_authenticator_enabled'] = true gitlab_rails['forti_authenticator_host'] = 'forti_authenticator.example.com' gitlab_rails['forti_authenticator_port'] = 443 gitlab_rails['forti_authenticator_username'] = '<some_username>' gitlab_rails['forti_authenticator_access_token'] = 's3cr3t'
자체 컴파일된 설치의 경우:
forti_authenticator: enabled: true host: forti_authenticator.example.com port: 443 username: <some_username> access_token: s3cr3t
-
구성 파일을 저장합니다.
Cisco Duo를 사용하여 일회성 비밀번호 활성화하기
- GitLab 15.10에서 도입됨.
자체 관리 GitLab에서는 기본적으로 이 기능을 사용할 수 있습니다. GitLab.com에서는 이 기능을 사용할 수 없습니다.
GitLab에서 Cisco Duo를 OTP 공급자로 사용할 수 있습니다.
DUO®는 Cisco Systems, Inc. 및/또는 그 계열사의 등록 상표입니다.
필수 조건
Cisco Duo를 OTP 공급자로 사용하려면:
- 귀하의 계정은 Cisco Duo와 GitLab 모두에 존재해야 하며, 두 애플리케이션에서 동일한 사용자 이름을 가져야 합니다.
- Cisco Duo를 구성하고 통합 키, 비밀 키 및 API 호스트 이름을 가져야 합니다.
자세한 내용은 Cisco Duo API 문서를 참조하세요.
GitLab 15.10은 Cisco Duo 버전 D261.14에서 테스트되었습니다.
GitLab에서 Cisco Duo 구성하기
GitLab 서버에서:
-
구성 파일을 엽니다.
리눅스 패키지 설치의 경우:
sudo editor /etc/gitlab/gitlab.rb
자가 컴파일 설치의 경우:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
-
공급자 구성을 추가합니다.
리눅스 패키지 설치의 경우:
gitlab_rails['duo_auth_enabled'] = false gitlab_rails['duo_auth_integration_key'] = '<duo_integration_key_value>' gitlab_rails['duo_auth_secret_key'] = '<duo_secret_key_value>' gitlab_rails['duo_auth_hostname'] = '<duo_api_hostname>'
자가 컴파일 설치의 경우:
duo_auth: enabled: true hostname: <duo_api_hostname> integration_key: <duo_integration_key_value> secret_key: <duo_secret_key_value>
-
구성 파일을保存합니다.
-
리눅스 패키지 설치의 경우, GitLab 다시 구성하기.
자가 컴파일 설치의 경우, GitLab 재시작하기.
FortiToken Cloud를 사용하여 일회성 비밀번호 활성화
자가 관리 GitLab에서는 기본적으로 이 기능을 사용할 수 없습니다. 사용자별로 사용 가능하게 하려면 관리자가
기능 플래그 ‘forti_token_cloud’를 활성화할 수 있습니다.
GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 없습니다.
이 기능은 프로덕션 사용 준비가 되어 있지 않습니다.
GitLab에서 FortiToken Cloud를 일회성 비밀번호(OTP) 공급자로 사용할 수 있습니다. 사용자는:
- FortiToken Cloud와 GitLab 모두에서 동일한 사용자 이름으로 존재해야 합니다.
- FortiToken Cloud에 FortiToken이 구성되어 있어야 합니다.
FortiToken Cloud를 구성하려면 client_id
및 client_secret
가 필요합니다. 이를 얻으려면
Fortinet 문서 라이브러리의 REST API 가이드를 참조하세요.
GitLab에서 FortiToken Cloud를 구성합니다. GitLab 서버에서:
-
구성 파일을 엽니다.
리눅스 패키지 설치의 경우:
sudo editor /etc/gitlab/gitlab.rb
자가 컴파일 설치의 경우:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
-
공급자 구성을 추가합니다.
리눅스 패키지 설치의 경우:
gitlab_rails['forti_token_cloud_enabled'] = true gitlab_rails['forti_token_cloud_client_id'] = '<your_fortinet_cloud_client_id>' gitlab_rails['forti_token_cloud_client_secret'] = '<your_fortinet_cloud_client_secret>'
자가 컴파일 설치의 경우:
forti_token_cloud: enabled: true client_id: YOUR_FORTI_TOKEN_CLOUD_CLIENT_ID client_secret: YOUR_FORTI_TOKEN_CLOUD_CLIENT_SECRET
-
구성 파일을保存합니다.
WebAuthn 장치 설정
- GitLab 15.10에서 도입된 WebAuthn 장치에 대한 선택적 일회성 비밀번호 인증에 대한 정보. 기본적으로 GitLab.com 및 셀프 관리에서 사용 가능.
셀프 관리 GitLab에서는 기본적으로 WebAuthn 장치에 대한 선택적 일회성 비밀번호 인증을 사용할 수 없습니다. 이 기능을 활성화하려면 관리자가 기능 플래그를 활성화해야 합니다.
GitLab.com에서는 이 기능을 사용할 수 있습니다. GitLab Dedicated에서는 이 기능을 사용할 수 없습니다.
WebAuthn은 다음에 의해 지원됩니다:
- 데스크탑 브라우저:
- Chrome
- Edge
- Firefox
- Opera
- Safari
- 모바일 브라우저:
- Chrome for Android
- Firefox for Android
- iOS Safari (iOS 13.3부터)
WebAuthn 호환 장치로 2FA를 설정하려면:
- 선택 사항. 일회성 비밀번호 설정.
- 사용자 설정에 액세스합니다.
- 계정을 선택합니다.
- 전화번호 인증 활성화를 선택합니다.
- WebAuthn 장치를 연결합니다.
- 장치 이름을 입력하고 GitLab 15.10 이상에서는 GitLab 계정 비밀번호를 입력합니다.
신원 공급자를 통해 로그인한 경우 이 비밀번호를 입력할 필요가 없을 수 있습니다. - 새 WebAuthn 장치 설정을 선택합니다.
- 장치에 따라 버튼을 눌러야 하거나 센서를 터치해야 할 수 있습니다.
장치를 성공적으로 설정했다는 메시지를 받아야 합니다.
WebAuthn 호환 장치로 2FA를 설정하면 해당 장치가 특정 컴퓨터의 특정 브라우저에 연결됩니다.
브라우저 및 WebAuthn 장치에 따라 다른 브라우저 또는 컴퓨터에서 WebAuthn 장치를 사용할 수 있도록 설정을 구성할 수 있습니다.
이것이 2FA를 설정하는 첫 번째 경우라면,
계정을 복구할 수 있도록 복구 코드 다운로드를 해야 합니다.
경고:
브라우저 데이터를 지우면 계정에 대한 액세스를 잃을 수 있습니다.
복구 코드
일회성 비밀번호로 2FA를 성공적으로 활성화한 직후에, 생성된 복구 코드 세트를 다운로드하라는 메시지가 표시됩니다.
일회성 비밀번호 인증기를 잃어버린 경우, 이러한 복구 코드 중 하나를 사용하여 계정에 로그인할 수 있습니다.
경고:
각 코드는 계정에 로그인하는 데 한 번만 사용할 수 있습니다.
코드를 복사하고 인쇄하거나, 코드 다운로드를 사용하여 안전한 곳에 보관하기 위해 다운로드해야 합니다.
다운로드를 선택하면 파일 이름은 gitlab-recovery-codes.txt
입니다.
- WebAuthn 장치에 대해서는 복구 코드가 생성되지 않습니다.
gitlab-sshd
는 복구 코드를 재생성하는 데 적합하지 않습니다.
복구 코드를 분실했거나 새로운 코드를 생성하려면 다음 중 하나를 사용할 수 있습니다:
2단계 인증 복구 코드 재생성
2FA 복구 코드를 재생성하려면 데스크톱 브라우저에 접근해야 합니다:
- 사용자 설정에 접근합니다.
- 계정 > 2단계 인증(2FA)를 선택합니다.
- 이미 2FA를 설정한 경우, 2단계 인증 관리를 선택합니다.
- 2단계 인증 비활성화 섹션에서 복구 코드 재생성을 선택합니다.
- 대화 상자에서 현재 비밀번호를 입력하고 복구 코드 재생성을 선택합니다.
참고: 2FA 복구 코드를 재생성하는 경우, 이를 저장하세요. 이전에 생성된 2FA 코드는 사용할 수 없습니다.
2단계 인증이 활성화된 상태에서 로그인
2FA가 활성화된 상태에서 로그인하는 것은 일반 로그인 프로세스와 약간 다릅니다. 사용자 이름과 비밀번호를 입력하면,
어떤 유형의 2FA를 활성화했는지에 따라 두 번째 프롬프트가 표시됩니다.
일회용 비밀번호를 사용하여 로그인
요청 시, 일회용 비밀번호 인증 애플리케이션의 PIN 또는 복구 코드를 입력하여 로그인합니다.
WebAuthn 장치를 사용하여 로그인
지원되는 브라우저에서는 자격 증명을 입력한 후 WebAuthn 장치를 활성화하라는 메시지가 자동으로 표시됩니다 (예: 버튼을 터치하거나 누르기).
장치가 인증 요청에 응답했다는 메시지가 표시되고 자동으로 로그인됩니다.
2단계 인증 비활성화
TOTP 인증 장치 및 WebAuthn 장치를 개별적으로 또는 동시에 비활성화할 수 있습니다. 동시에 비활성화하려면:
- 사용자 설정에 접근합니다.
- 계정을 선택합니다.
- 2단계 인증 관리를 선택합니다.
- 2단계 인증 비활성화 섹션에서 2단계 인증 비활성화를 선택합니다.
- 대화 상자에서 현재 비밀번호를 입력하고 2단계 인증 비활성화를 선택합니다.
이렇게 하면 모바일 애플리케이션 및 WebAuthn 장치를 포함한 모든 2FA 등록이 삭제됩니다.
GitLab 관리자 정보
- GitLab 백업을 복원한 후 2FA가 계속 작동하는지 확인하세요. GitLab 백업 복원을 참조하세요.
- TOTP 서버에서 2FA 인증이 정확하게 작동하도록 GitLab 서버의 시간을 NTP와 같은 서비스를 사용하여 동기화하세요. 그렇지 않으면 시간 차이로 인해 인증이 항상 실패할 수 있습니다.
-
GitLab WebAuthn 구현은 GitLab 인스턴스에 여러 호스트 이름 또는 FQDN으로 접근할 때 작동하지 않습니다. 각 WebAuthn 등록은 등록 당시의 _현재 호스트 이름_에 연결되며, 다른 호스트 이름이나 FQDN에서는 사용할 수 없습니다.
예를 들어, 사용자가
first.host.xyz
및second.host.xyz
에서 GitLab 인스턴스에 접근하려고 할 때:- 사용자가
first.host.xyz
를 사용하여 로그인하고 WebAuthn 키를 등록합니다. - 사용자가 로그아웃하고
first.host.xyz
를 사용하여 다시 로그인하려고 하면 - WebAuthn 인증이 성공합니다. - 사용자가 로그아웃하고
second.host.xyz
를 사용하여 로그인하려고 하면 - WebAuthn 인증이 실패합니다. 왜냐하면 WebAuthn 키는first.host.xyz
에서만 등록되었기 때문입니다.
- 사용자가
- 시스템 또는 그룹 수준에서 2FA를 강제 적용하려면 2단계 인증 강제 적용을 참조하세요.