외부 사용자

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

내부 또는 비공개 프로젝트에만 액세스할 수 있는 사용자를 원하는 경우 외부 사용자를 만들 수 있는 옵션이 있습니다. 예를 들어, 분주 계약자가 특정 프로젝트에서 작업하고 해당 프로젝트에만 액세스해야 하는 경우에 유용한 기능일 수 있습니다.

외부 사용자는 다음을 할 수 없습니다:

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

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

note
외부 사용자는 권한이 있는 이상 게스트 역할을 가지고 있다면 라이선스 좌석에 카운트됩니다.

관리자는 사용자를 외부 사용자로 지정할 수 있습니다:

  • API를 통해.
  • GitLab UI를 사용하여:
    1. 왼쪽 사이드바에서 관리 영역을 선택합니다.
    2. 왼쪽 사이드바에서 개요 > 사용자를 선택하여 새 사용자를 만들거나 기존 사용자를 편집합니다. 거기서 사용자를 외부 사용자로 지정할 수 있는 옵션을 찾을 수 있습니다.

또한 사용자를 외부 사용자로 설정할 수 있습니다:

새 사용자를 외부 사용자로 설정

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

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

새 사용자를 외부로 생성하는 기본 동작을 변경하면 기본 내부 사용자 집합을 정의하여 좁힐 수 있습니다. 내부 사용자 필드를 사용하여 이메일 주소 정규식 패턴을 지정하여 새 사용자가 외부 협업자가 아닌 기본 내부 사용자로 설정되도록 할 수 있습니다. JavaScript로 변환할 수 있는 Ruby 형식의 정규식 패턴을 사용하며, 대소문자를 무시하는 플래그가 설정되어야 합니다 (/정규식 패턴/i). 몇 가지 예시는 다음과 같습니다:

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