active-directory – sonarqube – 活动目录ldap错误代码49

我有一个运行sonarqube 5.5的实例.

我想使用sonar-ldap-plugin 1.5.1,以便将身份验证和授权委托给我公司的Active Directory服务.

LDAP插件的配置如下(以模糊方式进行模糊处理):

sonar.authenticator.createUsers=false
sonar.security.savePassword=false
sonar.security.realm=LDAP
ldap.url=ldap://host.my.domain

ldap.user.baseDn=OU=Users,OU=Organic Units,DC=my,DC=domain
ldap.user.request=(&(objectClass=user) (sAMAccountName={login}))
ldap.authentication=DIGEST-MD5
ldap.bindDn=CN=harmlessServiceAccount,OU=users,OU=Organic Units,DC=my,DC=domain
ldap.bindPassword=<the user password in clear text>

sonar.log.level=DEBUG

并且sonarqube服务器报告以下错误:

2016.07.13 10:19:38 INFO  web[o.s.p.l.LdapContextFactory] Test LDAP connection: FAIL
2016.07.13 10:19:38 ERROR web[o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextListener 
java.lang.IllegalStateException: Unable to open LDAP connection
...
Caused by: javax.naming.AuthenticationException: [LDAP: error code 49 - 8009030C: LdapErr: DSID-0C0904DC, comment: AcceptSecurityContext error, data 52e, v1db1^@]
...

我用ldapsearch做了完全相同的查询,并没有遇到任何问题.所以我认为Active Directory服务是正确的,并接受此用户和DIGEST-MD5 SASL机制.

我也通过sonarqube使用同一个用户使用SIMPLE(不安全)机制,它也正常工作.
我还尝试将密码的md5哈希值而不是密码.
我尝试了很多其他我不感到自豪的事情……

我在线阅读了许多类似的问题(堆栈溢出,其他来源),但还没有找到解决方案.
你看到我的配置有什么问题吗?
我注定要使用SIMPLE机制,让每个人的密码都以明文形式移动?
我不能使用CRAM-MD5和GSSAPI,因为我公司的活动目录服务不支持它们.

谢谢您的帮助,
JC

最佳答案 错误代码49中包含一个子代码,告诉您失败原因是什么.你报道了:

[LDAP: error code 49 - 8009030C: LdapErr: DSID-0C0904DC, comment: AcceptSecurityContext error, data 52e, v1db1^@]

数据52e部分是关键.

查看list I maintain here,您将看到52e表示绑定用户的密码错误. 525对于您的用户来说是错误的DN,因此您拥有正确的LDAP DN,但密码错误.

点赞