- 모든 사용자에 대한 2FA 강제 시행
- 관리자 사용자에 대한 2FA 강제 시행
- 그룹 내 모든 사용자에 대한 2FA 강제 시행
- 2FA 비활성화
- Git over SSH 작업을 위한 2FA
이중 확인 인증 강제 시행
이중 확인 인증(2FA)
은 사용자가 자신의 신원을 증명하기 위해 두 가지 서로 다른 요소를 제공해야 하는 인증 방법입니다:
- 사용자명 및 비밀번호.
- 애플리케이션에 의해 생성된 코드와 같은 두 번째 인증 방법.
2FA는 무단 사용자가 계정에 액세스하기 어렵게 만듭니다.
왜냐하면 두 가지 요소가 모두 필요하기 때문입니다.
모든 사용자에 대한 2FA 강제 시행
관리자는 두 가지 방법으로 모든 사용자에 대해 2FA를 강제 시행할 수 있습니다:
- 다음 로그인 시 강제 시행.
-
다음 로그인 시 제안하되, 강제 시행 전에 유예 기간을 허용합니다.
설정한 유예 기간이 경과한 후에는 사용자가 로그인할 수 있지만
/-/profile/two_factor_auth
에서 2FA 설정 영역을 벗어날 수 없습니다.
UI 또는 API를 사용하여 모든 사용자에 대해 2FA를 강제 시행할 수 있습니다.
UI 사용
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- Settings > General을 선택합니다.
-
Sign-in restrictions을 확장합니다:
- 이중 확인 인증 강제 시행을 선택하여 이 기능을 활성화합니다.
-
Two-factor grace period에 시간을 입력합니다. 다음 로그인 시 2FA를 시행하고 싶다면
0
을 입력합니다.
API 사용
어플리케이션 설정 API를 사용하여 다음 설정을 수정합니다:
-
require_two_factor_authentication
. -
two_factor_grace_period
.
자세한 내용은 API 호출을 통해 접근할 수 있는 설정 목록을 참조하세요.
관리자 사용자에 대한 2FA 강제 시행
- 도입됨 GitLab 16.8에서.
관리자는 Self-managed 인스턴스의 관리자 사용자에 대해 2FA를 강제 시행할 수 있습니다.
- 왼쪽 사이드바에서 하단의 Admin을 선택합니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
-
Sign-in restrictions 섹션을 확장합니다:
- 관리자가 2FA를 활성화해야 함을 선택합니다.
-
Two-factor grace period에 시간을 입력합니다. 다음 로그인 시 2FA를 시행하고 싶다면
0
을 입력합니다.
- 변경 사항 저장을 선택합니다.
그룹 내 모든 사용자에 대한 2FA 강제 시행
선행 조건:
- 해당 그룹에 대해 Maintainer 또는 Owner 역할이 있어야 합니다.
특정 그룹에 대해서만 2FA를 강제 시행하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- Settings > General을 선택합니다.
- Permissions and group features을 확장합니다.
- 이 그룹의 모든 사용자는 이중 확인 인증을 설정해야 합니다를 선택합니다.
- 선택 사항. 2FA 시행 지연(시간)에 유예 기간을 원하시는 시간 수를 입력합니다.
최상위 그룹과 하위 그룹 및 프로젝트에 여러 다른 유예 기간이 있는 경우, 가장 짧은 유예 기간이 사용됩니다. - 변경 사항 저장을 선택합니다.
강제 시행은 그룹 내 모든 직접 및 상속된 구성원에게 영향을 미칩니다.
액세스 토큰은 API 기반이므로 인증을 위한 두 번째 요소를 제공하는 데 필요하지 않습니다.
2FA가 강제 시행되기 전에 생성된 토큰은 유효성을 유지합니다.
GitLab의 수신 이메일 기능은 2FA 강제 시행을 따르지 않습니다.
사용자는 2FA를 먼저 인증하지 않고도 문제를 생성하거나 병합 요청에 댓글을 달 수 있습니다.
이것은 2FA가 강제 시행되더라도 해당됩니다.
하위 그룹의 2FA
상위 그룹과 동일한 방식으로 개별 하위 그룹에 대해 2FA를 활성화하고 적용할 수 있습니다.
하위 그룹이 자체 2FA 요구 사항을 설정하지 못하도록 방지할 수 있습니다:
- 상위 그룹의 설정 > 일반으로 이동합니다.
- 권한 및 그룹 기능 섹션을 확장합니다.
- 하위 그룹이 자체 2단계 인증 규칙을 설정할 수 있도록 허용 체크 박스를 해제합니다.
이 작업은 2FA 요구 사항이 있는 모든 하위 그룹이 회원에게 2FA를 요구하지 않도록 합니다.
프로젝트의 2FA
2FA를 활성화하거나 적용하는 그룹에 속하는 프로젝트가 2FA를 활성화하거나 적용하지 않는 그룹과 공유되는 경우, 비 2FA 그룹의 회원은 해당 프로젝트에 2FA 없이 접근할 수 있습니다. 예를 들어:
- 그룹 A는 2FA를 활성화하고 적용합니다. 그룹 B는 2FA가 활성화되지 않았습니다.
- 그룹 A에 속하는 프로젝트, P가 그룹 B와 공유되면, 그룹 B의 회원은 2FA 없이 프로젝트 P에 접근할 수 있습니다.
이러한 일이 발생하지 않도록 프로젝트 공유 방지를 2FA 그룹에 대해 설정하세요.
2FA가 활성화된 그룹 또는 하위 그룹의 프로젝트에 회원을 추가하면, 개별적으로 추가된 회원에게는 2FA가 필수가 아닙니다.
2FA 비활성화
단일 사용자 또는 모든 사용자에 대해 2FA를 비활성화할 수 있습니다.
이는 영구적이고 복구할 수 없는 작업입니다. 사용자는 다시 사용하기 위해 2FA를 재활성화해야 합니다.
경고: 사용자에 대한 2FA 비활성화는 모든 사용자에 대한 2FA 적용 또는 그룹 내 모든 사용자에 대한 2FA 적용 설정을 비활성화하지 않습니다. 사용자가 GitLab에 다시 로그인할 때 2FA를 다시 설정하라는 요청을 받지 않도록 강제 적용된 2FA 설정도 비활성화해야 합니다.
단일 사용자에 대해
관리자
단일 관리자의 2FA를 비활성화하기 위해 Rails 콘솔을 사용할 수 있습니다:
admin = User.find_by_username('<USERNAME>')
user_to_disable = User.find_by_username('<USERNAME>')
TwoFactor::DestroyService.new(admin, user: user_to_disable).execute
관리자는 2FA가 비활성화되었음을 통보받습니다.
비관리자
GitLab 15.2 이후 버전에서는 Rails 콘솔 또는 API 엔드포인트를 사용하여 비관리자의 2FA를 비활성화할 수 있습니다.
자신의 계정에 대해 2FA를 비활성화할 수 있습니다.
관리자의 2FA를 비활성화하기 위해 API 엔드포인트를 사용할 수 없습니다.
모든 사용자에 대해
강제로 2FA가 비활성화된 경우에도 모든 사용자에 대해 2FA를 비활성화하려면 다음 Rake 작업을 사용합니다.
-
리눅스 패키지를 사용하는 설치의 경우:
sudo gitlab-rake gitlab:two_factor:disable_for_all_users
-
스스로 컴파일한 설치의 경우:
sudo -u git -H bundle exec rake gitlab:two_factor:disable_for_all_users RAILS_ENV=production
Git over SSH 작업을 위한 2FA
- 기본적으로 비활성화된 상태로 기능 플래그 뒤에 배포됩니다.
- GitLab 15.3에서 도입된 푸시 알림 지원 소개됨.
자체 관리되는 GitLab에서는 기본적으로 이 기능이 제공되지 않습니다. 이를 활성화하려면 관리자가
two_factor_for_cli
라는 기능 플래그를 활성화할 수 있습니다. GitLab.com 및 GitLab Dedicated에서는 이 기능이 제공되지 않습니다. 이 기능은 생산 사용 준비가 되지 않았습니다. 이 기능 플래그는 2FA가 활성화된 경우 Git 작업의 세션 지속 시간에도 영향을 미칩니다.Git over SSH 작업에 대해 2FA를 강제 적용할 수 있습니다. 그러나 ED25519_SK 또는 ECDSA_SK SSH 키를 사용하는 것이 좋습니다. 2FA는 Git 작업에 대해서만 강제 적용되며, personal_access_token
과 같은 내부 명령은 제외됩니다.
일회성 비밀번호(OTP) 인증을 수행하려면 다음을 실행하십시오:
ssh git@<hostname> 2fa_verify
그런 다음 다음 중 하나로 인증합니다:
- 올바른 OTP 입력.
- GitLab 15.3 이상에서는 FortiAuthenticator가 활성화된 경우 디바이스 푸시 알림에 응답.
인증에 성공하면 연결된 SSH 키를 사용하여 15분(기본값) 동안 Git over SSH 작업을 수행할 수 있습니다.
보안 제한 사항
2FA는 손상된 개인 SSH 키를 가진 사용자를 보호하지 않습니다.
OTP가 확인된 후에는 누구나 해당 개인 SSH 키로 Git over SSH를 실행할 수 있으며, 설정된 세션 지속 시간 동안 사용할 수 있습니다.