로그인 제한

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

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

설정

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

  1. 왼쪽 사이드바에서 아래쪽으로 스크롤하여 관리자를 선택합니다.
  2. 설정 > 일반을 선택합니다.
  3. 로그인 제한 섹션을 확장합니다.

암호 인증 활성화

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

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

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

SSO 식별자가 있는 사용자의 비밀번호 인증 비활성화

암호 인증이 활성화되어 있더라도 SSO 사용자가 비밀번호로 로그인하는 것을 제한할 수 있습니다. SSO 사용자는 항상 외부 공급자로 로그인하도록 [SSO 식별자가 있는 사용자의 비밀번호 인증 비활성화]를 선택합니다.

이는 웹 인터페이스 및 HTTP(S)를 통한 Git의 암호 인증을 모두 제한합니다.

관리자 모드

관리자이면서 관리자 액세스 없이 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 오류가 발생합니다.

관리자에게 2단계 인증(2FA)이 필요합니다. 2FA, OmniAuth 공급자 및 LDAP 인증이 관리자 모드에서 지원됩니다. 관리자 모드 상태는 현재 사용자 세션에 저장되며 다음 중 하나가 될 때까지 계속해서 활성 상태를 유지합니다:

  • 명시적으로 비활성화될 때까지
  • 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가 활성화되었을 때, 보조 노드에서는 프로젝트 및 디자인의 복제 상태를 보여줄 수 없습니다. 프로젝트(issue 367926) 및 디자인(issue 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)
    

이중 인증

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

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

이중 인증 유예 기간이 48시간으로 설정됨.

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

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

알 수 없는 로그인에 대한 이메일 알림이 활성화됨.

로그인 정보

로그인되지 않은 모든 사용자는, 설정된 홈페이지 URL에 해당하는 페이지로 리디렉션됩니다(값이 비어 있지 않은 경우).

로그아웃 후, 모든 사용자는, 설정된 로그아웃 페이지 URL에 해당하는 페이지로 리디렉션됩니다(값이 비어 있지 않은 경우).

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

문제 해결

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

구성된 외부 인증 공급자(SSO 또는 LDAP 구성을 통한)가 장애를 겪고 GitLab으로의 직접 로그인 접근이 필요할 때, 만약 기본적인 사용자 이름과 암호 기반의 로그인 양식이 로그인 제한으로 비활성화되었다면 다음 방법을 사용할 수 있습니다.

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