로그인 제한

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

웹 인터페이스 및 HTTP(S)를 통한 Git에서 사용자 지정 인증 제한을 설정하려면 로그인 제한을 사용할 수 있습니다.

설정

로그인 제한 설정을 액세스하려면:

  1. 좌측 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
  2. 설정 > 일반을 선택합니다.
  3. 로그인 제한 섹션을 확장합니다.

비밀번호 인증 사용 가능

웹 인터페이스 및 HTTP(S)를 통한 Git의 비밀번호 인증을 제한할 수 있습니다:

  • 웹 인터페이스: 이 기능이 비활성화되면 표준 로그인 탭이 제거되고 외부 인증 공급자를 사용해야 합니다.
  • HTTP(S)를 통한 Git: 해당 기능이 비활성화되면 개인 액세스 토큰 또는 LDAP 비밀번호를 사용하여 인증해야 합니다.

외부 인증 공급자 장애 발생 시 GitLab Rails 콘솔을 사용하여 표준 웹 로그인 양식을 다시 활성화할 수 있습니다. 또한 이 구성은 관리자 계정의 개인 액세스 토큰으로 인증하는 동안 응용프로그램 설정 REST API에서도 변경할 수 있습니다.

관리자 모드

관리자이고 관리자 액세스 없이 GitLab에서 작업하고 싶은 경우 별도의 관리자 액세스를 갖지 않는 사용자 계정을 만들거나 관리자 모드를 사용할 수 있습니다.

관리자 모드에서는 기본적으로 계정에 관리자 액세스가 없습니다. 그룹 및 프로젝트에 여전히 액세스할 수 있습니다. 그러나 관리 작업을 수행하려면 특정 기능을 제외하고 인증해야 합니다.

관리자 모드가 활성화된 경우 모든 관리자에게 적용됩니다.

관리자 모드를 인스턴스에 대해 활성화하면 관리자는 다음을 할 수 있습니다:

  • 멤버로 있는 그룹 및 프로젝트에 액세스할 수 있습니다.
  • 관리 영역에 액세스할 수 없습니다.

인스턴스에 대해 관리자 모드 활성화

관리자는 API, Rails 콘솔 또는 UI를 사용하여 Admin 모드를 활성화할 수 있습니다.

API를 사용하여 관리자 모드 활성화

인스턴스 엔드포인트로 다음 요청을 수행합니다:

curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab.example.com>/api/v4/application/settings?admin_mode=true"

<gitlab.example.com>을(를) 인스턴스 URL로 대체합니다.

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

Rails 콘솔을 사용하여 관리자 모드 활성화

Rails 콘솔을 열고 다음을 실행합니다:

::Gitlab::CurrentSettings.update!(admin_mode: true)

UI를 사용하여 관리자 모드 활성화

UI를 통해 관리자 모드를 활성화하려면:

  1. 좌측 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
  2. 설정 > 일반을 선택합니다.
  3. 로그인 제한을 확장합니다.
  4. 관리자 모드 활성화를 선택합니다.
  5. 변경 사항 저장을 선택합니다.

세션에서 관리자 모드 활성화

현재 세션에서 관리자 모드를 활성화하고 잠재적으로 위험한 리소스에 액세스하려면:

  1. 좌측 사이드바에서 아바타를 선택합니다.
  2. 관리자 모드 진입을 선택합니다.
  3. 관리자 액세스가 필요한 URL 부분(/admin이 포함)으로 이동하여 UI의 어느 부분이든 액세스를 시도합니다.

관리자 모드 상태가 비활성화되거나 해제된 경우 관리자는 명시적으로 액세스 권한이 부여되지 않는 한 리소스에 액세스할 수 없습니다. 예를 들어, 그룹 또는 프로젝트를 시도해보면 404 오류가 발생합니다.

관리자는 2FA를 활성화해야 합니다. 2FA, OmniAuth 공급자 및 LDAP 인증이 Admin 모드에서 지원됩니다. 관리자 모드 상태는 현재 사용자 세션에 저장되어 6시간 후에 자동으로 해제되거나:

  • 명시적으로 비활성화됩니다.
  • 자동으로 비활성화되거나.

세션에서 관리자 모드가 활성화되었는지 확인

