로그인 제약
Sign-in restrictions를 사용하여 웹 인터페이스 및 Git over HTTP(S)의 인증 제약을 사용자화할 수 있습니다.
설정
로그인 제약 설정에 접근하려면:
- 왼쪽 사이드바에서 하단에 있는 Admin를 선택합니다.
- Settings > General을 선택합니다.
- Sign-in restrictions 섹션을 확장합니다.
비밀번호 인증 활성화
웹 인터페이스 및 Git over HTTP(S)에 대한 비밀번호 인증을 제한할 수 있습니다:
- 웹 인터페이스: 이 기능이 비활성화되면 Standard 로그인 탭이 제거되고 외부 인증 제공자를 사용해야 합니다.
- Git over HTTP(S): 이 기능이 비활성화되면 인증을 위해 개인 접근 토큰 또는 LDAP 비밀번호를 사용해야 합니다.
외부 인증 제공자가 중단된 경우, GitLab Rails 콘솔을 사용하여 표준 웹 로그인 양식 다시 활성화합니다. 이 구성은 관리자 계정의 개인 접근 토큰으로 인증하는 동안 응용 프로그램 설정 REST API를 통해 변경할 수도 있습니다.
SSO 아이덴티티가 있는 사용자를 위한 비밀번호 인증 비활성화
비밀번호 인증이 활성화되어 있어도 SSO 사용자가 비밀번호로 로그인하는 능력을 제한하는 것이 바람직할 수 있습니다. SSO 아이덴티티가 있는 사용자에 대한 비밀번호 인증 비활성화를 선택하여 SSO 사용자가 항상 외부 제공자로 로그인하도록 보장합니다.
이것은 웹 인터페이스와 Git over HTTP(S) 모두에 대한 비밀번호 인증을 제한합니다.
관리자 모드
관리자라면 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를 통해 관리자 모드를 활성화하려면:
- 왼쪽 사이드바에서 하단에 있는 Admin를 선택합니다.
- Settings > General을 선택합니다.
- Sign-in restrictions을 확장합니다.
- Enable Admin Mode를 선택합니다.
- Save changes를 선택합니다.
현재 세션에 대한 관리자 모드 켜기
현재 세션에 대해 관리자 모드를 켜고 잠재적으로 위험한 리소스에 접근하려면:
- 왼쪽 사이드바에서 아바타를 선택하세요.
- 관리자 모드 진입을 선택하세요.
- URL에
/admin
이 포함된 UI의 모든 부분에 접근해 보세요(관리자 접근이 필요합니다).
관리자 모드 상태가 비활성화되거나 꺼져 있는 경우, 관리자는 명시적으로 접근 권한이 부여되지 않는 한 리소스에 접근할 수 없습니다. 예를 들어, 관리자가 개인 그룹이나 프로젝트를 열려고 하면 404
오류가 발생하며, 그 그룹이나 프로젝트의 구성원이 아닌 경우에는 접근할 수 없습니다.
관리자에게는 2단계 인증(2FA)이 활성화되어 있어야 합니다. 2FA, OmniAuth 제공자, 그리고 LDAP 인증은 관리자 모드에서 지원됩니다. 관리자 모드 상태는 현재 사용자 세션에 저장되며 다음 중 하나가 발생할 때까지 활성 상태로 유지됩니다:
- 명시적으로 비활성화됩니다.
- 6시간 후 자동으로 비활성화됩니다.
세션에 관리자 모드가 활성화되어 있는지 확인하기
- GitLab 16.10에서 도입됨 show_admin_mode_within_active_sessions라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
- GitLab 16.10에서 GitLab.com에서 활성화됨.
- GitLab 17.0에서 일반적으로 사용 가능. 기능 플래그 show_admin_mode_within_active_sessions가 제거되었습니다.
활성 세션 목록으로 이동하세요:
- 왼쪽 사이드바에서 아바타를 선택하세요.
- 프로필 편집을 선택하세요.
- 왼쪽 사이드바에서 활성 세션을 선택하세요.
관리자 모드가 켜진 세션은 , date of session
에 관리자 모드로 로그인이라는 텍스트를 표시합니다.
현재 세션에서 관리자 모드 끄기
현재 세션에서 관리자 모드를 끄려면:
- 왼쪽 사이드바에서 아바타를 선택하세요.
- 관리자 모드 종료를 선택하세요.
관리자 모드의 제한 사항
관리자 모드는 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)