Active directory Sonar 4.1.1和LDAP 1.4配置

Active directory Sonar 4.1.1和LDAP 1.4配置,active-directory,ldap,sonarqube,Active Directory,Ldap,Sonarqube,我正在尝试用windows Active directory配置声纳。我得到下面的错误 错误[rails]来自外部用户提供商的错误:无法在中检索用户xxx.xxx的详细信息 以下配置在sonar.property文件中完成 # LDAP configuration # General Configuration sonar.security.realm=LDAP ldap.authentication: simple sonar.security.savePassword=true sonar.

我正在尝试用windows Active directory配置声纳。我得到下面的错误

错误[rails]来自外部用户提供商的错误:无法在中检索用户xxx.xxx的详细信息

以下配置在sonar.property文件中完成

# LDAP configuration
# General Configuration
sonar.security.realm=LDAP
ldap.authentication: simple
sonar.security.savePassword=true
sonar.authenticator.createUsers=true
ldap.url=ldap://xxxx.group.root.ad

# User Configuration
ldap.user.baseDn=OU=Users,OU=Customs,OU=Group,dc=group,dc=root,dc=ad
ldap.user.request=(&(objectClass=inetOrgPerson)(uid={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail

# Group Configuration
ldap.group.baseDn=OU=Customs,OU=Group,dc=group,dc=root,dc=ad 
#ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
ldap.group.request=((objectClass=group)(member={dn}))
任何人都有办法解决声纳的问题

问候
阿伦。

我刚刚在Sonar 5.1.1中遇到了类似的错误。我是这样解决的:

  • 基本DN不适用于AD服务器。这对我很有用:

    ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
    
  • 对AD服务器的匿名身份验证显然不适用于Sonar的LDAP插件(该假设将针对AD服务器的匿名身份验证指定为“未测试”)。您需要指定绑定DN(此处表示用户)以连接AD服务器:

    ldap.bindDn=<user>@<domain>
    ldap.bindPassword=secret
    
    ldap.bindDn=@
    ldap.bindPassword=secret
    

  • 我在SonarQube 5.6(LTS)上的LDAP 2.1也有类似的问题

    tl'dr

    这种ldap.user.request格式适合我-

    ldap.user.request=(uid={login})
    
    如果你还在读

    以下是一些帮助我解决问题的方法

  • 声纳日志
    打开调试并查找正在生成的实际ldap搜索查询和ldap上下文
  • 2017.03.14 00:35:04调试web[o.s.p.l.LdapSearch]搜索:LdapSearch{baseDn=dc=test,dc=com,scope=subtree,request=(&(objectClass=inetOrgPerson)(uid={0})),参数=[harvey],属性=[mail,cn]} 2017.03.14 00:35:04调试web[o.s.p.l.LdapContextFactory]初始化LDAP上下文{java.naming.provider.url=ldap://ldap.test.com,java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,java.naming.security.principal=uid=user,ou=People,dc=test,dc=com,com.sun.jndi.ldap.connect.pool=true,java.naming.security.authentication=simple,java.naming.reference=follow}
  • ldapsearch
    使用日志中的相同参数运行“失效搜索”命令(步骤#1)
  • $ldapsearch-x-L-D“uid=user,ou=People,dc=test,dc=com”-w“pass”-b“ou=People,dc=test,dc=com”“(uid=harvey)”邮件cn
  • 声纳属性- 下面是我的工作LDAP配置
  • #一般配置 sonar.security.realm=LDAP ldap.url=ldaps://ldap.test.com ldap.bindDn=uid=user,ou=People,dc=test,dc=com ldap.bindPassword=pass #用户配置 ldap.user.baseDn=ou=People,dc=test,dc=com ldap.user.request=(uid={login}) ldap.user.realNameAttribute=cn ldap.user.emailAttribute=mail #组配置 ldap.group.baseDn=ou=group,dc=test,dc=com ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
  • ldap.user.request和ldap.group.request
    从步骤#1中,您可以了解在您的案例中查询筛选器参数的正确格式以及bindDn(-D)和baseDn(-b)的值
  • 希望这有帮助()

    谢谢!

    可能的副本 2017.03.14 00:35:04 DEBUG web[o.s.p.l.LdapSearch] Search: LdapSearch{baseDn=dc=test,dc=com, scope=subtree, request=(&(objectClass=inetOrgPerson)(uid={0})), parameters=[harvey], attributes=[mail, cn]} 2017.03.14 00:35:04 DEBUG web[o.s.p.l.LdapContextFactory] Initializing LDAP context {java.naming.provider.url=ldap://ldap.test.com, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.security.principal=uid=user,ou=People,dc=test,dc=com, com.sun.jndi.ldap.connect.pool=true, java.naming.security.authentication=simple, java.naming.referral=follow} $ldapsearch -x -L -D"uid=user,ou=People,dc=test,dc=com" -w"pass" -b"ou=People,dc=test,dc=com" "(uid=harvey)" mail cn #General Configuration sonar.security.realm=LDAP ldap.url=ldaps://ldap.test.com ldap.bindDn=uid=user,ou=People,dc=test,dc=com ldap.bindPassword=pass #User Configuration ldap.user.baseDn=ou=People,dc=test,dc=com ldap.user.request=(uid={login}) ldap.user.realNameAttribute=cn ldap.user.emailAttribute=mail #Group Configuration ldap.group.baseDn=ou=Group,dc=test,dc=com ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))