InfoGrab Docs

이중 인증 강제 적용

요약

이중 인증(2FA)은 사용자가 신원을 증명하기 위해 두 가지 다른 요소를 제공해야 하는 인증 방법입니다: 2FA는 두 가지 요소가 모두 필요하기 때문에 무권한 사용자가 계정에 접근하기 어렵게 만듭니다. SSO를 사용하고 강제 적용하는 경우 이미 IdP(ID 공급자) 측에서 2FA를 강제 적용하고 있을 수 있습니다.

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

  • 사용자 이름과 비밀번호.
  • 애플리케이션에서 생성된 코드와 같은 두 번째 인증 방법.

2FA는 두 가지 요소가 모두 필요하기 때문에 무권한 사용자가 계정에 접근하기 어렵게 만듭니다.

Note

SSO를 사용하고 강제 적용하는 경우 이미 IdP(ID 공급자) 측에서 2FA를 강제 적용하고 있을 수 있습니다. GitLab에서도 2FA를 강제 적용하는 것은 불필요할 수 있습니다.

모든 사용자에게 2FA 강제 적용#

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

  • 다음 로그인 시 강제 적용.

  • 다음 로그인 시 제안하되, 강제 적용 전에 유예 기간 허용.

    구성된 유예 기간이 경과하면 사용자는 로그인할 수 있지만 /-/profile/two_factor_auth에서 2FA 구성 영역을 벗어날 수 없습니다.

UI 또는 API를 사용하여 모든 사용자에게 2FA를 강제 적용할 수 있습니다.

UI 사용#

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

API 사용#

애플리케이션 설정 API를 사용하여 다음 설정을 수정하세요:

  • require_two_factor_authentication.
  • two_factor_grace_period.

자세한 내용은 API 호출을 통해 액세스할 수 있는 설정 목록을 참조하세요.

관리자에게 2FA 강제 적용#

히스토리
  • GitLab 16.8에서 도입되었습니다.
  • 커스텀 관리자 역할을 가진 일반 사용자에 대한 2FA 강제 적용 지원이 GitLab 18.3에서 도입되었습니다.

관리자는 다음 두 가지 모두에 대해 2FA를 강제 적용할 수 있습니다:

  1. 오른쪽 상단 모서리에서 관리를 선택하세요.
  2. 왼쪽 사이드바에서 설정 > 일반을 선택하세요.
  3. 로그인 제한 섹션을 확장하세요:
    1. 관리자에게 이중 인증 강제 적용을 선택하세요.
    2. 이중 인증 유예 기간에 시간 수를 입력하세요. 다음 로그인 시도 시 2FA를 강제 적용하려면 0을 입력하세요.
  4. 변경 사항 저장을 선택하세요.
Note

외부 제공자를 사용하여 GitLab에 로그인하는 경우, 이 설정은 사용자에게 2FA를 강제 적용하지 않습니다. 2FA는 해당 외부 제공자에서 활성화해야 합니다.

그룹의 모든 사용자에게 2FA 강제 적용#

그룹 또는 서브그룹의 모든 사용자에게 2FA를 강제 적용할 수 있습니다.

2FA 강제 적용은 직접 및 상속된 멤버 그룹 멤버 모두에게 적용됩니다. 서브그룹에서 2FA가 강제 적용되면 상속된 멤버는 인증 요소를 등록해야 합니다. 상속된 멤버는 상위 그룹의 멤버입니다.

Note

이메일 OTP는 2FA 요구 사항을 충족하지 않습니다. 멤버는 앱 기반 TOTP 또는 WebAuthn을 구성해야 합니다.

사전 요구 사항:

  • 그룹에 대한 오너 역할이 있어야 합니다.

그룹에 2FA를 강제 적용하려면:

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

액세스 토큰은 API 기반이기 때문에 인증에 두 번째 요소를 제공할 필요가 없습니다. 2FA가 강제 적용되기 전에 생성된 토큰은 유효한 상태로 유지됩니다.

GitLab 수신 이메일 기능은 2FA 강제 적용을 따르지 않습니다. 사용자는 2FA를 먼저 인증하지 않고도 이슈 생성이나 머지 요청에 댓글 달기와 같은 수신 이메일 기능을 사용할 수 있습니다. 이는 2FA가 강제 적용된 경우에도 적용됩니다.

서브그룹에서의 2FA#

