active-directory - sonarqube - 事件目录 ldap 错误代码 49

标签 active-directory ldap sonarqube sasl sonarqube-ops

我有一个 sonarqube 5.5 正在运行的实例。
我想使用 sonar-ldap-plugin 1.5.1 来将身份验证和授权委托(delegate)给我公司的 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 机制。
我还通过带有 SIMPLE(不安全)机制的 sonarqube 使用了同一个用户,并且它也“正常”工作。
我还尝试将密码的 md5 哈希值而不是密码。
我尝试了很多其他我并不引以为豪的事情......
我在网上阅读了许多类似的问题(堆栈溢出、其他来源),但还没有找到解决方案。
你看到我的配置有什么问题吗?
我是否注定要使用 SIMPLE 机制并让每个人的密码以明文形式移动?
我不能使用 CRAM-MD5 和 GSSAPI,因为我公司的事件目录服务不支持它们。

最佳答案

错误代码 49 中有一个子代码,它告诉您失败的原因是什么。你举报了:

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

数据 52e 部分是关键。

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

关于active-directory - sonarqube - 事件目录 ldap 错误代码 49,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38346609/

相关文章:

powershell - 从 Samaccountname 获取电子邮件地址

powershell - 是否可以使用 Powershell 在 Active Directory 中设置用户 memberOf 属性

email - LDAP 获取用户邮箱

azure - 如何在 IIS 服务器级别强制实现 Azure AD 身份验证

powershell - 在不使用 ActiveDirectory 模块的情况下在 powershell 中获取当前计算机的可分辨名称

java - 在 Java GWT 中使用 LDAP,在本地主机上工作但不在服务器上 -> 错误代码 34

active-directory - 如何获取 LDAP/AD 中的嵌套组?

gradle - 如何在 Gradle 中为多模块项目聚合 Sonar 报告?

java - java/lang/Runtime.exec([Ljava/lang/String;)Ljava/lang/Process; 的用法可能容易受到命令注入(inject)的攻击

azure - 在 Azure VM 外部(公开)访问 SonarQube 端口 9000