2016-07-13 52 views
4

Ich habe eine Instanz von Sonarqube 5.5 ausgeführt. Ich wollte das sonar-ldap-plugin 1.5.1 verwenden, um die Authentifizierung und Autorisierung an den Active Directory-Dienst meiner Firma zu delegieren.Sonarqube - Active Directory LDAP Fehlercode 49

Die Konfiguration für die LDAP-Plugin ist die folgende (einige Verschleierungs Modulo):

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 

Und der Sonarqube Server meldet den folgenden Fehler:

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^@] 
... 

ich genau die gleiche Abfrage mit ldapsearch tat und hat kein Problem gefunden. Also ich denke, der Active Directory-Dienst ist korrekt und akzeptiert diesen Benutzer und den DIGEST-MD5 SASL-Mechanismus.

Ich benutzte auch den gleichen Benutzer durch Sonarqube mit dem SIMPLE (unsicheren) Mechanismus und es arbeitete "richtig" auch. Ich habe auch versucht, den md5-Hash des Passwortes anstelle des Passworts zu setzen. Und ich versuchte eine Menge anderer Dinge, auf die ich nicht stolz bin ...

Ich lese viele ähnliche Probleme online (Stapelüberlauf, andere Quellen) und konnte keine Lösung finden. Siehst du etwas falsch in meiner Konfiguration? Bin ich dazu verdammt, den SIMPLE-Mechanismus zu verwenden und jedermanns Passwort im Klartext herumlaufen zu lassen? Ich kann weder CRAM-MD5 noch GSSAPI verwenden, da sie nicht vom Active Directory Service meiner Firma unterstützt werden.

Vielen Dank für Ihre Hilfe, Jc

+0

Bestätigen Sie, dass Sie das LDAP-Plugin und nicht das [Azure Active Directory-Plugin] (https://github.com/SonarQubeCommunity/sonar-auth-aad) verwenden? –

+0

Ja, ich benutze das LDAP-Plugin, Version 1.5.1 – JCh

+0

Hinweis ... Tipp ... –

Antwort

2

Der Fehlercode 49, hat einen Subcode darin, das Ihnen sagt, was die Fehlerursache war. Sie berichtet:

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

Die Daten 52e Teil ist der Schlüssel.

Überprüfen Sie die list I maintain here, und Sie werden sehen, dass 52e schlechtes Passwort für Ihre Bindung Benutzer bedeutet. 525 wäre für Ihren Benutzer ein schlechter DN, also haben Sie die richtige LDAP-DN, aber das falsche Passwort.

+0

Danke, dass Sie darauf hingewiesen haben, aber die Anmeldeinformationen sind korrekt. Dieselbe Anfrage unter Verwendung eines anderen Werkzeugs, z.B. ldapsearch zeigt, dass in der ldap-Abfrage selbst (Anmeldeinformationen, Port usw.) nichts falsch ist. Nun, was ich nicht sicher bin, ist, wenn die Sonarqube-Konfigurationsdatei das Passwort im Klartext nimmt oder wenn es irgendwie verschlüsselt werden sollte (und wenn ja, auf welche Weise), konnte ich es aus der Sonarqube-Dokumentation nicht herausfinden. – JCh

+0

@JCh Siehe [diese] (http://docs.sonarqube.org/display/SONAR/Settings+Encryption) Dokumentationsseite. Alle Teile in der Konfigurationsdatei können verschlüsselt werden. –

+0

Danke, ich habe es auch versucht, aber es hat nicht geholfen. Es gibt denselben Fehler. – JCh

0

Ich habe gerade dies festgestellt und es auf Sonarqube 6.x behoben. und ldap plugin 2.2

Die 52e wird ein bisschen irreführend sein, ich habe gefunden, wie es ungültiges Passwort sein kann, aber das ist auch möglich, wenn die Anmeldung falsch ist. http://ldapwiki.com/wiki/Common%20Active%20Directory%20Bind%20Errors

hatte ich folgend in meiner Config

ldap.bindDn=domain\query_account

Dies für andere Dinge gearbeitet hat, aber nicht Sonarqube. Deine Leitung sonar.log.level=DEBUG hat mir tatsächlich geholfen, ich habe sie eingeschaltet und es zeigte mir das Problem, ich musste dem \ Zeichen entkommen. Das hat also für mich funktioniert.

ldap.bindDn=domain\\query_account

könnte dies nicht das Problem sein, aber es mein definitiv war. Ich hoffe es hilft.