irpas技术客

Gitlab集成Ldap认证登录报错_魔希达_gitlab集成ldap

irpas 5753

一、问题描述

Gitlab集成了ldap认证,由于公司人员组织架构调整,导致一部分人登录gitlab报错。 出现两种报错:

Could not authenticate you from Ldapmain because "Undefined method `provider' for nil:nilclass". Could not authenticate you from Ldapmain because "Invalid credentials for xxx".

通过管理后台发现这些用户为禁用状态,且无法取消禁用。


二、解决方案: 情况一:密码错误

确认账号密码没有输错,因为密码错误也会报这个错。

情况二:邮箱不一致

确认Ldap用户的邮箱与Gitlab用户的邮箱一致,我发现有些员工在Ldap中没有录入邮箱,修改Ldap用户邮箱为Gitlab邮箱后可正常登录。

情况三:手动修正身份标识(DN)

处理完邮箱后有个别员工还是无法登录,通过手动修正Gitlab中的用户身份标识解决。 用管理员账号登录Gitlab后台,从管理中心进去用户管理界面,找到对应用户,可在用户详情看到用户的身份标识(对应Ldap中的DN)还是旧的组织架构,编辑修改成新的DN后可正常登录。 身份标识修改参考下图:

情况四:从数据库修复用户状态

我们gitlab是通过docker部署的,这边说下容器里postgresql的连接方式。

1.进入容器 2.切换用户: su - gitlab-psql 3.连接postgresql: psql -h /var/opt/gitlab/postgresql -d gitlabhq_production 4.查看异常用户: SELECT name,username,state FROM users WHERE state='ldap_blocked’; 5.更新用户状态: Update users set state='active' WHERE state='ldap_blocked';


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #gitlab集成ldap #出现两种报错Could #not #authenticate #you #from #Ldapmain