로그인 제한
웹 인터페이스 및 HTTP(S)를 통한 Git의 인증 제한을 사용자 정의할 수 있습니다.
설정
로그인 제한 설정에 액세스하려면:
- 왼쪽 사이드바에서 맨 아래에서 관리자 영역(Admin Area)을 선택합니다.
- 설정 > 일반을 선택합니다.
- 로그인 제한 섹션을 확장합니다.
비밀번호 인증 사용 가능
웹 인터페이스 및 HTTP(S)를 통한 Git의 비밀번호 인증을 제한할 수 있습니다:
- 웹 인터페이스: 이 기능이 비활성화되면 표준(Standard) 로그인 탭이 제거되고 외부 인증 공급자를 사용해야 합니다.
- HTTP(S)를 통한 Git: 이 기능이 비활성화되면 개인 액세스 토큰 또는 LDAP 비밀번호를 사용하여 인증해야 합니다.
외부 인증 공급자 장애 발생 시 GitLab 레일즈 콘솔을 사용하여 레일즈 콘솔에서 표준 웹 로그인 양식 다시 활성화할 수 있습니다. 또한 이 구성은 관리자 계정의 개인 액세스 토큰으로 인증하는 동안 응용프로그램 설정 REST API를 통해 변경할 수도 있습니다.
관리자 모드
- GitLab 13.10에서 소개됨.
관리자인 경우, 관리자 액세스 없이 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를 통해 관리자 모드를 활성화하려면:
- 왼쪽 사이드바에서 맨 아래에서 관리자 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
- 로그인 제한을 확장합니다.
- 관리자 모드 활성화를 선택합니다.
- 변경사항 저장을 선택합니다.
세션에 관리자 모드 켜기
현재 세션에 관리자 모드를 켜고 잠재적으로 위험한 리소스에 액세스하려면:
- 왼쪽 사이드바에서 사용자 아바타를 선택합니다.
- 관리자 모드 진입을 선택합니다.
- administrator 액세스가 필요한 URL의 부분인
/admin
을 포함하고 있는 UI의 어느 부분이든 액세스를 시도합니다.
관리자 모드 상태가 비활성화되거나 꺼진 경우, 관리자는 명시적으로 액세스 권한을 부여받지 않는 한
리소스에 액세스할 수 없습니다. 예를 들어, 관리자는 해당 그룹 또는 프로젝트의 회원이 아닌 경우
404
오류를 받습니다.
관리자에 대해 2단계 인증(2FA)을 활성화해야 합니다. 2FA, OmniAuth 공급자 및 LDAP 인증은 관리자 모드를 지원합니다. 관리자 모드 상태는 현재 사용자 세션에 저장되어 있으며 다음과 같은 경우까지 유지됩니다:
- 명시적으로 비활성화될 때까지.
- 6시간 후에 자동으로 비활성화될 때까지.
세션에 대한 관리자 모드 비활성화
현재 세션에 대한 관리자 모드를 비활성화하려면:
- 왼쪽 사이드바에서 사용자 아바타를 선택합니다.
- 관리자 모드 떠나기을 선택합니다.
관리자 모드의 제한사항
관리자 모드는 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"
-
::Gitlab::CurrentSettings.update!(admin_mode: false)
이중 인증
이 기능을 활성화하면 모든 사용자가 이중 인증을 사용해야 합니다.
이중 인증이 필수로 구성된 후 사용자는 구성 가능한 우아한 기간(시간 단위) 동안 강제 구성된 이중 인증을 건너뛸 수 있습니다.
알 수 없는 로그인에 대한 이메일 알림
- 소개됨 in GitLab 13.2.
활성화되면 GitLab은 알 수 없는 IP 주소 또는 장치에서 로그인한 사용자에게 알림을 보냅니다. 자세한 정보는 알 수 없는 로그인에 대한 이메일 알림을 참조하세요.
로그인 정보
비로그인 상태인 모든 사용자는 구성된 홈 페이지 URL로 리디렉션됩니다(값이 비어 있지 않은 경우).
모든 사용자는 로그아웃 후 구성된 로그아웃 페이지 URL로 리디렉션됩니다(값이 비어 있지 않은 경우).
로그인 제한 섹션에서 로그인 텍스트 필드로 스크롤하세요. Markdown 형식으로 사용자에게 사용자 정의 메시지를 추가할 수 있습니다.
예를 들어, 다음 정보를 주석란에 포함하는 경우:
# 사용자 정의 로그인 텍스트
다음 단계를 따라 이 텍스트 상자에 액세스하세요:
1. 왼쪽 사이드바에서 아래쪽에 있는 **관리 영역**을 선택합니다.
1. **설정 > 일반**을 선택합니다.
1. **로그인 제한** 섹션을 확장합니다.
사용자가 귀하의 GitLab 인스턴스의 로그인 화면으로 이동할 때 사용자는 사용자 정의 로그인 텍스트가 표시됩니다.
문제 해결
레일스 콘솔에서 표준 웹 로그인 양식 다시 활성화
외부 인증 제공자(SSO 또는 LDAP 구성을 통해)가 장애를 겪고 있고 GitLab로의 직접 로그인 액세스가 필요한 경우 로그인 제한으로 표준 사용자 이름 및 암호 기반 로그인 양식을 다시 활성화할 수 있습니다.
Gitlab::CurrentSettings.update!(password_authentication_enabled_for_web: true)