无法使用 LDAP 登录/进入管理员模式
Posted
技术标签:
【中文标题】无法使用 LDAP 登录/进入管理员模式【英文标题】:Can't login/enter admin mode with LDAP 【发布时间】:2021-10-03 18:36:17 【问题描述】:问题
如何绕过 LDAP 登录并删除管理任务的额外身份验证?
问题
我无法进入管理员模式。当我使用常规凭据登录并尝试更改一些管理设置时,它会要求 LDAP 凭据进入管理模式。问题是 LDAP 太慢了,对我不起作用(我稍后会解决这个问题)。
上下文
我在本地配置 gitlab-ce 13.11.3-ce.0 作为演示。我设置了一些我不想完全重置的东西。管理员用户有定期身份验证。由于我通过 LDAP 登录(我使用与 LDAP 相同的用户名登录),我无法再进入管理员模式,尽管我可以使用普通凭据以管理员用户身份登录。
我混合了管理员帐户的常规和 LDAP 凭据。
我尝试了什么:
我尝试在/etc/gitlab/gitlab.rb
使用设置gitlab_rails['ldap_enabled'] = false
关闭LDAP 登录,但表单没有显示(但显示了LDAP 标题)。
我尝试使用gitlab-rails console
重置用户密码。
我也在尝试修复 LDAP 身份验证,但现在更重要的是我可以访问管理员设置。user = User.find_by(email: 'user@example.com') user.password = 'secret_pass' user.password_confirmation = 'secret_pass' user.save! user.skip_reconfirmation!
【问题讨论】:
【参考方案1】:正如the documentation 所述,可以使用以下命令轻松禁用此身份验证:
gitlab-rails runner '::Gitlab::CurrentSettings.update!(admin_mode: false)'
当我找到上面的代码时,我已经使用以下方法解决了问题:
访问服务器后,我在 Gitlab 中使用 gitlab-rails runner
创建了另一个具有常规身份验证的管理员用户。
在 /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
我使用创建的用户成功登录,然后取消设置 管理区域 > 下的选项需要对管理任务进行额外身份验证 设置 > 常规 > 展开登录限制部分.
更多详情请见the documentation。
【讨论】:
以上是关于无法使用 LDAP 登录/进入管理员模式的主要内容,如果未能解决你的问题,请参考以下文章
引用的帐号当前已锁定,且可能无法登录,win7的电脑,怎么解开?
带有 LDAP 注销的 Spring Security 无法删除会话