【问题标题】:How do I unblock LDAP users in GitLab-CE如何在 GitLab-CE 中取消阻止 LDAP 用户
【发布时间】:2017-04-20 18:52:57
【问题描述】:

当 LDAP 身份验证用户帐户被锁定时,我们的一些通过 LDAP 进行身份验证的 GitLab 用户被阻止。 我怎样才能解锁它们? GitLab-EE 似乎通过强制同步 LDAP 状态来提供此功能。 如何使用 GitLab-CE 做到这一点?

【问题讨论】:

    标签: git ldap gitlab gitlab-ce


    【解决方案1】:

    我有一个状态为ldap_blocked 的用户 为了解决这个问题,我去了user.state='active',它返回了=> "active",然后我做了user.unlock_access!,以获得良好的衡量标准(可能没有必要)。 然后用户在 Web 控制台中被取消阻止。

    更多详情

    我按照这里的说明进行操作:https://docs.gitlab.com/12.10/ee/security/unlock_user.html

    这涉及到进入 ruby​​ 控制台:

    sudo gitlab-rails console -e production
    

    然后搜索用户并保存在一个临时变量中:

    userJohn = User.find_by(email: 'john.smith@yourdomain.com')
    userJohn.state
    => "ldap_blocked"
    

    然后我稍微偏离了说明,直接将用户设置为活动,这似乎有效(说明说 userJohn.unlock_access! 对我不起作用)

    userJohn.state='active'
    => "active"
    userJohn.state #me checking to make sure
    => "active"
    

    【讨论】:

    • 这对我有用,但我必须在最后执行 'userJohn.save' 才能使更改生效。
    【解决方案2】:

    我基本上是直接进入数据库的:

    sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq

    update public.users set state='active';

    注意:这将取消阻止所有用户

    【讨论】:

    • 很有可能再次使用此方法阻止用户。虽然这暂时有效,但最好找到防止它的解决方案。
    • 你说的有一部分是对的,但你真的遇到过这个具体问题吗?问题是我们用于 ldap 身份验证的用户被阻止,而不是 ldap 身份验证的用户。在 ee 版本中有一个强制的 ldap 同步。 CE 版中缺少此功能。这基本上意味着任何由于 ldap 用户而被阻止的用户 Gitlab 都会被永久阻止,除非你能告诉我如何以更合适的方式执行此操作。
    【解决方案3】:

    如果 LDAP 用户被阻止,通常意味着:

    1. 与 LDAP 服务器的连接被中断或无法正常工作(配置文件中的管理员凭据错误)
    2. 用户不再存在于 LDAP 中。

    如果用户仍存在于 LDAP 中,但仍被随机阻止,则可能表明与 LDAP 服务器之间存在偶发性通信问题。在这种情况下,尝试再次登录应该会起作用,并且会解除对用户的阻止。

    【讨论】:

    • 这也可能意味着该帐户被暂时或永久锁定在 LDAP 中。
    • 再次登录并不能解决问题,这可能是我们尝试的第一件事
    • 帮助删除用户并重新注册并因此丢失所有用户相关信息。
    • 您是手动重新创建用户,还是让用户在删除后使用 LDAP 再次登录?我仍然认为这是一个零星的沟通问题。
    • 我很清楚通信问题是什么,ldap认证用户被屏蔽了。发生这种情况时,任何试图在被阻止时进行身份验证的 ldap 用户都会被 Gitlab CE 标记为阻止。之后,我尝试删除用户并通过登录再次注册,这意味着与用户相关的所有内容都被删除。除了我在此处发布的解决方案之外,我没有办法在不删除用户的情况下解决此问题
    【解决方案4】:

    在十次登录尝试失败后,用户进入锁定状态。

    解锁被锁定的用户:

    1. SSH 到您的 GitLab 服务器。
    2. 启动 Ruby on Rails 控制台:

    对于 Omnibus GitLab:

    sudo gitlab-rails console -e production
    

    对于来自源的安装:

    sudo -u git -H bundle exec rails console -e production
    

    找到要解锁的用户。您可以通过电子邮件或 ID 进行搜索。

    user = User.find_by(email: 'admin@local.host')
    

    user = User.where(id: 1).first
    

    解锁用户:

    user.unlock_access!
    user.save
    

    使用 Control+d 退出控制台

    用户现在应该可以登录了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-31
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多