활성 세션 디렉터리으로 이동합니다:

  1. 좌측 사이드바에서 아바타를 선택합니다.
  2. 프로필 편집을 선택합니다.
  3. 좌측 사이드바에서 활성 세션을 선택합니다.

세션이 관리자 모드로 설정된 경우 세션의 날짜에 관리자 모드로 로그인함이라는 텍스트가 표시됩니다.

세션에서 관리자 모드를 비활성화

현재 세션에서 관리자 모드를 비활성화하려면:

  1. 좌측 사이드바에서 아바타를 선택합니다.
  2. 관리자 모드 떠나기를 선택합니다.

관리자 모드의 제한사항

관리자 모드는 6시간 후에 타임아웃됩니다. 이 타임아웃 제한을 변경할 수 없습니다.

다음 액세스 방법은 관리자 모드로 보호되지 않습니다:

  • Git 클라이언트 액세스 (공개 키를 사용한 SSH 또는 개인 액세스 토큰을 사용한 HTTPS).

즉, 관리자 모드에 제한을 받는 관리자는 추가 인증 단계 없이 Git 클라이언트를 여전히 사용할 수 있습니다.

GitLab REST 또는 GraphQL API를 사용하려면, 관리자가 admin_mode 스코프를 갖는 개인 액세스 토큰 또는 OAuth 토큰을 생성해야 합니다.

admin_mode 스코프를 갖는 개인 액세스 토큰을 갖고 있는 관리자가 관리자 액세스를 잃으면, 해당 사용자는 admin_mode 스코프를 갖는 토큰을 여전히 갖고 있음에도 관리자로서 API에 액세스할 수 없습니다.

이러한 제한에 대한 대응책은 나중에 다룰 수 있습니다. 자세한 내용은 다음 에픽을 참조하세요: GitLab 관리자를 위한 관리자 모드.

또한, GitLab Geo가 활성화된 경우, 보조 노드에서는 프로젝트 및 디자인의 복제 상태를 볼 수 없습니다. 프로젝트(이슈 367926) 및 디자인(이슈 355660)이 새로운 Geo 프레임워크로 이동할 때 문제점이 해결될 것으로 제안되었습니다.

관리자 모드 문제 해결

필요한 경우 관리자는 다음 두 가지 방법 중 하나를 사용하여 관리자 모드를 비활성화할 수 있습니다:

  • API:

    curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab-url>/api/v4/application/settings?admin_mode=false"
    
  • Rails 콘솔:

    ::Gitlab::CurrentSettings.update!(admin_mode: false)
    

이중 인증

이 기능이 활성화되면 모든 사용자는 이중 인증을 사용해야 합니다.

이중 인증이 강제 구성되면 사용자는 구성 가능한 유예 기간 동안 이중 인증을 건너뛸 수 있습니다.

이중 인증 유예 기간

알 수 없는 로그인에 대한 이메일 알림

활성화되면 GitLab은 알 수 없는 IP 주소나 디바이스에서의 로그인에 대해 사용자에게 알립니다. 자세한 내용은 알 수 없는 로그인에 대한 이메일 알림을 참조하세요.

알 수 없는 로그인에 대한 이메일 알림

로그인 정보

값이 비어 있지 않은 경우, 로그인하지 않은 모든 사용자는 구성된 홈페이지 URL이 표시하는 페이지로 리디렉션됩니다.

값이 비어 있지 않은 경우, 모든 사용자는 로그아웃 후 구성된 로그아웃 페이지 URL이 표시하는 페이지로 리디렉션됩니다.

로그인 페이지에 도움말 메시지를 추가하려면, 로그인 및 등록 페이지를 사용자 정의하세요.

문제 해결

Rails 콘솔에서 표준 웹 로그인 양식 재사용 설정

표준 사용자 이름 및 암호 기반 로그인 양식이 로그인 제한으로 비활성화된 경우에 다시 활성화합니다.

구성된 외부 인증 공급자(SSO 또는 LDAP 구성을 통해)가 장애를 겪고 GitLab에 직접 로그인 액세스가 필요한 경우 Rails 콘솔을 통해 이 방법을 사용할 수 있습니다.

Gitlab::CurrentSettings.update!(password_authentication_enabled_for_web: true)