cav*_*ick 11 ldap active-directory sonarqube
我一直在尝试使用LDAP身份验证插件(v1.4)设置SonarQube(v4.1),我无法让它对我的域用户进行身份验证.我的配置设置如下:
#########################
# 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}))
Run Code Online (Sandbox Code Playgroud)
并且日志输出以下似乎说LDAP连接正常工作的消息:
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
Run Code Online (Sandbox Code Playgroud)
但它似乎对我的用户不起作用,除非我使用本地用户.通过设置启用包装器的登录时:
wrapper.console.loglevel=DEBUG
Run Code Online (Sandbox Code Playgroud)
我在日志中得到以下错误,这实际上没有多大帮助!:)
2014.01.20 17:07:10 ERROR [rails] Error from external users provider:
Run Code Online (Sandbox Code Playgroud)
kev*_*npo 15
我刚刚开始使用SonarQube LDAP插件自己使用Active Directory.由于每个人的网络设置不同,您通常无法复制和粘贴配置.这是我用来确定公司正确配置的过程:
如文档中所述,此配置在文件中:
SONARQUBE_HOME/conf目录/ sonar.properties
按原样需要以下行:sonar.security.realm=LDAP.其他线路将因公司而异.
使用GUI工具测试配置对我很有帮助.我使用了Softerra LDAP Browser(LDAP管理员的免费只读版本).在那个LDAP浏览器中,
ldap.url=ldap://dc01.mycompany.local:3268.注意:如另一个答案所述,这可能需要与此屏幕中列出的端口不同.ldap.bindDnldap.bindPassword 应该是该用户的密码.ldap.user.baseDnldap.user.request.SonarQube文档中与AD一起使用的建议对我有用:(&(objectClass=user)(sAMAccountName={login})).让我解释一下为什么,如果它不适合你."{login}"将被SonarQube为其用户名输入的内容所取代,因此请求字符串(在LDAP浏览器中称为"过滤器")实际上是要搜索任何objectClass等于"user"的所有条目,他们的sAMAccountName等于您在SonarQube门户网站中输入的用户名文本框中输入的内容.在示例人员的信息中,应该至少有一个名为"objectClass"的字段.其中一个应该具有值"user".sAMAccountName也应该有一个字段.将该值用于SonarQube Web门户中的用户名文本框.感谢@aaron,他设法指出了我正确的方向!对于我的问题,这是自动发现和我连接的森林的问题.根据http://technet.microsoft.com/en-us/library/cc978012.aspx,您应该在连接到林时使用不同的端口,以便它可以搜索整个林而不是您正在连接的域(我认为在自动发现模式下可能不是正确的).最后,对我有用的配置是:
# General Configuration
ldap.realm=mydomain.com
sonar.security.realm=LDAP
sonar.authenticator.createUsers=true
sonar.security.savePassword=true
sonar.security.updateUserAttributes=true
ldap.url=ldap://dc.mydomain.com:3268
# User Configuration
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
Run Code Online (Sandbox Code Playgroud)
这实际上非常简单,不需要用户帐户连接.这意味着它处于SIMPLE身份验证模式(我似乎无法让它在其他任何方面工作),但这对我很好,因为它是一个内部唯一的系统.
| 归档时间: |
|
| 查看次数: |
20901 次 |
| 最近记录: |