无法使用 LDAP login/enter 管理员模式

Can't login/enter admin mode with LDAP

问题

如何绕过 LDAP 登录并删除管理任务的额外身份验证?

问题

我无法进入管理员模式。当我使用常规凭据登录并尝试更改某些管理设置时,它会要求 LDAP 凭据进入管理模式。问题是 LDAP 太慢了,对我不起作用(我稍后会解决这个问题)。

上下文

我正在本地配置 gitlab-ce 13.11.3-ce.0 作为演示。我设置了一些我不想在完全重置时丢失的东西。 admin 用户进行了常规身份验证。由于我通过 LDAP 登录(我使用与 LDAP 相同的用户名登录)我无法再进入管理员模式,尽管我可以使用普通凭据以管理员用户身份登录。

我混合了管理员帐户的常规凭据和 LDAP 凭据。

我尝试了什么:
user = User.find_by(email: 'user@example.com')
user.password = 'secret_pass'
user.password_confirmation = 'secret_pass'
user.save!
user.skip_reconfirmation!

the documentation所述,可以使用以下命令轻松禁用此身份验证:

gitlab-rails runner '::Gitlab::CurrentSettings.update!(admin_mode: false)'

当我找到上面的代码时,我已经使用以下方法解决了问题:

访问服务器后,我使用 gitlab-rails runner 在 Gitlab 中创建了另一个具有常规身份验证的管理员用户。

/path/to/bypassldap.rb:

username = "bypassldap"
user = User.new(
    username: username,
    name: username,
    email: "#{username}@gitlab.allowed.domain",
    notification_email: "#{username}@gitlab.allowed.domain",
    password: username,
    password_confirmation: username,
    admin: true
)
user.skip_confirmation!
user.save!

然后 运行:

gitlab-rails runner /path/to/bypassldap.rb

我使用创建的用户成功登录,然后在管理区域[=47]下取消设置选项管理任务需要额外的身份验证 =] > 设置 > 常规 > 展开 登录限制 部分。

有关详细信息,请参阅 the documentation