외부 사용자

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

내부 또는 개인 프로젝트에만 액세스하도록 원하는 경우, 외부 사용자(External Users)를 생성할 수 있습니다. 이 기능은 예를 들어 특정 프로젝트에서 작업하는 계약자가 해당 프로젝트에만 액세스해야 하는 경우에 유용할 수 있습니다.

외부 사용자:

  • 자신의 개인 네임스페이스에서 프로젝트, 그룹 및 스니펫을 생성할 수 없습니다.
  • 명시적으로 액세스 권한이 부여된 최상위 그룹 내에서만 프로젝트(포크 포함), 하위 그룹 및 스니펫을 생성할 수 있습니다.
  • 공개 그룹 및 공개 프로젝트에 액세스할 수 있습니다.
  • 명시적으로 액세스 권한이 부여된 프로젝트 및 그룹에만 액세스할 수 있습니다. 외부 사용자는 부여받지 않은 내부 또는 개인 프로젝트 또는 그룹에 액세스할 수 없습니다.
  • 공개 스니펫에만 액세스할 수 있습니다.

사용자를 프로젝트 또는 그룹 멤버로 추가하여 액세스를 부여할 수 있습니다. 일반 사용자와 마찬가지로 프로젝트 또는 그룹에서 역할을 받아 권한 테이블에 기술된 모든 능력을 갖습니다. 예를 들어, 외부 사용자가 게스트로 추가되고 프로젝트가 내부 또는 개인인 경우 코드에 액세스할 수 없습니다. 외부 사용자가 코드에 액세스하도록 하려면 리포터 수준 이상의 외부 사용자 액세스를 부여해야 합니다. 항상 프로젝트의 가시성권한 설정과 사용자의 권한 수준을 고려해야 합니다.

note
외부 사용자는 여전히 라이선스 좌석에 포함되며, 최종 단계(Guest role)에서 라이선스 좌석을 차지하지 않은 경우를 제외하고는 라이선스 좌석에 포함됩니다.

관리자는 다음 중 하나의 방법으로 사용자를 외부로 표시할 수 있습니다:

  • API를 통해.
  • GitLab UI를 사용:
    1. 왼쪽 사이드바에서 하단에서 관리 영역(Admin Area)을 선택합니다.
    2. 왼쪽 사이드바에서 개요 > 사용자를 선택하여 새 사용자를 생성하거나 기존 사용자를 수정합니다. 여기에서 사용자를 외부로 표시하는 옵션을 찾을 수 있습니다.

또한 사용자는 다음을 사용하여 외부 사용자로 설정할 수 있습니다:

새 사용자를 외부로 설정

기본적으로 새 사용자는 외부 사용자로 설정되지 않습니다. 관리자에 의해 이 동작을 변경할 수 있습니다:

  1. 왼쪽 사이드바에서 하단에서 관리 영역(Admin Area)을 선택합니다.
  2. 설정 > 일반을 선택합니다.
  3. 계정 및 제한 섹션을 확장합니다.

새로운 사용자를 외부 사용자로 생성하는 기본 동작을 변경하는 경우, 일부 정의된 내부 사용자 집합을 정의하여 좁힐 수 있는 옵션이 있습니다. 내부 사용자(Internal users) 필드를 사용하여 기본 내부 사용자로 설정되는 이메일 주소 정규식 패턴을 지정할 수 있습니다. 이메일 주소가 정규식 패턴과 일치하는 새 사용자는 외부 공동 작업자 대신 내부로 설정됩니다.

정규식 패턴 형식은 루비로 되어 있지만 JavaScript로 변환할 수 있어야 하며, 대소문자 무시 플래그가 설정되어 있어야 합니다(/regex pattern/i). 몇 가지 예시는 다음과 같습니다:

  • .internal@domain\.com을 사용하여 .internal@domain.com으로 끝나는 이메일 주소를 내부로 표시합니다.
  • ^(?:(?!\.ext@domain\.com).)*$\r?를 사용하여 .ext@domain.com을 포함하지 않는 이메일 주소를 내부로 표시합니다.
caution
이 정규식은 정규 표현식 거부서비스(ReDoS) 공격을 발생시킬 수 있으므로 주의해야 합니다.