{{< details >}}

  • Tier: 基础版,专业版,旗舰版
  • Offering: 私有化部署

{{< /details >}}

外部用户

如果希望用户仅访问某些内部或私有项目,可以选择创建外部用户。当例如某个承包商正在进行某个项目工作并且只应访问该项目时,此功能可能会很有用。

外部用户:

  1. 无法在其个人命名空间中创建项目、群组和片段。
  2. 只能在显式授予访问权限的顶级群组内创建项目(包括分叉)、子群组和片段。
  3. 可以访问公共群组和公共项目。
  4. 只能访问显式授予访问权限的项目和群组。外部用户无法访问未授予访问权限的内部或私有项目或群组。
  5. 只能访问公共片段。

可以通过将用户添加为项目或群组的成员来授予访问权限。与普通用户一样,他们会为项目或群组分配一个角色,并拥有权限表中提到的所有能力。例如,如果将外部用户添加为访客,而您的项目是内部或私有的,他们无法访问代码;如果希望他们能够访问代码,则需要在报告者级别或更高层次授予外部用户访问权限。您应始终考虑项目的可见性权限设置,以及用户的权限级别。

{{< alert type=”note” >}}

除非用户在旗舰版中具有访客角色,否则外部用户仍然算作许可证席位。

{{< /alert >}}

管理员可以通过以下方法之一将用户标记为外部:

  1. 通过 API
  2. 使用极狐GitLab UI:
    1. 在左侧边栏底部,选择 管理员
    2. 在左侧边栏中,选择 概览 > 用户 以创建新用户或编辑现有用户。在那里,您可以找到标记用户为外部的选项。

此外,可以使用以下方法将用户设置为外部用户:

  1. SAML 群组
  2. LDAP 群组
  3. 外部提供者列表

将新用户设置为外部用户

默认情况下,新用户不会设置为外部用户。管理员可以更改此行为:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 账户和限制 部分。

如果您更改将新用户创建为外部用户的默认行为,则可以通过定义一组内部用户来缩小范围。内部用户字段允许指定电子邮件地址的正则表达式模式,以识别默认的内部用户。新用户的电子邮件地址与正则表达式模式匹配的,默认设置为内部用户,而不是外部合作者。

正则表达式模式格式为 Ruby,但需要可转换为 JavaScript,并且设置了忽略大小写标志 (/regex pattern/i)。以下是一些示例:

  1. 使用 \.internal@domain\.com$ 将以 .internal@domain.com 结尾的电子邮件地址标记为内部。
  2. 使用 ^(?:(?!\.ext@domain\.com).)*$\r? 将不包含 .ext@domain.com 的电子邮件地址标记为内部。

{{< alert type=”warning” >}}

请注意,此正则表达式可能导致正则表达式拒绝服务 (ReDoS) 攻击。

{{< /alert >}}