이중 인증 강제하기
이중 인증(2FA)은 사용자가 자신의 신원을 증명하기 위해 두 가지 서로 다른 요소를 제공해야 하는 인증 방법입니다.
- 사용자 이름 및 암호
- 응용프로그램에 의해 생성된 코드와 같은 두 번째 인증 방법
무단으로 계정에 접근하는 것을 더 어렵게 만든다. 왜냐하면 그들은 두 가지 요소가 필요하기 때문입니다.
모든 사용자에 대한 2FA 강제 적용
관리자는 두 가지 다른 방법으로 모든 사용자에게 2FA를 강제로 적용할 수 있습니다.
- 다음 로그인 시 강제 적용
-
다음 로그인 시 제안하지만 강제 적용하기 전에 유예 기간 부여
구성된 유예기간이 지난 후, 사용자들은 로그인할 수 있지만
/-/profile/two_factor_auth
에서 2FA 구성 영역을 떠날 수 없습니다.
모든 사용자에 대한 2FA 강제 적용은 UI 또는 API를 사용할 수 있습니다.
UI 사용
- 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택하세요.
- 설정 > 일반을 선택하세요.
-
로그인 제한을 확장하세요:
- 이 기능을 활성화하려면 이중 인증 강제하기를 선택하세요.
-
2FA 유예기간에 시간을 입력하세요. 다음 로그인 시 2FA를 강제적으로 적용하려면
0
을 입력하세요.
API 사용
다음 설정을 수정하기 위해 application settings API를 사용하세요:
-
require_two_factor_authentication
. -
two_factor_grace_period
.
더 자세한 정보는 API 호출을 통해 액세스할 수 있는 설정 디렉터리을 참조하세요.
관리자 사용자에 대한 2FA 강제 적용
관리자는 Self-managed되는 인스턴스에서 관리자 사용자에 대한 2FA를 강제로 적용할 수 있습니다.
- 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택하세요.
- 왼쪽 사이드바에서 설정 > 일반을 선택하세요.
-
로그인 제한 섹션을 확장하세요:
- 관리자에게 2FA를 활성화하도록 요구하기를 선택하세요.
-
2FA 유예기간에 시간을 입력하세요. 다음 로그인 시 2FA를 강제 적용하려면
0
을 입력하세요.
- 변경 사항 저장을 선택하세요.
그룹의 모든 사용자에 대한 2FA 강제 적용
- GitLab 12.0에서 도입, 그룹에 대한 2FA 설정은 하위 그룹에도 동일하게 적용됩니다.
전제 조건:
- 그룹에 대한 Maintainer 또는 Owner 역할이 있어야 합니다.
특정 그룹에만 2FA를 강제로 적용하려면 다음을 수행합니다:
- 왼쪽 사이드바에서 검색 또는 이동하여 그룹을 찾습니다.
- 설정 > 일반을 선택하세요.
- 권한 및 그룹 기능을 확장하세요.
- 이 그룹의 모든 사용자에게 이중 인증 설정 설정 필요를 선택하세요.
- 선택 사항. 2FA 강제 적용 연기 (시간)에 유예 기간을 입력하세요. 최상위 그룹과 하위 그룹 및 프로젝트에 여러 다른 유예기간이 있는 경우, 가장 짧은 유예기간이 사용됩니다.
- 변경 사항 저장을 선택하세요.
이로 인해 그룹의 직접 및 상속된 구성원에 영향을 미칩니다.
접근 토큰은 두 번째 요소를 제공할 필요가 없기 때문에 인증을 위해 기반으로 하는 API입니다. 2FA가 강제 적용되기 전에 생성된 토큰은 여전히 유효합니다.
GitLab 수신 이메일 기능은 2FA 강제 적용을 따르지 않습니다. 사용자들은 2FA로 인증하지 않고도 이메일 기능을 사용할 수 있습니다. 이것은 2FA가 강제 적용되더라도 해당됩니다.
하위 그룹의 2FA
최상위 그룹과 동일한 방식으로 개별 하위 그룹에서 2FA를 활성화하고 강제로 적용할 수 있습니다.
하위 그룹이 자체 2FA 요구 사항을 설정하지 못하도록 하려면:
- 최상위 그룹의 설정 > 일반으로 이동하세요.
- 권한 및 그룹 기능 섹션을 확장하세요.
- 하위 그룹이 자체 이중 인증 규칙을 설정하도록 허용 확인란을 해제하세요.
이 작업은 2FA 요구사항이 있는 모든 하위 그룹에 적용되지 않도록 합니다.
프로젝트에서 2FA
2FA를 활성화하거나 강제로 적용하는 그룹에 속한 프로젝트가 공유된 경우, 2FA가 사용되지 않는 그룹의 구성원은 2FA를 사용하지 않고도 해당 프로젝트에 액세스할 수 있습니다. 예를 들어:
- 그룹 A는 2FA가 활성화되고 강제로 적용됩니다. 그룹 B는 2FA가 활성화되지 않았습니다.
- 그룹 A에 속한 프로젝트 P가 그룹 B와 공유된 경우, 그룹 B의 구성원은 2FA를 사용하지 않고 해당 프로젝트 P에 액세스할 수 있습니다.
이를 방지하려면 2FA 그룹에 대한 프로젝트 공유 방지를 설정하십시오.
그룹 또는 하위 그룹에 2FA가 활성화된 프로젝트에 구성원을 추가하는 경우, 해당 구성원은 2FA를 사용하지 않아도 됩니다.
2단계 인증 해제
단일 사용자 또는 모든 사용자의 2단계 인증(2FA)을 해제할 수 있습니다.
이 작업은 영구적이고 돌이킬 수 없는 조치입니다. 사용자는 다시 2FA를 활성화해야 합니다.
단일 사용자용
관리자
GitLab 13.5 이상에서 단일 관리자의 2FA를 해제하려면 Rails 콘솔을 사용하십시오.
admin = User.find_by_username('<사용자명>')
user_to_disable = User.find_by_username('<사용자명>')
TwoFactor::DestroyService.new(admin, user: user_to_disable).execute
관리자에게 2FA가 해제되었음을 알립니다.
관리자가 아닌 사용자
GitLab 15.2 이상에서 관리자가 아닌 사용자의 2FA를 해제하려면 Rails 콘솔이나 API 엔드포인트 중 하나를 사용할 수 있습니다.
여러분의 계정의 2FA를 비활성화할 수 있습니다.
API 엔드포인트를 사용하여 관리자의 2FA를 비활성화할 수는 없습니다.
모든 사용자용
모든 사용자의 2FA를 비활성화하려면 다음 Rake 작업을 사용하십시오.
-
Linux 패키지를 사용하는 경우:
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
SSH 작업용 2FA
two_factor_for_cli
라는 피처 플래그를 활성화해야 합니다. GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 없습니다. 이 기능은 아직 제품으로 충분히 사용할 수준이 아닙니다. 이 피처 플래그는 또한 2FA가 활성화된 상태에서 Git 작업의 세션 기간을 사용자 정의하는 데 영향을 미칩니다.여러분은 SSH 작업에 대한 2FA를 강제 적용할 수 있습니다. 그러나 ED25519_SK 또는 ECDSA_SK SSH 키를 사용해야 합니다. 2FA는 Git 작업에 대해서만 강제로 적용되며, personal_access_token
과 같은 내부 명령은 제외됩니다.
일회용 비밀번호(OTP) 확인을 수행하려면 다음을 실행하십시오.
ssh git@<호스트명> 2fa_verify
그런 다음 올바른 OTP를 입력하거나,
- GitLab 15.3 이상에서 FortiAuthenticator가 활성화되어 있으면, 기기 푸시 알림에 응답합니다.
인증에 성공한 후에는 연관된 SSH 키로 Git over SSH 작업을 15분(기본값) 동안 수행할 수 있습니다.
보안 제한
2FA는 개인 SSH 키가 손상된 사용자를 보호하지 않습니다.
한 번 OTP가 확인되면 구성된 세션 기간 동안 해당 개인 SSH 키로 누구나 Git over SSH를 실행할 수 있습니다.