Help us learn about your current experience with the documentation. Take the survey.

外部用户

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab Self-Managed, GitLab Dedicated

外部用户对实例中的内部或私有群组和项目拥有有限的访问权限。与普通用户不同,外部用户必须被明确添加到群组或项目中。但是,和普通用户一样,外部用户会被分配一个成员角色,并获得所有相关的权限

外部用户:

  • 可以访问公开的群组、项目和代码片段。
  • 可以访问他们作为成员的内部或私有群组和项目。
  • 可以在他们作为成员的任何顶级群组中创建子群组、项目和代码片段。
  • 不能在其个人命名空间中创建群组、项目或代码片段。

通常,当组织外部的用户需要访问某个特定项目时,我们会为其创建外部用户账户。在为外部用户分配角色时,您应该注意与该角色相关的项目可见性权限。例如,如果为外部用户分配了私有项目的 Guest(访客)角色,他们将无法访问代码。

外部用户会被计为可计费用户,并占用一个许可证席位。

创建外部用户

要创建一个新的外部用户:

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 概览 > 用户
  3. 选择 新建用户
  4. 账户 部分,输入所需的账户信息。
  5. 可选。在 访问权限 部分,配置任何项目限制或用户类型设置。
  6. 选中 外部 复选框。
  7. 选择 创建用户

您也可以通过以下方式创建外部用户:

默认将新用户设为外部用户

您可以配置您的实例,默认将所有新用户设为外部用户。您可以稍后修改这些用户账户,以移除外部用户标记。

配置此功能时,您还可以定义一个用于识别电子邮件地址的正则表达式。电子邮件地址匹配的新用户将被排除,不会被标记为外部用户。该正则表达式必须:

  • 使用 Ruby 格式。
  • 可转换为 JavaScript。
  • 设置忽略大小写标志 (/regex pattern/i)。

例如:

  • \.int@example\.com$: 匹配以 .int@domain.com 结尾的电子邮件地址。
  • ^(?:(?!\.ext@example\.com).)*$\r?: 匹配不包含 .ext@example.com 的电子邮件地址。

添加正则表达式可能会增加正则表达式拒绝服务 (ReDoS) 攻击的风险。

前提条件:

  • 您必须是 GitLab Self-Managed 实例的管理员。

要默认将新用户设为外部用户:

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 设置 > 通用
  3. 展开 账户和限制 部分。
  4. 选中 默认将新用户设为外部用户 复选框。
  5. 可选。在 电子邮件排除模式 字段中,输入一个正则表达式。
  6. 选择 保存更改