Gitlab:LDAP";无效凭证";,但凭证是正确的

Gitlab:LDAP";无效凭证";,但凭证是正确的,ldap,gitlab,Ldap,Gitlab,下面的ldapsearch命令可以完美地工作 ldapsearch-LLL-s sub-p3-D“CN=,OU=IT,OU=Non-Users,OU=Users,OU=UserAccount,DC=,DC=com”-Hldaps://.com: -w'-v-b'OU=Users,OU=UserAccount,DC=,DC=com''(&(objectClass=person)(sAMAccountName=)' 但是,不管我在多大程度上反复检查输入的值是否正确,在gitlab.yml中配置的这个

下面的ldapsearch命令可以完美地工作

ldapsearch-LLL-s sub-p3-D“CN=,OU=IT,OU=Non-Users,OU=Users,OU=UserAccount,DC=,DC=com”-Hldaps://.com: -w'-v-b'OU=Users,OU=UserAccount,DC=,DC=com''(&(objectClass=person)(sAMAccountName=)'

但是,不管我在多大程度上反复检查输入的值是否正确,在gitlab.yml中配置的这个值都不正确

ldap:
已启用:真
主机:'.com'
端口:
uid:'sAMAccountName'
方法:“ssl”
bind_dn:'CN=,OU=IT,OU=Non-Users,OU=Users,OU=UserAccount,DC=,DC=com'
密码:“”
允许\u用户名\u或\u电子邮件\u登录:true
base:'OU=Users,OU=UserAccount,DC=,DC=com'
用户\u筛选器:“”
组\u基:“”

是的,BindDN与其他用户位于不同的位置,但它位于它的南部,因此查询库是有效的

所有尝试都会在屏幕上抛出此错误:

无法从LDAP授权您,因为“凭据无效”

production.log表示以下内容:

2014-07-18 08:13:17-0400开始获得127.0.0.1版的“/用户/登录”
Desive::SessionController#以HTML格式新处理
在21毫秒内完成200 OK(视图:12.8毫秒|活动记录:0.0毫秒)
于2014-07-18 08:13:25-0400为127.0.0.1发布“/users/auth/ldap/callback”
OmniAuthCallbackController处理失败为HTML
参数:{“utf8”=>“✓", "真实性\u令牌“=>”,“用户名”=>”,“密码”=>“[过滤]”}
重定向到http:///users/sign_in
3毫秒内完成302次(ActiveRecord:0.0毫秒)
2014-07-18 08:13:56-0400开始获得127.0.0.1版的“/用户/登录”
Desive::SessionController#以HTML格式新处理
在10毫秒内完成200 OK(视图:5.9毫秒|活动记录:0.0毫秒)
于2014-07-18 08:20:03-0400为127.0.0.1发布“/users/auth/ldap/callback”

所讨论的LDAP是Active Directory,虽然我无法通过本机访问服务器来查询日志,但每次尝试web登录时,“badPwdCount”都会递增,我不知道如何或为什么

我知道最终用户的危险,他们坚持他们正确输入用户名和密码,但我已经检查过,三次检查过,八次检查过,我的声明中没有任何拼写错误,并且我找不到任何其他与相同错误组合有关的事件。我知道这里的语法是正确的


可能是什么问题

以下是我的LDAP工作广告设置

#########################################
ldap:  
    enabled: true  
    host: '16.184.18.88'  
    port: 636  
    uid: 'sAMAccountName'   #userPrincipalName  
    method: 'ssl' # "tls" or "ssl" or "plain"  
    bind_dn: 'CN=Gitlab Git,CN=Users,DC=mydomain,DC=net'  
    password: 'My_Password'  
    allow_username_or_email_login: false  
    base: 'CN=Users,DC=mydomain,DC=net'  
    user_filter: '(memberOf=CN=Developers,OU=GitLabHQ,DC=mydomain,DC=net)'  
    group_base: 'OU=GitLabHQ,DC=mydomain,DC=net'  
    admin_group: GitLabAdmins
########################################
在gitlab中配置LDAP时,我也遇到了“无效凭据”错误。该错误完全是由于ldap查询的格式造成的。gitlab appln寻找一种特定的格式将用户绑定到广告

这是我的工作配置

gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below
main: # 'main' is the GitLab 'provider ID' of this LDAP server
  label: 'LDAP'
  host: '<LDAP hostname>'
  port: 389
  uid: 'sAMAccountName'
  method: 'plain' # "tls" or "ssl" or "plain"

  bind_dn: 'CN=<user name>,OU=<ou1>,OU=<ou2>,...,DC=example,DC=com'
  password: 'My_Password'
  active_directory: true
  allow_username_or_email_login: true
  block_auto_created_users: false
  base: 'DC=example,DC=com'
gitlab_rails['ldap_enabled']=true

gitlab_rails['ldap_servers']=YAML.load我们也遇到了类似的问题,尽管我们的设置都是正确的,因为我们通过在不同的工具(如Jenkins、SonarQube)上设置类似的ldap配置来获得用户搜索结果;等等

我们通过在位于的
ldap.rb
文件中将
DefaultForceNoPage
的值设置为
true
解决了该问题(不同版本的gitlab的路径可能不同):

默认情况下为
false
。因此,一旦将该值设置为
true
,请使用以下命令重新启动GitLab服务器:

gitlab-ctl reconfigure
您还可以通过以下方式检查是否获得组织用户的结果:

gitlab-rake gitlab:ldap:check

注意:用户在使用其邮件id登录应用程序时遇到的最常见问题,您应该:


从另一个系统登录验证此广告是否有效?可能用户输入密码错误n次,现在帐户被锁定。这是每个用户的问题还是某个用户的问题?因此,绑定的服务帐户是显示无效密码尝试的帐户,而不是尝试进行身份验证的用户。如果任何用户尝试进行身份验证,则服务帐户的密码检查将失败。很抱歉,答复太晚。那么,使用服务帐户登录是否可以正常工作?哦。对不起,误会了。我实际上是指一个只用于此服务的常规帐户。因此,“服务帐户”。我不知道微软实际上用这个词来形容一种特殊的帐户类型。很抱歉服务账户运作良好。我能够解决我的问题,这只是因为我遵循了手动安装的配置设置,但是我安装了Omnibus.deb。这里的设置是正确的,因为您是唯一的答案,我将继续并将其标记为已接受。我遇到的问题是,当我通过Omnibus软件包实际安装时,我是按照手动安装的说明进行安装的。也就是说,您的设置是正确的,应该可以正常工作。
gitlab-rake gitlab:ldap:check
uid: 'mail'