【问题标题】:Sonar 4.1.1 with LDAP 1.4 ConfigurationSonar 4.1.1 与 LDAP 1.4 配置
【发布时间】:2014-03-04 08:05:34
【问题描述】:

我正在尝试使用 Windows 活动目录配置声纳。我收到以下错误。

ERROR [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}))

任何人都有解决声纳问题的想法。

问候 阿伦。

【问题讨论】:

标签: active-directory ldap sonarqube


【解决方案1】:

SonarQube 5.6 (LTS) 上的 LDAP 2.1 有类似问题

tl'dr

这种 ldap.user.request 格式对我有用 -

ldap.user.request=(uid={login})

如果你还在看书……

这里有一些帮助我解决问题的方法

  1. sonar.log :
    打开 DEBUG 并查找正在构建的实际 ldap 搜索查询和 ldap 上下文。
2017.03.14 00:35:04 DEBUG 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=简单,java.naming.referral=follow}
  1. ldapsearch :
    使用日志中相同的参数运行 lapsearch 命令(步骤 #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
  1. sonar.properties - 这是我的工作 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=人,dc=test,dc=com ldap.user.request=(uid={login}) ldap.user.realNameAttribute=cn ldap.user.emailAttribute=邮件 #组配置 ldap.group.baseDn=ou=组,dc=test,dc=com ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
  1. ldap.user.request & ldap.group.request
    从第 1 步中,您可以找出在您的情况下查询过滤器参数的正确格式以及 bindDn (-D) 和 baseDn _-b) 的值

希望这会有所帮助 =)

谢谢!

【讨论】:

    【解决方案2】:

    我刚刚在 Sonar 5.1.1 中遇到了类似的错误。以下是我的解决方法:

    1. Base DN 不适合与 AD 服务器一起使用。这对我有用:

      ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
      
    2. 对 AD 服务器的匿名身份验证显然不适用于 Sonar 的 LDAP 插件(此假设是 supported by the documentation,它将针对 AD 服务器的匿名身份验证指定为“未经测试”)。您需要指定一个 Bind DN(这里指的是用户)来连接 AD 服务器:

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

    【讨论】:

      猜你喜欢
      • 2014-09-04
      • 1970-01-01
      • 2016-06-15
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 2014-03-16
      相关资源
      最近更新 更多