{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
{{< /details >}}
外部用户
如果希望用户仅访问某些内部或私有项目,可以选择创建外部用户。当例如某个承包商正在进行某个项目工作并且只应访问该项目时,此功能可能会很有用。
外部用户:
- 无法在其个人命名空间中创建项目、群组和片段。
- 只能在显式授予访问权限的顶级群组内创建项目(包括分叉)、子群组和片段。
- 可以访问公共群组和公共项目。
- 只能访问显式授予访问权限的项目和群组。外部用户无法访问未授予访问权限的内部或私有项目或群组。
- 只能访问公共片段。
可以通过将用户添加为项目或群组的成员来授予访问权限。与普通用户一样,他们会为项目或群组分配一个角色,并拥有权限表中提到的所有能力。例如,如果将外部用户添加为访客,而您的项目是内部或私有的,他们无法访问代码;如果希望他们能够访问代码,则需要在报告者级别或更高层次授予外部用户访问权限。您应始终考虑项目的可见性和权限设置,以及用户的权限级别。
{{< alert type=”note” >}}
除非用户在旗舰版中具有访客角色,否则外部用户仍然算作许可证席位。
{{< /alert >}}
管理员可以通过以下方法之一将用户标记为外部:
- 通过 API。
- 使用极狐GitLab UI:
- 在左侧边栏底部,选择 管理员。
- 在左侧边栏中,选择 概览 > 用户 以创建新用户或编辑现有用户。在那里,您可以找到标记用户为外部的选项。
此外,可以使用以下方法将用户设置为外部用户:
将新用户设置为外部用户
默认情况下,新用户不会设置为外部用户。管理员可以更改此行为:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 账户和限制 部分。
如果您更改将新用户创建为外部用户的默认行为,则可以通过定义一组内部用户来缩小范围。内部用户字段允许指定电子邮件地址的正则表达式模式,以识别默认的内部用户。新用户的电子邮件地址与正则表达式模式匹配的,默认设置为内部用户,而不是外部合作者。
正则表达式模式格式为 Ruby,但需要可转换为 JavaScript,并且设置了忽略大小写标志 (/regex pattern/i
)。以下是一些示例:
- 使用
\.internal@domain\.com$
将以.internal@domain.com
结尾的电子邮件地址标记为内部。 - 使用
^(?:(?!\.ext@domain\.com).)*$\r?
将不包含.ext@domain.com
的电子邮件地址标记为内部。
{{< alert type=”warning” >}}
请注意,此正则表达式可能导致正则表达式拒绝服务 (ReDoS) 攻击。
{{< /alert >}}