Reg: SonarQube 7.9.1 with Active Directory Communication

Hello ,

sonar.security.realm=LDAP
ldap.url=ldap://ds.test.com:389
ldap.user.baseDn=CN=ds,CN=Users,DC=ds,DC=test,DC=com
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail

ldap.group.baseDn=OU=ds,OU=Users,OU=testgrp,DC=ds,DC=test,DC=com

ldap.group.request=(&(objectClass=posixGroup)(memberUid={uid}))
2019.09.10 18:04:41 INFO  web[][o.s.p.l.LdapSettingsManager] User mapping: LdapUserMapping{baseDn=CN=ds,CN=Users,DC=ds,DC=test,DC=com, request=(&(objectClass=user)(sAMAccountName={0})), realNameAttribute=cn, emailAttribute=mail}
2019.09.10 18:04:41 INFO  web[][o.s.p.l.LdapSettingsManager] Group mapping: LdapGroupMapping{baseDn=CN=ds,CN=Users,CN=testgrp,DC=ds,DC=test,DC=com, idAttribute=cn, requiredUserAttributes=[uid], request=(&(objectClass=posixGroup)(memberUid={0}))}
2019.09.10 18:04:42 INFO  web[][o.s.p.l.LdapContextFactory] Test LDAP connection on ldap://ds.test.com:389: OK
2019.09.10 18:04:42 INFO  web[][org.sonar.INFO] Security realm started
2019.09.10 18:04:42 WARN  web[][o.s.a.s.w.WebService$Action] The response example is not set on action api/plugins/download
2019.09.10 18:04:42 WARN  web[][o.s.a.s.w.WebService$Action] The response example is not set on action api/permissions/search_templates
2019.09.10 18:04:42 INFO  web[][o.s.s.t.TelemetryDaemon] Sharing of SonarQube statistics is enabled.
2019.09.10 18:04:42 INFO  web[][o.s.s.n.NotificationDaemon] Notification service started (delay 60 sec.)
2019.09.10 18:04:42 INFO  web[][o.s.s.s.GeneratePluginIndex] Generate scanner plugin index
2019.09.10 18:04:42 INFO  web[][o.s.s.s.RegisterPlugins] Register plugins
2019.09.10 18:04:42 INFO  web[][o.s.s.s.RegisterMetrics] Register metrics
2019.09.10 18:04:43 INFO  web[][o.s.s.r.RegisterRules] Register rules
2019.09.10 18:04:52 INFO  web[][o.s.s.q.BuiltInQProfileRepositoryImpl] Load quality profiles
2019.09.10 18:04:55 INFO  web[][o.s.s.q.RegisterQualityProfiles] Register quality profiles
2019.09.10 18:04:55 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile css/Sonar way
2019.09.10 18:04:56 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile scala/Sonar way
2019.09.10 18:04:56 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile jsp/Sonar way
2019.09.10 18:04:56 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile go/Sonar way
2019.09.10 18:04:56 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile kotlin/Sonar way
2019.09.10 18:04:56 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile js/Sonar way Recommended
2019.09.10 18:04:56 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile js/Sonar way
2019.09.10 18:04:57 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile py/Sonar way
2019.09.10 18:04:57 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile ruby/Sonar way
2019.09.10 18:04:57 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile cs/Sonar way
2019.09.10 18:04:57 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile java/Sonar way
2019.09.10 18:04:58 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile web/Sonar way
2019.09.10 18:04:58 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile flex/Sonar way
2019.09.10 18:04:58 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile xml/Sonar way
2019.09.10 18:04:58 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile php/Sonar way
2019.09.10 18:04:58 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile php/PSR-2
2019.09.10 18:04:58 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile php/Drupal
2019.09.10 18:04:58 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile vbnet/Sonar way
2019.09.10 18:04:59 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile ts/Sonar way
2019.09.10 18:04:59 INFO  web[][o.s.s.q.RegisterQualityProfiles] Update profile ts/Sonar way recommended
2019.09.10 18:04:59 INFO  web[][o.s.s.s.RegisterPermissionTemplates] Register permission templates
2019.09.10 18:04:59 INFO  web[][o.s.s.s.RenameDeprecatedPropertyKeys] Rename deprecated property keys
2019.09.10 18:04:59 INFO  web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.ws.WebServiceFilter@5577a5cc [pattern=UrlPattern{inclusions=[/api/issues/delete_comment.*, ...], exclusions=[/api/properties*, ...]}]
2019.09.10 18:04:59 INFO  web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.ws.DeprecatedPropertiesWsFilter@1a568c58 [pattern=UrlPattern{inclusions=[/api/properties/*], exclusions=[]}]
2019.09.10 18:04:59 INFO  web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.ws.WebServiceReroutingFilter@5d66ea0b [pattern=UrlPattern{inclusions=[/api/components/bulk_update_key, ...], exclusions=[]}]
2019.09.10 18:04:59 INFO  web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.authentication.InitFilter@6d8c0a08 [pattern=UrlPattern{inclusions=[/sessions/init/*], exclusions=[]}]
2019.09.10 18:04:59 INFO  web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.authentication.OAuth2CallbackFilter@7d112dc6 [pattern=UrlPattern{inclusions=[/oauth2/callback/*], exclusions=[]}]
2019.09.10 18:04:59 INFO  web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.authentication.ws.LoginAction@676699c2 [pattern=UrlPattern{inclusions=[/api/authentication/login], exclusions=[]}]
2019.09.10 18:04:59 INFO  web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.authentication.ws.LogoutAction@6986fe59 [pattern=UrlPattern{inclusions=[/api/authentication/logout], exclusions=[]}]
2019.09.10 18:04:59 INFO  web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.authentication.ws.ValidateAction@688e56a8 [pattern=UrlPattern{inclusions=[/api/authentication/validate], exclusions=[]}]
2019.09.10 18:04:59 INFO  web[][o.s.s.q.ProjectsInWarningDaemon] Counting number of projects in warning is not started as there are no projects in this situation.
2019.09.10 18:04:59 INFO  web[][o.s.s.p.p.PlatformLevelStartup] Running Community Edition
2019.09.10 18:04:59 INFO  web[][o.s.s.p.Platform] WebServer is operational
2019.09.10 18:05:19 ERROR web[AW0bK6IOcnnfhLp6AAAR][o.s.s.a.CredentialsExternalAuthentication] Error during authentication
org.sonar.plugins.ldap.LdapException: Unable to retrieve details for user ds.test.com/test in <default>
	at org.sonar.plugins.ldap.LdapUsersProvider.getUserDetails(LdapUsersProvider.java:84)
	at org.sonar.plugins.ldap.LdapUsersProvider.doGetUserDetails(LdapUsersProvider.java:58)
	at org.sonar.server.authentication.CredentialsExternalAuthentication.doAuthenticate(CredentialsExternalAuthentication.java:97)
	at org.sonar.server.authentication.CredentialsExternalAuthentication.authenticate(CredentialsExternalAuthentication.java:91)
	at org.sonar.server.authentication.CredentialsAuthentication.authenticate(CredentialsAuthentication.java:66)
	at org.sonar.server.authentication.CredentialsAuthentication.authenticate(CredentialsAuthentication.java:54)
	at org.sonar.server.authentication.ws.LoginAction.authenticate(LoginAction.java:121)
	at org.sonar.server.authentication.ws.LoginAction.doFilter(LoginAction.java:100)
	at org.sonar.server.platform.web.MasterServletFilter$GodFilterChain.doFilter(MasterServletFilter.java:126)
	at org.sonar.server.platform.web.MasterServletFilter.doFilter(MasterServletFilter.java:95)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:87)
	at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:71)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.CacheControlFilter.doFilter(CacheControlFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.SecurityServletFilter.doHttpFilter(SecurityServletFilter.java:76)
	at org.sonar.server.platform.web.SecurityServletFilter.doFilter(SecurityServletFilter.java:48)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.RedirectFilter.doFilter(RedirectFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.requestid.RequestIdFilter.doFilter(RequestIdFilter.java:63)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:62)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: javax.naming.NamingException: [LDAP: error code 1 - 000004DC: LdapErr: DSID-0C0907C2, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580]
	at java.naming/com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3198)
	at java.naming/com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3104)
	at java.naming/com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2895)
	at java.naming/com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1847)
	at java.naming/com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1770)
	at java.naming/com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1787)
	at java.naming/com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:418)
	at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:396)
	at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:378)
	at java.naming/javax.naming.directory.InitialDirContext.search(InitialDirContext.java:315)
	at org.sonar.plugins.ldap.LdapSearch.find(LdapSearch.java:130)
	at org.sonar.plugins.ldap.LdapSearch.findUnique(LdapSearch.java:143)
	at org.sonar.plugins.ldap.LdapUsersProvider.getUserDetails(LdapUsersProvider.java:80)
	... 51 common frames omitted

Hi Vamsi, you should specify Bind DN and Bind Password which username and password of an LDAP user to connect (or bind) with.
Ex:

ldap.bindDn=cn=user,OU=Users,OU=testgrp,OU=test,DC=com
ldap.bindPassword=secretpassword

When i configured with
"
ldap.bindDn=cn=user,OU=Users,OU=testgrp,OU=test,DC=com
ldap.bindPassword=secretpassword
"

Service didn’t get started.

So I changed the configuration as mentioned below.

sonar.security.realm=LDAP
ldap.url=ldap://ds.test.com:389
ldap.bindDn=test@ds.test.com
ldap.bindPassword=password
ldap.user.baseDn=CN=ds,CN=Users,DC=ds,DC=test,DC=com
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.emailAttribute=email
ldap.group.baseDn=CN=rootgrp,DC=ds,DC=test,DC=com
ldap.group.request=(&(objectClass=group)(member={dn}))

Log :

2019.09.11 17:13:31 ERROR web[AW0gIeSUC5tAWoYIAAAR][o.s.s.a.CredentialsExternalAuthentication] Error during authentication
org.sonar.plugins.ldap.LdapException: Unable to retrieve details for user ds.test.com/test in
at org.sonar.plugins.ldap.LdapUsersProvider.getUserDetails(LdapUsersProvider.java:84)
at org.sonar.plugins.ldap.LdapUsersProvider.doGetUserDetails(LdapUsersProvider.java:58)
at org.sonar.server.authentication.CredentialsExternalAuthentication.doAuthenticate(CredentialsExternalAuthentication.java:97)
at org.sonar.server.authentication.CredentialsExternalAuthentication.authenticate(CredentialsExternalAuthentication.java:91)
at org.sonar.server.authentication.CredentialsAuthentication.authenticate(CredentialsAuthentication.java:66)
at org.sonar.server.authentication.CredentialsAuthentication.authenticate(CredentialsAuthentication.java:54)
at org.sonar.server.authentication.ws.LoginAction.authenticate(LoginAction.java:121)
at org.sonar.server.authentication.ws.LoginAction.doFilter(LoginAction.java:100)
at org.sonar.server.platform.web.MasterServletFilter$GodFilterChain.doFilter(MasterServletFilter.java:126)
at org.sonar.server.platform.web.MasterServletFilter.doFilter(MasterServletFilter.java:95)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:87)
at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.sonar.server.platform.web.CacheControlFilter.doFilter(CacheControlFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.sonar.server.platform.web.SecurityServletFilter.doHttpFilter(SecurityServletFilter.java:76)
at org.sonar.server.platform.web.SecurityServletFilter.doFilter(SecurityServletFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.sonar.server.platform.web.RedirectFilter.doFilter(RedirectFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.sonar.server.platform.web.requestid.RequestIdFilter.doFilter(RequestIdFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-03100238, problem 2001 (NO_OBJECT), data 0, best match of:
‘CN=Users,DC=ds,DC=test,DC=com’
]
at java.naming/com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3183)
at java.naming/com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3104)
at java.naming/com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2895)
at java.naming/com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1847)
at java.naming/com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1770)
at java.naming/com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1787)
at java.naming/com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:418)
at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:396)
at java.naming/com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:378)
at java.naming/javax.naming.directory.InitialDirContext.search(InitialDirContext.java:315)
at org.sonar.plugins.ldap.LdapSearch.find(LdapSearch.java:130)
at org.sonar.plugins.ldap.LdapSearch.findUnique(LdapSearch.java:143)
at org.sonar.plugins.ldap.LdapUsersProvider.getUserDetails(LdapUsersProvider.java:80)
… 51 common frames omitted