{{< details >}}

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

{{< /details >}}

您可以使用 登录限制 来自定义 Web 界面以及 Git over HTTP(S) 的身份验证限制。

设置

要访问登录限制设置:

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

密码身份验证已启用

您可以限制 Web 界面和 Git over HTTP(S) 的密码身份验证:

  • Web 界面:当此功能被禁用时,标准 登录选项卡会被移除,必须使用 外部身份验证提供商
  • Git over HTTP(S):当此功能被禁用时,必须使用 个人访问令牌 或 LDAP 密码进行身份验证。

如果外部身份验证提供商出现故障,可以使用 极狐GitLab Rails 控制台重新启用标准 Web 登录表单。此配置也可以通过 应用程序设置 REST API 进行更改,同时使用管理员账户的个人访问令牌进行身份验证。

禁用具有 SSO 身份的用户的密码身份验证

即使启用了密码身份验证,也可能希望限制 SSO 用户使用密码登录的能力。选择 禁用具有 SSO 身份的用户的密码身份验证 以确保 SSO 用户始终使用其外部提供商登录。

这会限制 Web 界面和 Git over HTTP(S) 的密码身份验证。

管理员模式

如果您是管理员,您可能希望在极狐GitLab中无需管理员访问权限进行工作。您可以创建一个没有管理员访问权限的单独用户账户,或者使用管理员模式。

在管理员模式下,您的账户默认没有管理员访问权限。您可以继续访问您是成员的群组和项目。然而,对于管理任务,您必须进行身份验证(某些功能除外)。

启用管理员模式时,它适用于实例中的所有管理员。

当实例启用管理员模式时,管理员:

  • 可以访问他们是成员的群组和项目。
  • 无法访问 管理员区域

为您的实例启用管理员模式

管理员可以通过 API、Rails 控制台或 UI 启用管理员模式。

使用 API 启用管理员模式

向您的实例端点发出以下请求:

curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab.example.com>/api/v4/application/settings?admin_mode=true"

<gitlab.example.com> 替换为您的实例 URL。

有关更多信息,请参阅 可以通过 API 调用访问的设置列表

使用 Rails 控制台启用管理员模式

打开 Rails 控制台 并运行以下命令:

::Gitlab::CurrentSettings.update!(admin_mode: true)

使用 UI 启用管理员模式

通过 UI 启用管理员模式:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 常规
  3. 展开 登录限制
  4. 选择 启用管理员模式
  5. 选择 保存更改

为您的会话开启管理员模式

要为当前会话开启管理员模式并访问潜在危险资源:

  1. 在左侧边栏,选择您的头像。
  2. 选择 进入管理员模式
  3. 尝试访问任何包含 /admin 的 URL 的 UI 部分(需要管理员访问权限)。

当管理员模式状态被禁用或关闭时,管理员无法访问资源,除非他们被明确授予访问权限。例如,如果管理员尝试打开一个私人群组或项目,他们会收到 404 错误,除非他们是该群组或项目的成员。

管理员应启用 2FA。管理员模式支持 2FA、OmniAuth 提供商和 LDAP 身份验证。管理员模式状态存储在当前用户会话中,并保持活动状态,直到以下情况之一发生:

  • 显式禁用。
  • 在六小时后自动禁用。

检查您的会话是否启用了管理员模式

{{< history >}}

{{< /history >}}

转到您的活动会话列表:

  1. 在左侧边栏,选择您的头像。
  2. 选择 编辑个人资料
  3. 在左侧边栏,选择 活动会话

启用管理员模式的会话显示文本 会话日期 启用管理员模式登录

为您的会话关闭管理员模式

要为当前会话关闭管理员模式:

  1. 在左侧边栏,选择您的头像。
  2. 选择 离开管理员模式

已知问题

管理员模式在六小时后超时,您无法更改此超时时限。

以下访问方法 受管理员模式保护:

  • Git 客户端访问(使用公钥的 SSH 或使用个人访问令牌的 HTTPS)。

换句话说,管理员模式限制的管理员仍然可以使用 Git 客户端,而无需额外的身份验证步骤。

要使用极狐GitLab REST- 或 GraphQL API,管理员必须 创建个人访问令牌OAuth 令牌,并具有 admin_mode 范围

如果具有 admin_mode 范围的个人访问令牌的管理员失去了管理员访问权限,即使他们仍然拥有具有 admin_mode 范围的令牌,该用户也无法以管理员身份访问 API。

此外,当极狐GitLab Geo 启用时,您无法在辅助节点上查看项目和设计的复制状态。项目和设计转移到新的 Geo 框架时,提出了修复方案。

管理员模式故障排除

如果需要,您可以使用以下两种方法之一作为管理员禁用 管理员模式

  • API:

    curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab-url>/api/v4/application/settings?admin_mode=false"
    
  • Rails 控制台:

    ::Gitlab::CurrentSettings.update!(admin_mode: false)
    

双因素身份验证

启用此功能后,所有用户必须使用 双因素身份验证

配置为强制性后,用户可以跳过双因素身份验证的强制配置,设定可配置的宽限期(以小时为单位)。

宽限期设置为 48 小时的双因素身份验证

未知登录的电子邮件通知

启用后,极狐GitLab 会通知用户来自未知 IP 地址或设备的登录。有关更多信息,请参阅 未知登录的电子邮件通知

启用未知登录的电子邮件通知。

登录信息

{{< history >}}

  • 在极狐GitLab 17.0 中 登录文本 设置已弃用。

{{< /history >}}

所有未登录的用户都会被重定向到配置的 主页 URL 所表示的页面,如果值不为空。

所有用户在注销后都会被重定向到配置的 注销页面 URL 所表示的页面,如果值不为空。

要在登录页面添加帮助信息,请 自定义您的登录和注册页面

故障排除

在 Rails 控制台中重新启用标准 Web 登录表单

如果由于 登录限制 被禁用,则可以重新启用标准的用户名和密码登录表单。

当配置的外部身份验证提供商(通过 SSO 或 LDAP 配置)出现故障并需要直接登录访问极狐GitLab时,您可以通过 Rails 控制台 使用此方法。

Gitlab::CurrentSettings.update!(password_authentication_enabled_for_web: true)