如何在GitLab CE中解锁LDAP用户

如何在GitLab CE中解锁LDAP用户,git,ldap,gitlab,gitlab-ce,Git,Ldap,Gitlab,Gitlab Ce,我们的一些通过LDAP进行身份验证的GitLab用户在LDAP身份验证用户帐户被锁定时被阻止。 我怎样才能解锁它们? GitLab EE似乎通过强制同步LDAP状态来提供此功能。 如何使用GitLab CE做到这一点?我基本上直接进入了数据库: sudo-u gitlab psql/opt/gitlab/embedded/bin/psql-h/var/opt/gitlab/postgresql-d gitlabhq 及 updatepublic.users设置为state='active' 注意

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

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

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

updatepublic.users设置为state='active'


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

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

  • 与LDAP服务器的连接被中断或无法正常工作(配置文件中的管理员凭据不正确)
  • LDAP中不再存在该用户
    如果用户仍然存在于LDAP中,但仍被随机阻止,则可能表明与LDAP服务器之间存在零星通信问题。在这种情况下,再次尝试登录应该会起作用,并将解锁用户

    我有一个用户的状态
    ldap\u被阻止
    为了修复,我去了
    user.state='active'
    ,它返回了
    =>“active”
    ,然后我去了
    user.unlock\u访问用于良好测量(可能不需要)。
    然后在web控制台中取消阻止用户

    更多细节 我按照这里的指示:

    这涉及到进入ruby控制台:

    sudo-gitlab-rails控制台-e生产
    
    然后搜索用户并保存在临时变量中:

    userJohn=User.find_by(电子邮件:'john。smith@yourdomain.com')
    约翰州
    =>“ldap\u被阻止”
    
    然后,我稍微偏离了说明,将用户设置为“直接激活”,这似乎有效(说明中说
    userJohn.unlock\u access!
    对我无效)

    userJohn.state='active'
    =>“活动”
    userJohn.state#请让我确认一下
    =>“活动”
    
    在十次登录尝试失败后,用户将处于锁定状态

    要解锁锁定的用户,请执行以下操作:

  • SSH连接到您的GitLab服务器
  • 启动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.unlock_access!
    user.save
    
    使用Control+d退出控制台


    用户现在应该可以登录。

    使用此方法很可能再次阻止用户。虽然这是暂时的,但最好找到解决办法来防止它。你都有一部分是对的,但你真的有那个特定的问题吗?问题是,我们用于ldap身份验证的用户被阻止,而不是通过ldap身份验证的用户。在ee版本中,有一个强制ldap同步。这在CE版中缺失。这基本上意味着由于ldap用户而被阻止的任何用户Gitlab都将被永远阻止,除非您可以告诉我如何以更合适的方式执行此操作。这也可能意味着帐户在ldap中被临时或永久锁定。再次登录并不能解决问题,这可能是我们尝试的第一件有帮助的事情,即删除用户并重新注册,然后丢失所有与用户相关的信息。您是手动创建用户,还是让用户在删除后再次使用LDAP登录?我仍然认为这是一个零星的通信问题。我确切地知道通信问题是什么,ldap身份验证用户被阻止了。发生这种情况时,任何试图在被阻止时进行身份验证的ldap用户都会被Gitlab CE标记为已阻止。之后,我尝试删除该用户并通过登录再次注册,这意味着与该用户相关的所有内容都将被删除。我知道,除了我在这里发布的解决方案之外,没有任何方法可以在不删除用户的情况下解决这个问题。这个解决方案对我很有效,但我必须在最后执行“userJohn.save”以使更改保持不变。
    user.unlock_access!
    user.save