로그인 제한
웹 인터페이스 및 HTTP(S)를 통한 Git에서 사용자 지정 인증 제한을 설정하려면 로그인 제한을 사용할 수 있습니다.
설정
로그인 제한 설정을 액세스하려면:
- 좌측 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
- 로그인 제한 섹션을 확장합니다.
비밀번호 인증 사용 가능
웹 인터페이스 및 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를 통해 관리자 모드를 활성화하려면:
- 좌측 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
- 로그인 제한을 확장합니다.
- 관리자 모드 활성화를 선택합니다.
- 변경 사항 저장을 선택합니다.
세션에서 관리자 모드 활성화
현재 세션에서 관리자 모드를 활성화하고 잠재적으로 위험한 리소스에 액세스하려면:
- 좌측 사이드바에서 아바타를 선택합니다.
- 관리자 모드 진입을 선택합니다.
- 관리자 액세스가 필요한 URL 부분(
/admin
이 포함)으로 이동하여 UI의 어느 부분이든 액세스를 시도합니다.
관리자 모드 상태가 비활성화되거나 해제된 경우 관리자는 명시적으로 액세스 권한이 부여되지 않는 한 리소스에 액세스할 수 없습니다. 예를 들어, 그룹 또는 프로젝트를 시도해보면 404
오류가 발생합니다.
관리자는 2FA를 활성화해야 합니다. 2FA, OmniAuth 공급자 및 LDAP 인증이 Admin 모드에서 지원됩니다. 관리자 모드 상태는 현재 사용자 세션에 저장되어 6시간 후에 자동으로 해제되거나:
- 명시적으로 비활성화됩니다.
- 자동으로 비활성화되거나.
세션에서 관리자 모드가 활성화되었는지 확인
-
GitLab 16.10에 이름이
show_admin_mode_within_active_sessions
인 플래그로 도입됨. 기본적으로 비활성화됨.(소개됨) - GitLab 16.10에서 GitLab.com에 활성화됨.
-
GitLab 17.0에서 GA로 출시됨. 피처 플래그
show_admin_mode_within_active_sessions
가 제거됨.
활성 세션 디렉터리으로 이동합니다:
- 좌측 사이드바에서 아바타를 선택합니다.
- 프로필 편집을 선택합니다.
- 좌측 사이드바에서 활성 세션을 선택합니다.
세션이 관리자 모드로 설정된 경우 세션의 날짜
에 관리자 모드로 로그인함이라는 텍스트가 표시됩니다.
세션에서 관리자 모드를 비활성화
현재 세션에서 관리자 모드를 비활성화하려면:
- 좌측 사이드바에서 아바타를 선택합니다.
- 관리자 모드 떠나기를 선택합니다.
관리자 모드의 제한사항
관리자 모드는 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"
-
::Gitlab::CurrentSettings.update!(admin_mode: false)
이중 인증
이 기능이 활성화되면 모든 사용자는 이중 인증을 사용해야 합니다.
이중 인증이 강제 구성되면 사용자는 구성 가능한 유예 기간 동안 이중 인증을 건너뛸 수 있습니다.
알 수 없는 로그인에 대한 이메일 알림
활성화되면 GitLab은 알 수 없는 IP 주소나 디바이스에서의 로그인에 대해 사용자에게 알립니다. 자세한 내용은 알 수 없는 로그인에 대한 이메일 알림을 참조하세요.
로그인 정보
- 로그인 텍스트 설정은 GitLab 17.0에서 폐기되었습니다.
값이 비어 있지 않은 경우, 로그인하지 않은 모든 사용자는 구성된 홈페이지 URL이 표시하는 페이지로 리디렉션됩니다.
값이 비어 있지 않은 경우, 모든 사용자는 로그아웃 후 구성된 로그아웃 페이지 URL이 표시하는 페이지로 리디렉션됩니다.
로그인 페이지에 도움말 메시지를 추가하려면, 로그인 및 등록 페이지를 사용자 정의하세요.
문제 해결
Rails 콘솔에서 표준 웹 로그인 양식 재사용 설정
표준 사용자 이름 및 암호 기반 로그인 양식이 로그인 제한으로 비활성화된 경우에 다시 활성화합니다.
구성된 외부 인증 공급자(SSO 또는 LDAP 구성을 통해)가 장애를 겪고 GitLab에 직접 로그인 액세스가 필요한 경우 Rails 콘솔을 통해 이 방법을 사용할 수 있습니다.
Gitlab::CurrentSettings.update!(password_authentication_enabled_for_web: true)