기본적으로 각 서브그룹은 최상위 그룹과 다를 수 있는 2FA 요구 사항을 구성할 수 있습니다.

사용자가 계층 구조의 여러 그룹 멤버인 경우 모든 레벨에서 가장 제한적인 2FA 요구 사항이 적용됩니다.

예를 들어, 최상위 그룹에서 2FA가 강제 적용될 때:

  • 최상위 그룹의 모든 멤버는 2FA를 사용해야 합니다.
  • 하위 서브그룹의 모든 멤버는 2FA를 사용해야 합니다.

최상위 그룹에서 2FA가 강제 적용되지 않을 때:

  • 서브그룹에 더 제한적인 2FA 강제 적용 허용이 활성화된 경우, 각 서브그룹은 독립적으로 2FA 요구 사항을 강제 적용할 수 있습니다. 서브그룹이 2FA 요구 사항을 활성화하면:
    • 최상위 그룹의 모든 멤버는 2FA를 사용해야 합니다.
    • 모든 형제 서브그룹의 멤버는 2FA를 사용해야 합니다.
  • 서브그룹에 더 제한적인 2FA 강제 적용 허용이 비활성화된 경우, 서브그룹은 독립적으로 2FA 요구 사항을 강제 적용할 수 없습니다. 계층 구조의 어떤 멤버에게도 2FA가 요구되지 않습니다.
Note

이 그룹의 모든 사용자는 이중 인증을 설정해야 합니다가 활성화되면 항상 서브그룹에 더 제한적인 2FA 강제 적용 허용보다 우선합니다.

서브그룹이 개별 2FA 요구 사항을 설정하지 못하도록 하려면:

  1. 최상위 그룹의 설정 > 일반으로 이동하세요.
  2. 권한 및 그룹 기능 섹션을 확장하세요.
  3. 서브그룹에 더 제한적인 2FA 강제 적용 허용 체크박스를 선택 취소하세요.

프로젝트에서의 2FA#

2FA를 활성화하거나 강제 적용하는 그룹에 속한 프로젝트가 2FA를 활성화하거나 강제 적용하지 않는 그룹과 공유되면, 비-2FA 그룹의 멤버는 2FA 없이 해당 프로젝트에 접근할 수 있습니다. 예를 들어:

  • 그룹 A는 2FA가 활성화되고 강제 적용됩니다. 그룹 B는 2FA가 활성화되지 않았습니다.
  • 그룹 A에 속한 프로젝트 P가 그룹 B와 공유되면, 그룹 B의 멤버는 2FA 없이 프로젝트 P에 접근할 수 있습니다.

이러한 상황이 발생하지 않도록 하려면 2FA 그룹에 대한 프로젝트 공유를 방지하세요.

Warning

2FA가 활성화된 그룹 또는 서브그룹의 프로젝트에 멤버를 추가하면, 개별적으로 추가된 멤버에게는 2FA가 요구되지 않습니다.

2FA 비활성화#

단일 사용자 또는 모든 사용자에 대해 2FA를 비활성화할 수 있습니다.

이 작업은 영구적이고 되돌릴 수 없습니다. 사용자는 2FA를 다시 사용하려면 재활성화해야 합니다.

Warning

사용자에 대해 2FA를 비활성화해도 모든 사용자에게 2FA 강제 적용 또는 그룹의 모든 사용자에게 2FA 강제 적용 설정은 비활성화되지 않습니다. 사용자가 다음에 GitLab에 로그인할 때 2FA를 다시 설정하도록 요청받지 않으려면 강제 적용된 2FA 설정도 비활성화해야 합니다.

모든 사용자의 경우#

강제 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
    

단일 사용자의 경우#

관리자#

Rails 콘솔을 사용하여 단일 관리자에 대해 2FA를 비활성화할 수 있습니다:

admin = User.find_by_username('')
user_to_disable = User.find_by_username('')

TwoFactor::DestroyService.new(admin, user: user_to_disable).execute

관리자에게 2FA가 비활성화되었다는 알림이 전송됩니다.

비관리자#

Rails 콘솔 또는 API 엔드포인트를 사용하여 비관리자에 대해 2FA를 비활성화할 수 있습니다.

자신의 계정에 대해 2FA를 비활성화할 수 있습니다.

API 엔드포인트를 사용하여 관리자에 대해 2FA를 비활성화할 수 없습니다.

