以下ldapsearch命令完美无瑕。
ldapsearch -LLL -s sub -P 3 -D“CN =,OU = IT,OU =非用户,OU =用户,OU = UserAccount,DC =,DC = com”-H ldaps://。 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 =非用户,OU =用户,OU = UserAccount,DC =,DC = com'
密码:''
allow_username_or_email_login:true
base:'OU = Users,OU = UserAccount,DC =,DC = com'
user_filter:'' group_base:''
是的,BindDN与其他用户位于不同的位置,但它位于其中,因此查询库有效。
所有尝试都会在屏幕上抛出此错误:
无法通过LDAP授权您,因为“凭据无效”
production.log表示以下内容:
在2014-07-18 08:13:17 -0400开始获取127.0.0.1的“/ users / sign_in” 由Devise处理:: SessionsController#new as HTML
在21ms完成200 OK(浏览次数:12.8ms | ActiveRecord:0.0ms)
在2014-07-18 08:13:25 -0400开始POST“/ users / auth / ldap / callback”为127.0.0.1 由OmniauthCallbacksController处理#失败为HTML
参数:{“utf8”=>“✓”,“authenticity_token”=>“”,“用户名”=>“”,“密码”=>“[已过滤]”} 重定向到http:/// users / sign_in
完成302发现3ms(ActiveRecord:0.0ms)
在2014-07-18 08:13:56 -0400开始获取127.0.0.1的“/ users / sign_in” 由Devise处理:: SessionsController#new as HTML
在10ms完成200 OK(浏览次数:5.9ms | ActiveRecord:0.0ms)
在2014-07-18 08:20:03 -0400开始发布“/ users / auth / ldap / callback”for 127.0.0.1
有问题的LDAP是Active Directory,虽然我本身无法访问服务器以查询日志,但每次尝试登录时,“badPwdCount”都会递增,我不明白怎么样,或者为什么。
我知道最终用户的风险和他们坚持正确地键入他们的用户名和密码,但我已经检查过,三重检查,八重检查我的声明中没有任何拼写错误,并且我找不到任何其他与此相同错误组合的事件。我知道这里的语法是正确的。
可能是什么问题?
答案 0 :(得分:1)
以下是我为LDAP工作的AD设置。
#########################################
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
########################################
答案 1 :(得分:0)
我们遇到了类似的问题,尽管我们的设置都是正确的,因为我们通过在Jenkins,SonarQube等不同工具上设置相似的LDAP配置来获得用户搜索结果。等
我们通过将位于的 DefaultForceNoPage
文件中的true
的值设置为ldap.rb
来解决了该问题(路径可能会有所不同gitlab版本):
/opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/net-ldap-0.16.0/lib/net/ldap.rb
^^^^^^^
,默认为false
。因此,将值设置为true
后,请使用以下命令重新启动GitLab服务器:
gitlab-ctl reconfigure
您还可以通过以下方式检查您是否正在获得组织用户的结果:
gitlab-rake gitlab:ldap:check
注意:用户在使用其邮件ID登录应用程序时遇到的最常见问题,您应该输入:
uid: 'mail'
答案 2 :(得分:-1)
尝试在gitlab中配置LDAP时,我也遇到“无效凭据”错误。该错误绝对是由于ldap查询的格式。 gitlab appln会查找将用户绑定到AD的特定格式。
这是我的工作配置
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'
如果你不确定bind_dn。使用AD查询工具为您提供用户的完整绑定dn。