{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
{{< /details >}}
您可以使用 登录限制 来自定义 Web 界面以及 Git over HTTP(S) 的身份验证限制。
设置
要访问登录限制设置:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 登录限制 部分。
密码身份验证已启用
您可以限制 Web 界面和 Git over HTTP(S) 的密码身份验证:
如果外部身份验证提供商出现故障,可以使用 极狐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 启用管理员模式:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 登录限制。
- 选择 启用管理员模式。
- 选择 保存更改。
为您的会话开启管理员模式
要为当前会话开启管理员模式并访问潜在危险资源:
- 在左侧边栏,选择您的头像。
- 选择 进入管理员模式。
- 尝试访问任何包含
/admin
的 URL 的 UI 部分(需要管理员访问权限)。
当管理员模式状态被禁用或关闭时,管理员无法访问资源,除非他们被明确授予访问权限。例如,如果管理员尝试打开一个私人群组或项目,他们会收到 404
错误,除非他们是该群组或项目的成员。
管理员应启用 2FA。管理员模式支持 2FA、OmniAuth 提供商和 LDAP 身份验证。管理员模式状态存储在当前用户会话中,并保持活动状态,直到以下情况之一发生:
- 显式禁用。
- 在六小时后自动禁用。
检查您的会话是否启用了管理员模式
{{< history >}}
- 在极狐GitLab 16.10 中引入,使用名为
show_admin_mode_within_active_sessions
的功能标志。默认禁用。 - 在极狐GitLab 16.10 中在 JihuLab.com 上启用。
- 在极狐GitLab 17.0 中 GA。移除功能标志
show_admin_mode_within_active_sessions
。
{{< /history >}}
转到您的活动会话列表:
- 在左侧边栏,选择您的头像。
- 选择 编辑个人资料。
- 在左侧边栏,选择 活动会话。
启用管理员模式的会话显示文本 在 会话日期
启用管理员模式登录。
为您的会话关闭管理员模式
要为当前会话关闭管理员模式:
- 在左侧边栏,选择您的头像。
- 选择 离开管理员模式。
已知问题
管理员模式在六小时后超时,您无法更改此超时时限。
以下访问方法 不 受管理员模式保护:
- 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"
-
::Gitlab::CurrentSettings.update!(admin_mode: false)
双因素身份验证
启用此功能后,所有用户必须使用 双因素身份验证。
配置为强制性后,用户可以跳过双因素身份验证的强制配置,设定可配置的宽限期(以小时为单位)。
未知登录的电子邮件通知
启用后,极狐GitLab 会通知用户来自未知 IP 地址或设备的登录。有关更多信息,请参阅 未知登录的电子邮件通知。
登录信息
{{< history >}}
- 在极狐GitLab 17.0 中 登录文本 设置已弃用。
{{< /history >}}
所有未登录的用户都会被重定向到配置的 主页 URL 所表示的页面,如果值不为空。
所有用户在注销后都会被重定向到配置的 注销页面 URL 所表示的页面,如果值不为空。
要在登录页面添加帮助信息,请 自定义您的登录和注册页面。
故障排除
在 Rails 控制台中重新启用标准 Web 登录表单
如果由于 登录限制 被禁用,则可以重新启用标准的用户名和密码登录表单。
当配置的外部身份验证提供商(通过 SSO 或 LDAP 配置)出现故障并需要直接登录访问极狐GitLab时,您可以通过 Rails 控制台 使用此方法。
Gitlab::CurrentSettings.update!(password_authentication_enabled_for_web: true)