【问题标题】:SonarQube 5.6 with LDAP Plugin 2.0 is unable to retrieve details for external users带有 LDAP 插件 2.0 的 SonarQube 5.6 无法检索外部用户的详细信息
【发布时间】:2017-01-22 01:49:41
【问题描述】:

我们正在尝试为 SonarQube 5.6 配置 LDAP 2.0 插件,以便能够对我们 AD 域中的用户进行身份验证。在 sonar.log 中,我们得到以下反馈:

2016.09.12 10:55:16 INFO web[o.s.s.p.ServerPluginRepository] ​​部署插件 C# / 5.3.1 / 6d9c99cb816b5d82ee23b51dbb05f9ee37a3bf2d 2016.09.12 10:55:16 INFO web[o.s.s.p.ServerPluginRepository] ​​部署插件 JavaScript / 2.11 / a9b1afa9ceef7079811779d9efc5f8026acb1400 2016.09.12 10:55:16 INFO web[o.s.s.p.ServerPluginRepository] ​​部署插件 LDAP / 2.0 / 2910f3981167a70a201ccfae01471dfd26c794b7 2016.09.12 10:55:16 INFO web[o.s.s.p.ServerPluginRepository] ​​部署插件 Web / 2.4 / 61c14c00da36f77d18c019ad2bd7942708e99c13 2016.09.12 10:55:16 INFO web[o.s.d.c.MssqlCharsetHandler] 验证数据库列是否区分大小写和重音敏感 2016.09.12 10:55:16 INFO web[o.s.s.p.RailsAppsDeployer] 部署 Ruby on Rails 应用程序 2016.09.12 10:55:16 INFO web[o.s.s.p.RailsAppsDeployer] 部署应用程序:ldap 2016.09.12 10:55:18 INFO web[o.s.s.p.UpdateCenterClient] 更新中心:http://update.sonarsource.org/update-center.properties(没有 代理) 2016.09.12 10:55:18 INFO web[org.sonar.INFO] 安全领域:LDAP 2016.09.12 10:55:18 INFO web[o.s.p.l.LdapSettingsManager] 用户映射:LdapUserMapping{baseDn=ou=****,dc=****,dc=****, 请求=(&(objectClass=User)(sAMAccountName={0})), realNameAttribute=显示名称,emailAttribute=mail} 2016.09.12 10:55:18 INFO web[o.s.p.l.LdapSettingsManager] 组映射:LdapGroupMapping{baseDn=ou=****,dc=****,dc=****, idAttribute=cn, requiredUserAttributes=[dn], request=(&(objectClass=Group)(name={0}))} 2016.09.12 10:55:18 INFO web[o.s.p.l.LdapContextFactory] ​​在 ldap://****:389 上测试 LDAP 连接:OK 2016.09.12 10:55:18 INFO web[org.sonar.INFO] 安全领域开始

安全领域已启动,但登录尝试从未成功。在 sonar.log 中,我们在尝试登录时收到以下错误:

ERROR web[rails] 来自外部用户提供商的错误:异常 Java::OrgSonarApiUtils::SonarException:无法检索详细信息 用户****在

我们在 sonar.properties 中添加了以下配置:

# LDAP configuration
# General Configuration
sonar.security.realm=LDAP
ldap.url: ldap://****:389
sonar.forceAuthentication=true 
ldap.windows.compatibilityMode = true

# User Configuration
ldap.user.baseDn=ou=***,dc=***,dc=***
ldap.user.request=(&(objectClass=User)(sAMAccountName={login}))
ldap.user.realNameAttribute=Displayname
ldap.user.emailAttribute=mail

# Group Configuration
ldap.group.baseDn=ou=***,dc=***,dc=***
ldap.group.request=(&(objectClass=Group)(name={dn}))

在管理中我们也找不到用户。我们已经使用另一个工具测试了请求查询 (&(objectClass=User)(sAMAccountName={login})),它工作正常。我们想知道我们应该如何授权用户。它们是否应该在用户页面中可用(在管理/安全中)?

【问题讨论】:

  • 首先,LDAP 2.0 不再需要“ldap.windows.compatibilityMode = true”,因为它用于 Active Directory SSO 功能。那么您可以发送身份验证期间生成的整个错误吗?谢谢
  • 提高日志级别后,我们现在收到以下错误:2016.09.15 08:43:34 DEBUG web[osplLdapUsersProvider] [LDAP: error code 1 - 000004DC: LdapErr: DSID-0C090749,注释:为了执行此操作,必须在连接上完成成功的绑定。,数据 0,v2580] javax.naming.NamingException:[LDAP:错误代码 1 - 000004DC:LdapErr:DSID-0C090749,注释:为了执行此操作必须在连接上完成成功绑定。,数据 0,v2580] 这是整个日志:1drv.ms/u/s!AjQuj_xHAAUnwnmJHVHaRK2n_j_Z
  • 正如 Nico 在他的回答中所说,您是否提供了 ldap.bindDn 和 ldap.bindPassword ?

标签: ldap sonarqube sonarqube-ops


【解决方案1】:

在您的sonar.properties 中配置ldap.bindDnldap.bindPassword(参见LDAP Plugin documentation)。没有它,插件会退回到匿名访问,因此在大多数环境中,身份验证尝试将失败。

注意:设置sonar.log.level=DEBUG 通常可以很好地说明潜在问题是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 2018-11-02
    • 2022-01-22
    • 2016-11-30
    • 2020-05-09
    相关资源
    最近更新 更多