엔터프라이즈 사용자#

최상위 그룹 오너는 엔터프라이즈 사용자에 대해 이중 인증(2FA)을 비활성화할 수 있습니다.

2FA를 비활성화하려면:

  1. 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾으세요.
  2. 왼쪽 사이드바에서 관리 > 멤버를 선택하세요.
  3. 엔터프라이즈2FA 뱃지가 있는 사용자를 찾으세요.
  4. 추가 작업(⋮)을 선택하고 이중 인증 비활성화를 선택하세요.

더 이상 그룹 멤버가 아닌 엔터프라이즈 사용자를 포함하여 엔터프라이즈 사용자에 대해 2FA를 비활성화하기 위해 API를 사용할 수도 있습니다.

SSH를 통한 Git 작업에서의 2FA#

Feature flag

기본적으로 이 기능은 사용할 수 없습니다. 사용 가능하게 하려면 관리자가 two_factor_for_cli라는 기능 플래그를 활성화할 수 있습니다. 이 기능은 프로덕션 사용에 준비되지 않았습니다. 이 기능 플래그는 2FA가 활성화된 경우 Git 작업의 세션 지속 시간에도 영향을 미칩니다.

SSH를 통한 Git 작업에 대해 2FA를 강제 적용할 수 있습니다. 그러나 대신 ED25519_SK 또는 ECDSA_SK SSH 키를 사용해야 합니다. 자세한 내용은 지원되는 SSH 키 유형을 참조하세요. 2FA는 Git 작업에만 강제 적용되며, personal_access_token과 같은 GitLab Shell의 내부 명령은 제외됩니다.

일회용 비밀번호(OTP) 확인을 수행하려면 다음을 실행하세요:

ssh git@<hostname> 2fa_verify

그런 다음 다음 중 하나로 인증하세요:

성공적으로 인증하면 연결된 SSH 키로 15분(기본값) 동안 SSH를 통한 Git 작업을 수행할 수 있습니다.

보안 제한#

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

OTP가 확인되면 구성된 세션 지속 시간 동안 누구든지 해당 개인 SSH 키로 SSH를 통한 Git을 실행할 수 있습니다.

이중 인증 강제 적용

Tier: Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기
요약

이중 인증(2FA)은 사용자가 신원을 증명하기 위해 두 가지 다른 요소를 제공해야 하는 인증 방법입니다: 2FA는 두 가지 요소가 모두 필요하기 때문에 무권한 사용자가 계정에 접근하기 어렵게 만듭니다. SSO를 사용하고 강제 적용하는 경우 이미 IdP(ID 공급자) 측에서 2FA를 강제 적용하고 있을 수 있습니다.

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

  • 사용자 이름과 비밀번호.
  • 애플리케이션에서 생성된 코드와 같은 두 번째 인증 방법.

2FA는 두 가지 요소가 모두 필요하기 때문에 무권한 사용자가 계정에 접근하기 어렵게 만듭니다.

Note

SSO를 사용하고 강제 적용하는 경우 이미 IdP(ID 공급자) 측에서 2FA를 강제 적용하고 있을 수 있습니다. GitLab에서도 2FA를 강제 적용하는 것은 불필요할 수 있습니다.

모든 사용자에게 2FA 강제 적용#

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

  • 다음 로그인 시 강제 적용.

  • 다음 로그인 시 제안하되, 강제 적용 전에 유예 기간 허용.

    구성된 유예 기간이 경과하면 사용자는 로그인할 수 있지만 /-/profile/two_factor_auth에서 2FA 구성 영역을 벗어날 수 없습니다.

UI 또는 API를 사용하여 모든 사용자에게 2FA를 강제 적용할 수 있습니다.

UI 사용#

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

API 사용#

애플리케이션 설정 API를 사용하여 다음 설정을 수정하세요:

  • require_two_factor_authentication.
  • two_factor_grace_period.

자세한 내용은 API 호출을 통해 액세스할 수 있는 설정 목록을 참조하세요.

관리자에게 2FA 강제 적용#

히스토리
  • GitLab 16.8에서 도입되었습니다.
  • 커스텀 관리자 역할을 가진 일반 사용자에 대한 2FA 강제 적용 지원이 GitLab 18.3에서 도입되었습니다.

