로그인 제한

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

웹 인터페이스 및 HTTP(S)를 통한 Git의 인증 제한을 사용자 정의할 수 있습니다.

설정

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

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

비밀번호 인증 사용 가능

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

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

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

관리자 모드

관리자인 경우, 관리자 액세스 없이 GitLab에서 작업을 수행할 수 있습니다. 관리자 액세스가 없는 별도의 사용자 계정을 만들거나 관리자 모드를 사용할 수 있습니다.

관리자 모드를 사용하면 계정이 기본적으로 관리자 액세스가 없습니다. 계속해서 회원인 그룹 및 프로젝트에 액세스할 수 있습니다. 그러나 관리 작업을 위해서는 인증해야 합니다 (특정 기능을 제외하고).

관리자 모드가 활성화되면 이 상태는 인스턴스의 모든 관리자에게 적용됩니다.

인스턴스에 대한 관리자 모드가 활성화된 경우, 관리자는:

  • 회원인 그룹 및 프로젝트에 액세스할 수 있습니다.
  • 관리자 영역에 액세스할 수 없습니다.

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

관리자는 API, 레일즈 콘솔 또는 UI를 통해 관리자 모드를 활성화할 수 있습니다.

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

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

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

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

더 많은 정보는 API 호출을 통해 액세스할 수 있는 설정 목록을 참조하십시오.

레일즈 콘솔을 사용하여 관리자 모드 활성화

레일즈 콘솔을 열고 다음을 실행합니다:

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

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

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

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

세션에 관리자 모드 켜기

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

  1. 왼쪽 사이드바에서 사용자 아바타를 선택합니다.
  2. 관리자 모드 진입을 선택합니다.
  3. administrator 액세스가 필요한 URL의 부분인 /admin을 포함하고 있는 UI의 어느 부분이든 액세스를 시도합니다.

관리자 모드 상태가 비활성화되거나 꺼진 경우, 관리자는 명시적으로 액세스 권한을 부여받지 않는 한 리소스에 액세스할 수 없습니다. 예를 들어, 관리자는 해당 그룹 또는 프로젝트의 회원이 아닌 경우 404 오류를 받습니다.

관리자에 대해 2단계 인증(2FA)을 활성화해야 합니다. 2FA, OmniAuth 공급자 및 LDAP 인증은 관리자 모드를 지원합니다. 관리자 모드 상태는 현재 사용자 세션에 저장되어 있으며 다음과 같은 경우까지 유지됩니다:

  • 명시적으로 비활성화될 때까지.
  • 6시간 후에 자동으로 비활성화될 때까지.

세션에 대한 관리자 모드 비활성화

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

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

관리자 모드의 제한사항

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

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

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

다시 말해, 그렇지 않으면 관리자 모드로 제한되었음에도 관리자는 추가 인증 단계 없이 Git 클라이언트를 사용할 수 있습니다.

GitLab REST 또는 GraphQL API를 사용하기 위해서, 관리자는 개인 액세스 토큰을 생성하거나 admin_mode 스코프를 가진 OAuth 토큰을 생성해야 합니다.

admin_mode 스코프를 가진 개인 액세스 토큰을 가진 관리자가 관리자 액세스를 잃으면, 여전히 admin_mode 스코프를 가진 토큰을 보유하고 있더라도 관리자로서 API에 액세스할 수 없습니다.

향후 이러한 제한들을 다룰 수 있을 것입니다. 자세한 내용은 다음 에픽을 참조하십시오: GitLab 관리자를 위한 관리자 모드.

또한, GitLab Geo가 활성화되어 있으면, 보조 노드에서 프로젝트 및 디자인의 복제 상태를 볼 수 없습니다. 프로젝트(issue 367926) 및 디자인(issue 355660)이 새로운 Geo 프레임워크로 이동할 때 수정이 제안되었습니다.

관리자 모드 문제 해결

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

  • API:

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

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

이중 인증

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

이중 인증이 필수로 구성된 후 사용자는 구성 가능한 우아한 기간(시간 단위) 동안 강제 구성된 이중 인증을 건너뛸 수 있습니다.

이중 인증 우아한 기간

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

활성화되면 GitLab은 알 수 없는 IP 주소 또는 장치에서 로그인한 사용자에게 알림을 보냅니다. 자세한 정보는 알 수 없는 로그인에 대한 이메일 알림을 참조하세요.

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

로그인 정보

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

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

로그인 제한 섹션에서 로그인 텍스트 필드로 스크롤하세요. Markdown 형식으로 사용자에게 사용자 정의 메시지를 추가할 수 있습니다.

예를 들어, 다음 정보를 주석란에 포함하는 경우:

# 사용자 정의 로그인 텍스트

다음 단계를 따라 이 텍스트 상자에 액세스하세요:

1. 왼쪽 사이드바에서 아래쪽에 있는 **관리 영역**을 선택합니다.
1. **설정 > 일반**을 선택합니다.
1. **로그인 제한** 섹션을 확장합니다.

사용자가 귀하의 GitLab 인스턴스의 로그인 화면으로 이동할 때 사용자는 사용자 정의 로그인 텍스트가 표시됩니다.

문제 해결

레일스 콘솔에서 표준 웹 로그인 양식 다시 활성화

외부 인증 제공자(SSO 또는 LDAP 구성을 통해)가 장애를 겪고 있고 GitLab로의 직접 로그인 액세스가 필요한 경우 로그인 제한으로 표준 사용자 이름 및 암호 기반 로그인 양식을 다시 활성화할 수 있습니다.

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