로그인 제한

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

웹 인터페이스 및 Git over HTTP(S)의 인증 제한을 사용자 정의하는 데 로그인 제한을 사용할 수 있습니다.

설정

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

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

패스워드 인증 활성화

웹 인터페이스 및 Git over HTTP(S)의 패스워드 인증을 제한할 수 있습니다:

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

외부 인증 제공자 장애 발생 시 GitLab Rails 콘솔을 사용하여 표준 웹 로그인 폼을 다시 활성화할 수 있습니다. 또한, 관리자 계정의 개인 액세스 토큰으로 인증하면 Application settings REST API를 통해 이 구성을 변경할 수 있습니다.

관리자 모드

  • 소개: GitLab 13.10에서 도입되었습니다.

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

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

관리자 모드가 활성화되면, 해당 인스턴스의 모든 관리자에게 적용됩니다.

인스턴스용 관리자 모드가 활성화된 경우, 관리자는 다음 권한을 갖습니다:

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

인스턴스용 관리자 모드 활성화

관리자는 API, Rails 콘솔 또는 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 호출을 통해 액세스할 수 있는 설정 디렉터리을 참조하세요.

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 인증은 관리자 모드에서 지원됩니다. 관리자 모드 상태는 현재 사용자 세션에 저장되며 명시적으로 비활성화되거나 6시간 후에 자동으로 비활성화됩니다.

세션용 관리자 모드 비활성화

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

  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이 구성되어 있으면 모든 사용자는 로그아웃 후 해당 페이지로 리디렉션됩니다.

로그인 제한 섹션에서 로그인 텍스트 필드로 스크롤하세요. 여기에 사용자들을 위한 커스텀 메시지를 Markdown 형식으로 추가할 수 있습니다.

예를 들어, 다음 정보를 주석 텍스트 상자에 포함시킨다면:

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

이 텍스트 상자에 액세스하려면:

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

사용자들은 GitLab 인스턴스의 로그인 화면으로 이동할 때 사용자 지정 로그인 텍스트를 볼 수 있습니다.

문제 해결

Rails 콘솔에서 표준 웹 로그인 양식 재활성화

로그인 제한으로 표준 사용자 이름 및 암호 기반 로그인 양식이 비활성화된 경우, 외부 인증 공급자(단일 로그인 또는 LDAP 구성을 통한)에 문제가 발생하고 GitLab에 대한 직접 로그인 액세스가 필요한 경우 Rails 콘솔을 통해 이 방법을 사용할 수 있습니다.

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