Sonarqube LDAP组筛选器不工作

Sonarqube LDAP组筛选器不工作,ldap,sonarqube,Ldap,Sonarqube,我正在Windows Server 2016上使用LDAP插件2.2运行Sonarqube 6.7.1.35068。我的LDAP工作正常,因为新用户可以使用其域凭据登录Sonarqube并创建帐户,但我的组筛选器不工作。我正在尝试根据特定的广告安全组成员身份筛选登录,但不幸的是,域上的所有用户都可以登录,因为组筛选不起作用。以下是我在属性文件中的LDAP配置: #----- LDAP configuration # General Configuration sonar.security.rea

我正在Windows Server 2016上使用LDAP插件2.2运行Sonarqube 6.7.1.35068。我的LDAP工作正常,因为新用户可以使用其域凭据登录Sonarqube并创建帐户,但我的组筛选器不工作。我正在尝试根据特定的广告安全组成员身份筛选登录,但不幸的是,域上的所有用户都可以登录,因为组筛选不起作用。以下是我在属性文件中的LDAP配置:

#----- LDAP configuration
# General Configuration
sonar.security.realm=LDAP
sonar.authenticator.downcase=true
ldap.url=ldap://ldap.domain.com:3268
ldap.bindDn=serviceaccount@ad.domain.com
ldap.bindPassword=********

# User Configuration
ldap.user.baseDn=dc=ad,dc=domain,dc=com
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail

# Group Configuration
ldap.group.baseDn=CN=Sonarqube,OU=Software Access,OU=Security Groups,OU=AD Groups,DC=ad,DC=domain,DC=com
ldap.group.request=(&(objectClass=group)(memberOf={dn}))
ldap.group.idAttribute=sAMAccountName
我已经为ldap.group.baseDn和
ldap.group.request值,但在基于AD组成员身份的用户筛选方面未取得任何成功。不幸的是,关于如何为Sonarqube配置这两个值,没有很好的具体示例。有人吗?

也在Windows Server 2016上运行Sonarqube 6.7.1和LDAP插件2.2 组筛选器配置是一个棘手的部分,对我来说,它的工作原理如下:

# User Configuration
ldap.user.baseDn=DC=lan,DC=domain,DC=de
ldap.user.realNameAttribute=cn
ldap.user.LastNameAttribute=sn
ldap.user.firstNameAttribute=givenName
ldap.user.emailAttribute=mail
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))

# Group Configuration
ldap.group.baseDn=DC=lan,DC=domain,DC=de
ldap.group.idAttribute=cn
ldap.group.request=(&(objectClass=group)(member={dn}))

组配置不是必需的。通过限制LDAP.user.request上的用户筛选器选项,可以基于特定的LDAP/AD组成员身份限制用户的访问:

ldap.user.request=&objectClass=usersAMAccountName={login}memberOf=CN=ldap组,OU=groups,DC=example,DC=com

我的最终工作配置如下:

#----- General Configuration
sonar.security.realm=LDAP
sonar.authenticator.downcase=true
ldap.url=ldap://ldap.domain.com:3268
ldap.bindDn=serviceaccount@ad.domain.com
ldap.bindPassword=********

#----- User Configuration
ldap.user.baseDn=dc=ad,dc=domain,dc=com
ldap.user.request=(&(objectClass=user)(sAMAccountName={login})(memberOf=CN=ldap-group,OU=groups,DC=example,DC=com))
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail

您希望您的LDAP筛选不匹配,因此不会对不是特定组成员的用户进行身份验证?是的,没错。如果用户是Sonarqube AD安全组的成员,则允许他们登录Sonarqube。如果用户不是Sonarqube AD安全组的成员,则不允许他们登录Sonarqube。那么这与Sonarqube本身无关,是吗?这与Sonarqube的LDAP组配置中所需的语法有关。我在我所有的工程解决方案中都用到了这个,JIRA,Jenkins,等等。。我需要澄清使用Sonarqube LDAP组配置根据广告组成员资格成功筛选用户所需的语法。提供的文档没有提供必要的详细信息。您正在寻找吗?谢谢您的回复,Rebase。查看您的配置,我找不到组的定义位置,这意味着位置在AD中,我希望定义性组映射在ldap.group.baseDn或ldap.group.request中。你在哪里定义了广告组?例如,我试图通过在我的ldap.group.baseDn值中定义我的组,如CN=Sonarqube、OU=Software Access、OU=Security Groups、OU=AD Groups、DC=AD、DC=domain、DC=com来对筛选器进行分组。@MarkConway好的,现在我明白了。我还以为你很难找到这些人。但是问题似乎只是得到了正确的baseDn设置,尽管我看到了差异,例如我有ldap.group.request=&objectClass=groupmember={dn}你有ldap.group.request=&objectClass=groupmemberOf={dn}@MarkConway刚刚在我们的广告中看到了一个Applicationgroup,你的设置似乎是正确的,但是用户超出了member,memberOf具有嵌套此组的组,这意味着尝试使用ldap.group.request=&objectClass=groupmember={dn}