GitLab Pages 액세스 제어
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
프로젝트에서 Pages 액세스 제어를 켤 수 있습니다. 데모는 Pages 액세스 제어를 참고합니다. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다. 왼쪽 사이드바에서 Settings > General을 선택합니다.
히스토리
- Pages의 그룹 SAML SSO 지원은 GitLab 18.2에서
ff_oauth_redirect_to_sso_login이라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. - OAuth 애플리케이션의 그룹 SAML SSO 지원은 GitLab 18.3에서 GitLab.com, GitLab Self-Managed 및 GitLab Dedicated에서 활성화되었습니다.
- GitLab 18.5에서 일반 공개되었습니다. 기능 플래그
ff_oauth_redirect_to_sso_login은 제거되었습니다.
프로젝트에서 Pages 액세스 제어를 켤 수 있습니다. 관리자가 GitLab 인스턴스에서 액세스 제어 기능을 켠 경우에만 가능합니다. 켜면 기본적으로 인증된 프로젝트 구성원 (최소 Guest)만 웹사이트에 액세스할 수 있습니다.
데모는 Pages 액세스 제어를 참고합니다.
-
상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 Settings > General을 선택합니다.
-
Visibility, project features, permissions를 확장합니다.
-
액세스 제어를 켜려면 Pages 토글을 켭니다. 토글이 보이지 않으면 켜져 있지 않은 것입니다. 관리자에게 켜 달라고 요청합니다.
-
Pages 액세스 제어 드롭다운 목록을 사용해 프로젝트 가시성에 따라 GitLab Pages로 호스팅되는 페이지를 볼 수 있는 대상을 설정합니다.
- 프로젝트가 비공개인 경우:
- Only project members: 프로젝트 구성원만 웹사이트를 탐색할 수 있습니다.
- Everyone: GitLab에 로그인한 사용자와 로그아웃한 사용자 모두가 프로젝트 멤버십과 무관하게 웹사이트를 탐색할 수 있습니다.
- 프로젝트가 내부인 경우:
- Only project members: 프로젝트 구성원만 웹사이트를 탐색할 수 있습니다.
- Everyone with access: GitLab에 로그인한 모든 사용자가 프로젝트 멤버십과 무관하게 웹사이트를 탐색할 수 있습니다. 외부 사용자는 프로젝트에 멤버십이 있는 경우에만 웹사이트에 액세스할 수 있습니다.
- Everyone: GitLab에 로그인한 사용자와 로그아웃한 사용자 모두가 프로젝트 멤버십과 무관하게 웹사이트를 탐색할 수 있습니다.
- 프로젝트가 공개인 경우:
- Only project members: 프로젝트 구성원만 웹사이트를 탐색할 수 있습니다.
- Everyone with access: GitLab에 로그인한 사용자와 로그아웃한 사용자 모두가 프로젝트 멤버십과 무관하게 웹사이트를 탐색할 수 있습니다.
- 프로젝트가 비공개인 경우:
-
Save changes를 선택합니다. 변경 사항이 즉시 적용되지 않을 수 있습니다. GitLab Pages는 효율성을 위해 캐싱 메커니즘을 사용합니다. 캐시가 무효화될 때까지 변경 사항이 적용되지 않을 수 있으며, 캐시 무효화는 보통 1분 미만이 걸립니다.
액세스 제어가 켜진 상태에서 다음번에 누군가 웹사이트에 접근하려고 하면, GitLab에 로그인하고 웹사이트에 액세스할 수 있는지 확인하는 페이지가 표시됩니다.
연결된 그룹에 SAML SSO가 구성되어 있고 액세스 제어가 켜져 있으면, 사용자는 웹사이트에 액세스하기 전에 SSO로 인증해야 합니다.
인스턴스 또는 그룹 수준에서 공개 액세스가 꺼지면 프로젝트는 Everyone 가시성 수준 옵션을 사용할 수 없게 되며, 프로젝트의 가시성 설정에 따라 프로젝트 구성원 또는 액세스 권한이 있는 모든 사용자로 제한됩니다.
그룹 Pages에서 공개 액세스 제거#
히스토리
- GitLab 17.9에서 도입되었습니다.
Pages의 공개 가시성 옵션을 제거하도록 그룹 설정을 구성합니다. 켜면 해당 그룹과 하위 그룹의 모든 프로젝트가 "Everyone" 가시성 수준을 사용할 수 없게 되며, 프로젝트의 가시성 설정에 따라 프로젝트 구성원 또는 액세스 권한이 있는 모든 사용자로 제한됩니다.
사전 요구 사항
- Pages에 대한 공개 액세스가 인스턴스 수준에서 꺼져 있지 않아야 합니다.
- 그룹에 대한 Owner 권한이 있어야 합니다.
다음 단계를 수행합니다.
- 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Permissions and group features를 확장합니다.
- Pages public access에서 Remove public access 체크박스를 선택합니다.
- Save changes를 선택합니다.
GitLab Pages는 효율성을 위해 캐시를 사용합니다. 액세스 설정 변경 사항은 캐시가 갱신될 때, 보통 1분 이내에 적용됩니다.
액세스 토큰으로 인증#
히스토리
- GitLab 17.10에서 도입되었습니다.
액세스가 제한된 GitLab Pages 사이트에 인증하려면 Authorization 헤더에 액세스 토큰을 담아 전달할 수 있습니다.
사전 요구 사항:
read_api범위를 가진 다음 액세스 토큰 중 하나가 있어야 합니다.
예를 들어 OAuth 호환 헤더로 액세스 토큰을 사용하려면 다음과 같이 실행합니다.
curl --header "Authorization: Bearer <your_access_token>" <published_pages_url>
유효하지 않거나 권한이 없는 액세스 토큰에는 404를 반환합니다.
Pages 세션 종료#
GitLab Pages 웹사이트에서 로그아웃하려면 GitLab Pages의 애플리케이션 액세스 토큰을 취소합니다.
- 오른쪽 상단 모서리에서 아바타를 선택합니다.
- Edit profile을 선택합니다.
- 왼쪽 사이드바에서 Access > Applications를 선택합니다.
- Authorized applications 섹션에서 GitLab Pages 항목을 찾아 Revoke를 선택합니다.