관리자는 다음 두 가지 모두에 대해 2FA를 강제 적용할 수 있습니다:

  1. 오른쪽 상단 모서리에서 관리를 선택하세요.
  2. 왼쪽 사이드바에서 설정 > 일반을 선택하세요.
  3. 로그인 제한 섹션을 확장하세요:
    1. 관리자에게 이중 인증 강제 적용을 선택하세요.
    2. 이중 인증 유예 기간에 시간 수를 입력하세요. 다음 로그인 시도 시 2FA를 강제 적용하려면 0을 입력하세요.
  4. 변경 사항 저장을 선택하세요.
Note

외부 제공자를 사용하여 GitLab에 로그인하는 경우, 이 설정은 사용자에게 2FA를 강제 적용하지 않습니다. 2FA는 해당 외부 제공자에서 활성화해야 합니다.

그룹의 모든 사용자에게 2FA 강제 적용#

그룹 또는 서브그룹의 모든 사용자에게 2FA를 강제 적용할 수 있습니다.

2FA 강제 적용은 직접 및 상속된 멤버 그룹 멤버 모두에게 적용됩니다. 서브그룹에서 2FA가 강제 적용되면 상속된 멤버는 인증 요소를 등록해야 합니다. 상속된 멤버는 상위 그룹의 멤버입니다.

Note

이메일 OTP는 2FA 요구 사항을 충족하지 않습니다. 멤버는 앱 기반 TOTP 또는 WebAuthn을 구성해야 합니다.

사전 요구 사항:

  • 그룹에 대한 오너 역할이 있어야 합니다.

그룹에 2FA를 강제 적용하려면:

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

액세스 토큰은 API 기반이기 때문에 인증에 두 번째 요소를 제공할 필요가 없습니다. 2FA가 강제 적용되기 전에 생성된 토큰은 유효한 상태로 유지됩니다.

GitLab 수신 이메일 기능은 2FA 강제 적용을 따르지 않습니다. 사용자는 2FA를 먼저 인증하지 않고도 이슈 생성이나 머지 요청에 댓글 달기와 같은 수신 이메일 기능을 사용할 수 있습니다. 이는 2FA가 강제 적용된 경우에도 적용됩니다.

서브그룹에서의 2FA#

기본적으로 각 서브그룹은 최상위 그룹과 다를 수 있는 2FA 요구 사항을 구성할 수 있습니다.

사용자가 계층 구조의 여러 그룹 멤버인 경우 모든 레벨에서 가장 제한적인 2FA 요구 사항이 적용됩니다.

예를 들어, 최상위 그룹에서 2FA가 강제 적용될 때:

  • 최상위 그룹의 모든 멤버는 2FA를 사용해야 합니다.
  • 하위 서브그룹의 모든 멤버는 2FA를 사용해야 합니다.

최상위 그룹에서 2FA가 강제 적용되지 않을 때:

  • 서브그룹에 더 제한적인 2FA 강제 적용 허용이 활성화된 경우, 각 서브그룹은 독립적으로 2FA 요구 사항을 강제 적용할 수 있습니다. 서브그룹이 2FA 요구 사항을 활성화하면:
    • 최상위 그룹의 모든 멤버는 2FA를 사용해야 합니다.
    • 모든 형제 서브그룹의 멤버는 2FA를 사용해야 합니다.
  • 서브그룹에 더 제한적인 2FA 강제 적용 허용이 비활성화된 경우, 서브그룹은 독립적으로 2FA 요구 사항을 강제 적용할 수 없습니다. 계층 구조의 어떤 멤버에게도 2FA가 요구되지 않습니다.
Note

이 그룹의 모든 사용자는 이중 인증을 설정해야 합니다가 활성화되면 항상 서브그룹에 더 제한적인 2FA 강제 적용 허용보다 우선합니다.

서브그룹이 개별 2FA 요구 사항을 설정하지 못하도록 하려면:

  1. 최상위 그룹의 설정 > 일반으로 이동하세요.
  2. 권한 및 그룹 기능 섹션을 확장하세요.
  3. 서브그룹에 더 제한적인 2FA 강제 적용 허용 체크박스를 선택 취소하세요.

프로젝트에서의 2FA#

