이중 인증 강제하기

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

이중 인증(2FA)은 사용자가 자신의 신원을 증명하기 위해 두 가지 서로 다른 요소를 제공해야 하는 인증 방법입니다.

  • 사용자 이름 및 암호
  • 응용프로그램에 의해 생성된 코드와 같은 두 번째 인증 방법

무단으로 계정에 접근하는 것을 더 어렵게 만든다. 왜냐하면 그들은 두 가지 요소가 필요하기 때문입니다.

note
SSO 사용 및 강제 적용을 하는 경우 이미 IDP 측에서 2FA를 강제 적용했을 수 있습니다. 따라서 GitLab에서도 2FA를 강제 적용하는 것이 불필요할 수 있습니다.

모든 사용자에 대한 2FA 강제 적용

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

관리자는 두 가지 다른 방법으로 모든 사용자에게 2FA를 강제로 적용할 수 있습니다.

  • 다음 로그인 시 강제 적용
  • 다음 로그인 시 제안하지만 강제 적용하기 전에 유예 기간 부여

    구성된 유예기간이 지난 후, 사용자들은 로그인할 수 있지만 /-/profile/two_factor_auth에서 2FA 구성 영역을 떠날 수 없습니다.

모든 사용자에 대한 2FA 강제 적용은 UI 또는 API를 사용할 수 있습니다.

UI 사용

  1. 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택하세요.
  2. 설정 > 일반을 선택하세요.
  3. 로그인 제한을 확장하세요:
    • 이 기능을 활성화하려면 이중 인증 강제하기를 선택하세요.
    • 2FA 유예기간에 시간을 입력하세요. 다음 로그인 시 2FA를 강제적으로 적용하려면 0을 입력하세요.

API 사용

다음 설정을 수정하기 위해 application settings API를 사용하세요:

  • require_two_factor_authentication.
  • two_factor_grace_period.

더 자세한 정보는 API 호출을 통해 액세스할 수 있는 설정 디렉터리을 참조하세요.

관리자 사용자에 대한 2FA 강제 적용

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

관리자는 Self-managed되는 인스턴스에서 관리자 사용자에 대한 2FA를 강제로 적용할 수 있습니다.

  1. 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택하세요.
  2. 왼쪽 사이드바에서 설정 > 일반을 선택하세요.
  3. 로그인 제한 섹션을 확장하세요:
    • 관리자에게 2FA를 활성화하도록 요구하기를 선택하세요.
    • 2FA 유예기간에 시간을 입력하세요. 다음 로그인 시 2FA를 강제 적용하려면 0을 입력하세요.
  4. 변경 사항 저장을 선택하세요.
note
GitLab로 로그인하기 위해 외부 제공자를 사용하는 경우, 이 설정은 사용자에게 2FA를 강제로 적용하지 않습니다. 해당 외부 제공자에서 2FA를 활성화해야 합니다.

그룹의 모든 사용자에 대한 2FA 강제 적용

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

전제 조건:

  • 그룹에 대한 Maintainer 또는 Owner 역할이 있어야 합니다.

특정 그룹에만 2FA를 강제로 적용하려면 다음을 수행합니다:

  1. 왼쪽 사이드바에서 검색 또는 이동하여 그룹을 찾습니다.
  2. 설정 > 일반을 선택하세요.
  3. 권한 및 그룹 기능을 확장하세요.
  4. 이 그룹의 모든 사용자에게 이중 인증 설정 설정 필요를 선택하세요.
  5. 선택 사항. 2FA 강제 적용 연기 (시간)에 유예 기간을 입력하세요. 최상위 그룹과 하위 그룹 및 프로젝트에 여러 다른 유예기간이 있는 경우, 가장 짧은 유예기간이 사용됩니다.
  6. 변경 사항 저장을 선택하세요.

이로 인해 그룹의 직접 및 상속된 구성원에 영향을 미칩니다.

접근 토큰은 두 번째 요소를 제공할 필요가 없기 때문에 인증을 위해 기반으로 하는 API입니다. 2FA가 강제 적용되기 전에 생성된 토큰은 여전히 유효합니다.

GitLab 수신 이메일 기능은 2FA 강제 적용을 따르지 않습니다. 사용자들은 2FA로 인증하지 않고도 이메일 기능을 사용할 수 있습니다. 이것은 2FA가 강제 적용되더라도 해당됩니다.

하위 그룹의 2FA

최상위 그룹과 동일한 방식으로 개별 하위 그룹에서 2FA를 활성화하고 강제로 적용할 수 있습니다.

하위 그룹이 자체 2FA 요구 사항을 설정하지 못하도록 하려면:

  1. 최상위 그룹의 설정 > 일반으로 이동하세요.
  2. 권한 및 그룹 기능 섹션을 확장하세요.
  3. 하위 그룹이 자체 이중 인증 규칙을 설정하도록 허용 확인란을 해제하세요.

이 작업은 2FA 요구사항이 있는 모든 하위 그룹에 적용되지 않도록 합니다.

프로젝트에서 2FA

2FA를 활성화하거나 강제로 적용하는 그룹에 속한 프로젝트가 공유된 경우, 2FA가 사용되지 않는 그룹의 구성원은 2FA를 사용하지 않고도 해당 프로젝트에 액세스할 수 있습니다. 예를 들어:

  • 그룹 A는 2FA가 활성화되고 강제로 적용됩니다. 그룹 B는 2FA가 활성화되지 않았습니다.
  • 그룹 A에 속한 프로젝트 P가 그룹 B와 공유된 경우, 그룹 B의 구성원은 2FA를 사용하지 않고 해당 프로젝트 P에 액세스할 수 있습니다.

이를 방지하려면 2FA 그룹에 대한 프로젝트 공유 방지를 설정하십시오.

그룹 또는 하위 그룹에 2FA가 활성화된 프로젝트에 구성원을 추가하는 경우, 해당 구성원은 2FA를 사용하지 않아도 됩니다.

2단계 인증 해제

Tier: Free, Premium, Ultimate Offering: Self-managed

단일 사용자 또는 모든 사용자의 2단계 인증(2FA)을 해제할 수 있습니다.

이 작업은 영구적이고 돌이킬 수 없는 조치입니다. 사용자는 다시 2FA를 활성화해야 합니다.

caution
사용자의 2FA를 해제해도 모든 사용자에게 2FA 강제 적용 또는 그룹의 모든 사용자에게 2FA 강제 적용 설정이 해제되지 않습니다. 강제로 적용된 2FA 설정도 해제하여 사용자가 GitLab에 다음으로 로그인할 때 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

Tier: Premium, Ultimate Offering: Self-managed
  • GitLab 13.7에서 도입됨.
  • GitLab 13.9에서 GitLab Free에서 GitLab Premium으로 이동.
  • 기본적으로 비활성화되어 있는 피처 플래그로 배포됨.
  • GitLab 15.3에서 소개된 푸시 알림 지원이 포함됨.
Self-managed GitLab에서는 기본적으로 이 기능을 사용할 수 없습니다. 이 기능을 사용하려면 관리자가 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를 입력하거나,

인증에 성공한 후에는 연관된 SSH 키로 Git over SSH 작업을 15분(기본값) 동안 수행할 수 있습니다.

보안 제한

2FA는 개인 SSH 키가 손상된 사용자를 보호하지 않습니다.

한 번 OTP가 확인되면 구성된 세션 기간 동안 해당 개인 SSH 키로 누구나 Git over SSH를 실행할 수 있습니다.