외부 사용자

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

내부 또는 개인 프로젝트에만 접근할 수 있는 사용자가 필요할 경우, 외부 사용자를 생성할 수 있는 옵션이 있습니다. 이 기능은 예를 들어 계약자가 특정 프로젝트에서 작업하고 있을 때 유용할 수 있습니다.

외부 사용자는:

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

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

참고:
외부 사용자는 Ultimate 계층에서 게스트 역할을 가지고 있지 않는 한 라이센스 자리 수에 포함됩니다.

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

  • API를 통해.
  • GitLab UI 사용:
    1. 왼쪽 사이드바 하단에서 Admin을 선택합니다.
    2. 왼쪽 사이드바에서 Overview > Users를 선택하여 새 사용자를 생성하거나 기존 사용자를 편집합니다.
      거기에서 사용자를 외부로 표시하는 옵션을 찾을 수 있습니다.

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

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

기본적으로 새 사용자는 외부 사용자로 설정되지 않습니다. 이 행동은 관리자가 변경할 수 있습니다:

  1. 왼쪽 사이드바 하단에서 Admin을 선택합니다.
  2. Settings > General을 선택합니다.
  3. Account and limit 섹션을 확장합니다.

새 사용자를 외부로 생성하는 기본 동작을 변경하면, 내부 사용자의 집합을 정의하여 범위를 좁힐 수 있는 옵션이 있습니다. 내부 사용자 필드는 기본 내부 사용자를 식별하기 위한 이메일 주소 정규 표현식 패턴을 지정할 수 있게 해줍니다. 정규 표현식 패턴이 일치하는 이메일 주소를 가진 새 사용자는 기본적으로 외부 협업자가 아닌 내부로 설정됩니다.

정규 표현식 패턴 형식은 루비에서 사용되지만 자바스크립트로 변환 가능해야 하며, 대소문자 무시 플래그가 설정되어야 합니다(/regex pattern/i). 다음은 몇 가지 예시입니다:

  • \.internal@domain\.com$를 사용하여 .internal@domain.com으로 끝나는 이메일 주소를 내부로 마크합니다.
  • ^(?:(?!\.ext@domain\.com).)*$\r?를 사용하여 .ext@domain.com이 포함되지 않은 이메일 주소를 가진 사용자를 내부로 마크합니다.

경고:
이 정규 표현식이 정규 표현식 서비스 거부 공격 (ReDoS)를 초래할 수 있다는 점을 유의하세요.