SonarQube de l'Authentification LDAP semble à charger, mais ne permet pas de connexion par le biais d'utilisateur de domaine
J'ai essayé de configuration de SonarQube (v4.1) avec l'authentification LDAP plugin (v1.4) et je ne peux pas le faire authentifier mon d'utilisateur de domaine. Ma config est la configuration comme suit:
#########################
# LDAP configuration
#########################
# General Configuration
sonar.security.realm=LDAP
sonar.security.savePassword=true
sonar.security.updateUserAttributes=true
sonar.authenticator.downcase=true
sonar.authenticator.createUsers=true
ldap.authentication=simple
ldap.realm=mydomain.co.uk
ldap.bindDn=CN=USERNAME,OU=developers,DC=mydomain,DC=co,DC=uk
ldap.bindPassword=PASSWORD
# User Configuration
#ldap.user.baseDn=OU=developers,DC=mydomain,DC=co,DC=uk
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
# Group Configuration
ldap.group.baseDn=CN=Domain Users,CN=Users,DC=adastra,DC=co,DC=uk
ldap.group.request=(&(objectClass=group)(member={dn}))
et le journal des sorties suivantes messges semblent dire que la connexion LDAP fonctionne bien:
2014.01.20 16:12:32 INFO [org.sonar.INFO] Security realm: LDAP
2014.01.20 16:12:32 INFO [o.s.p.l.LdapSettingsManager] Auto discovery mode
2014.01.20 16:12:32 INFO [o.s.p.l.LdapSettingsManager] Detected server: ldap://dc02.mydomain.co.uk:389
2014.01.20 16:12:32 INFO [o.s.p.l.LdapSettingsManager] User mapping: LdapUserMapping{baseDn=dc=mydomain,dc=co,dc=uk, request=(&(objectClass=user)(sAMAccountName={0})), realNameAttribute=cn, emailAttribute=mail}
2014.01.20 16:12:32 INFO [o.s.p.l.LdapSettingsManager] Group mapping: LdapGroupMapping{baseDn=CN=Domain Users,CN=Users,DC=mydomain,DC=co,DC=uk, idAttribute=cn, requiredUserAttributes=[dn], request=(&(objectClass=group)(member={0}))}
2014.01.20 16:12:32 INFO [o.s.p.l.LdapContextFactory] Test LDAP connection on ldap://dc02.mydomain.co.uk:389: OK
2014.01.20 16:12:32 INFO [org.sonar.INFO] Security realm started
Mais il ne semble tout simplement pas travailler pour mon utilisateur, sauf si j'utilise un utilisateur local. Lors de l'activation de la journalisation sur l'emballage par le cadre:
wrapper.console.loglevel=DEBUG
J'obtiens l'erreur suivante dans les logs qui n'a pas vraiment beaucoup! 🙂
2014.01.20 17:07:10 ERROR [rails] Error from external users provider:
OriginalL'auteur caveman_dick | 2014-01-20
Vous devez vous connecter pour publier un commentaire.
J'ai travaillé par le biais de l'obtention de la SonarQube plugin LDAP pour travailler avec Active Directory moi-même. Puisque tout le monde de réseau est configuré différemment, souvent, vous ne pouvez pas simplement copier et coller une configuration. Voici le processus que j'ai utilisé pour déterminer la configuration correcte dans mon entreprise:
Comme indiqué dans le la documentation, cette configuration se passe dans le fichier:
La ligne suivante est requise en tant que-est:
sonar.security.realm=LDAP
. D'autres lignes seront différentes par entreprise.Il a été utile pour moi de tester la configuration avec un outil graphique. J'ai utilisé le Softerra LDAP Browser (libre en lecture seule version de l'Administrateur LDAP). Dans ce Navigateur LDAP,
ldap.url=ldap://dc01.mycompany.local:3268
. REMARQUE: Comme indiqué dans une autre réponse, il peut être un autre port que celui présenté dans cet écran.ldap.bindDn
ldap.bindPassword
devrait être que le mot de passe utilisateur.ldap.user.baseDn
ldap.user.request
. La suggestion de la SonarQube docs à utiliser avec AD fonctionné pour moi:(&(objectClass=user)(sAMAccountName={login}))
. Laissez-moi vous expliquer pourquoi, dans le cas où il ne fonctionne pas pour vous. Le "{login}" va être remplacé par ce que la SonarQube entre dans leur nom d'utilisateur, de sorte que la demande de la chaîne (qui est appelé "Filtre" dans le Navigateur LDAP) est essentiellement en disant à la recherche de toutes les entrées avec tout objectClass égal à "utilisateur" et leur sAMAccountName égal à tout ce qui est tapé dans la zone de texte nom d'utilisateur dans votre SonarQube portail web. À l'intérieur de l'échantillon de la personne info, il devrait y avoir au moins un champ appelé "objectClass". L'un de ceux qui doit avoir la valeur "utilisateur". Il devrait également être un champ pour sAMAccountName. Utilisez cette valeur pour la zone de texte nom d'utilisateur dans votre SonarQube portail web.Désolé, cette question a déjà une réponse spécifique à la discussion de la question. Le lien que j'ai posté était une façon plus générale, la solution qui je pense sera utile pour les personnes qui pourraient trouver ce post, mais n'ont pas tout à fait le même problème. Cela ne semble pas comme un double de moi, mais je ne peux pas penser à un moyen de l'adapter davantage à la question précise qui soit.
Je ne sais rien à propos de SonarQube, donc je ne peux pas vous aider avec la "bonne" chose à faire, mais je peux vous dire que l'affichage d'un lien seule réponse est la mauvaise chose à faire. Voir: Votre réponse est dans un autre château: quand est-ce une réponse pas de réponse?
OK, merci. J'ai déplacé la réponse ici car je pense que c'est l'endroit plus adapté (et l'a supprimé de son emplacement d'origine, car il est maintenant marqué comme un double de celui-ci).
OriginalL'auteur kevinpo
Grâce à @aaron qui a réussi à me diriger dans la bonne direction! Pour ma question, c'était un problème avec l'auto-découverte et de la forêt, j'ai été connectez. Selon http://technet.microsoft.com/en-us/library/cc978012.aspx vous devez utiliser un port différent lors de la connexion à une forêt de sorte qu'il peut chercher l'ensemble de la forêt plutôt que le nom de domaine que vous arriver à se connecter (qui, je suppose, peut-être pas le bon un seul en auto-mode de découverte). À la fin de la configuration qui a fonctionné pour moi a été:
Qui est en fait assez simple et ne nécessite pas un compte d'utilisateur pour se connecter avec. Cela signifie qu'il est en SIMPLE mode d'authentification (je n'arrive pas à le faire fonctionner dans n'importe quoi d'autre) mais c'est bien avec moi que c'est une interne du système.
Vous ne savez pas si c'est un ActiveDirectory de la terminologie. Dans notre cas est-il de multiples domaines qui ont un niveau de confiance entre eux. Pas familier avec LDAP, donc ne sais pas si il y a un équivalent.
OriginalL'auteur caveman_dick
Je suis à l'aide de SonarQube 3.7.3 et j'ai attaché ma configuration qui fonctionne. J'espère que ce serait utile.
avez-vous des serveur ldap ou active directory?
Active Directory
Je vois que vous êtes en utilisant le Groupe de Configuration. Pouvez-vous supprimer de la configuration et de test?
Déjà essayé de l'enlever. 🙁 Je pense que je doit avoir tout essayé différentes combinaisons d'options de configuration. Je me demandais si il y a un bug dans la version que j'utilise...
OriginalL'auteur Eddú Meléndez
Mon Fix
J'avais soigneusement vérifié mes paramètres, au point même de l'aide de l'identifiant du fichier "mappage de l'Utilisateur" ligne de sortie de configurer un manuel de la commande ldapsearch de commande et vérifiez que mon utilisateur a été récupéré correctement.
Pour une raison quelconque, la spécification de ce paramètre fixe pour moi:
Pourquoi?
Cet attribut est censé être en option et par défaut à la cn de toute façon, mais il ne fonctionne que pour moi si je le spécifier manuellement. Ce peut-être un bug.
Débogage avec la commande ldapsearch
ldapsearch peut vous permettre de contourner l'application de requête LDAP directement.
J'ai regardé dans le fichier journal pour cette ligne:
Puis construit un ldapsearch commande comme:
Si vous obtenez de véritables infos de l'utilisateur en arrière, cela signifie que les paramètres de base sont à droite. C'est un indice que quelque chose ne va pas.
OriginalL'auteur jtpereyda
http://blogs.msdn.com/b/visualstudioalm/archive/2015/11/13/support-for-active-directory-and-single-sign-on-sso-in-the-sonarqube-ldap-plugin.aspx
Avec la nouvelle v1.5, une seule ligne est nécessaire:
Configuration LDAP
sonar.de sécurité.realm=LDAP
OriginalL'auteur Jirong Hu
En utilisant le port 3268 a fait le tour pour moi. Voici ma configuration qui fonctionne avec SonarQube 5.0.1 et Active Directory:
OriginalL'auteur Nathan
Aucune des solutions avant que travaillé pour moi, mais c':
Mon serveur Ldap n'besoins d'authentification, donc je ne peux pas l'éviter. Si elle ne fonctionne pour vous, essayez de ne pas especify la
ldap.user.request
: tout dépend de la configuration de vos réseaux serveur LDAP.(&(objectClass=inetOrgPerson)(uid={login}))
OriginalL'auteur EliuX