2FA를 활성화하거나 강제 적용하는 그룹에 속한 프로젝트가 2FA를 활성화하거나 강제 적용하지 않는 그룹과 공유되면, 비-2FA 그룹의 멤버는 2FA 없이 해당 프로젝트에 접근할 수 있습니다. 예를 들어:

  • 그룹 A는 2FA가 활성화되고 강제 적용됩니다. 그룹 B는 2FA가 활성화되지 않았습니다.
  • 그룹 A에 속한 프로젝트 P가 그룹 B와 공유되면, 그룹 B의 멤버는 2FA 없이 프로젝트 P에 접근할 수 있습니다.

이러한 상황이 발생하지 않도록 하려면 2FA 그룹에 대한 프로젝트 공유를 방지하세요.

Warning

2FA가 활성화된 그룹 또는 서브그룹의 프로젝트에 멤버를 추가하면, 개별적으로 추가된 멤버에게는 2FA가 요구되지 않습니다.

2FA 비활성화#

단일 사용자 또는 모든 사용자에 대해 2FA를 비활성화할 수 있습니다.

이 작업은 영구적이고 되돌릴 수 없습니다. 사용자는 2FA를 다시 사용하려면 재활성화해야 합니다.

Warning

사용자에 대해 2FA를 비활성화해도 모든 사용자에게 2FA 강제 적용 또는 그룹의 모든 사용자에게 2FA 강제 적용 설정은 비활성화되지 않습니다. 사용자가 다음에 GitLab에 로그인할 때 2FA를 다시 설정하도록 요청받지 않으려면 강제 적용된 2FA 설정도 비활성화해야 합니다.

모든 사용자의 경우#

강제 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
    

단일 사용자의 경우#

관리자#

Rails 콘솔을 사용하여 단일 관리자에 대해 2FA를 비활성화할 수 있습니다:

admin = User.find_by_username('')
user_to_disable = User.find_by_username('')

TwoFactor::DestroyService.new(admin, user: user_to_disable).execute

관리자에게 2FA가 비활성화되었다는 알림이 전송됩니다.

비관리자#

Rails 콘솔 또는 API 엔드포인트를 사용하여 비관리자에 대해 2FA를 비활성화할 수 있습니다.

자신의 계정에 대해 2FA를 비활성화할 수 있습니다.

API 엔드포인트를 사용하여 관리자에 대해 2FA를 비활성화할 수 없습니다.

엔터프라이즈 사용자#

최상위 그룹 오너는 엔터프라이즈 사용자에 대해 이중 인증(2FA)을 비활성화할 수 있습니다.

2FA를 비활성화하려면:

  1. 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾으세요.
  2. 왼쪽 사이드바에서 관리 > 멤버를 선택하세요.
  3. 엔터프라이즈2FA 뱃지가 있는 사용자를 찾으세요.
  4. 추가 작업(⋮)을 선택하고 이중 인증 비활성화를 선택하세요.

더 이상 그룹 멤버가 아닌 엔터프라이즈 사용자를 포함하여 엔터프라이즈 사용자에 대해 2FA를 비활성화하기 위해 API를 사용할 수도 있습니다.

SSH를 통한 Git 작업에서의 2FA#

Feature flag

기본적으로 이 기능은 사용할 수 없습니다. 사용 가능하게 하려면 관리자가 two_factor_for_cli라는 기능 플래그를 활성화할 수 있습니다. 이 기능은 프로덕션 사용에 준비되지 않았습니다. 이 기능 플래그는 2FA가 활성화된 경우 Git 작업의 세션 지속 시간에도 영향을 미칩니다.

SSH를 통한 Git 작업에 대해 2FA를 강제 적용할 수 있습니다. 그러나 대신 ED25519_SK 또는 ECDSA_SK SSH 키를 사용해야 합니다. 자세한 내용은 지원되는 SSH 키 유형을 참조하세요. 2FA는 Git 작업에만 강제 적용되며, personal_access_token과 같은 GitLab Shell의 내부 명령은 제외됩니다.

일회용 비밀번호(OTP) 확인을 수행하려면 다음을 실행하세요:

ssh git@<hostname> 2fa_verify

그런 다음 다음 중 하나로 인증하세요:

성공적으로 인증하면 연결된 SSH 키로 15분(기본값) 동안 SSH를 통한 Git 작업을 수행할 수 있습니다.

보안 제한#

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

OTP가 확인되면 구성된 세션 지속 시간 동안 누구든지 해당 개인 SSH 키로 SSH를 통한 Git을 실행할 수 있습니다.