Проверка подлинности Sonarqube LDAP не проходит
Я пытаюсь установить sonarqube 7.7 с аутентификацией ldap на активный сервер каталогов, и я не могу заставить его работать. Я скопировал настройки с другого сервера, который работает на том же хосте, и его настройки ldap работают.
Это моя текущая конфигурация в sonarqube:
ldap.url=ldap://myADserver.mydomain.local:389
ldap.bindDn="CN=myldapuser,OU=Users,DC=mydomain,DC=local"
# ldap.bindPassword=mypassword
ldap.authentication=simple
ldap.realm=mydomain.local
ldap.user.baseDn="OU=myadgroup,DC=mydomain,DC=local"
ldap.user.request="(&(objectClass=user)(sAMAccountName={login}))"
ldap.user.realNameAttribute=cn
Если я предоставляю пароль, sonarqube выключается во время запуска с этим сообщением об ошибке в web.log:
Caused by: javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C09042F, comment: AcceptSecurityContext error, data 52e, v2580
Это сообщение, очевидно, означает, что пользователь правильный, но пароль неверный. Тем не менее, пароль работает как на другом сервере, так и в ldapsearch.
Если я закомментирую пароль, как описано выше, sonarqube запускается, но не может аутентифицировать пользователей ldap. Я могу войти с правами администратора по умолчанию.
DEBUG web[AWqxWJwHqJPbGHfaAAAX][o.s.p.l.LdapUsersProvider] User mypersonaluser not found in <default>
ERROR web[AWqxWJwHqJPbGHfaAAAX][o.s.s.a.CredentialsExternalAuthentication] Error during authentication
org.sonar.plugins.ldap.LdapException: Unable to retrieve details for user mypersonaluser in <default>
Caused by: javax.naming.directory.InvalidSearchFilterException: invalid attribute description
DEBUG web[AWqxWJwHqJPbGHfaAAAX][auth.event] login failure [cause|Unable to retrieve details for user mypersonaluser in <default>][method|FORM][provider|REALM|LDAP][IP|server_internal_IP|office_pub_IP][login|mypersonaluser]
Для полноты просмотрите конфигурацию другого сервера и командную строку ldapsearch:
base = "OU=myadgroup,DC=mydomain,DC=local",
bind_dn = "CN=myldapuser,CN=Users,DC=mydomain,DC=local",
host = "myADserver.mydomain.local",
label = "ldap",
method = "plain",
password = "mypassword",
port = 389,
uid = "sAMAccountName"
ldapsearch -D "cn=myldapuser,cn=users,DC=mydomain,DC=local" -p 389 -h myADserver.mydomain.local -b "OU=myadgroup,DC=mydomain,DC=local" "(&(objectClass=user)(sAMAccountName=mypersonaluser))" -u myldapuser -w mypassword
Что не так с моей конфигурацией sonarqube и как я могу это исправить?
1 ответ
Похоже, у вас поле пароля закомментировано #?
# ldap.bindPassword=mypassword
Вам также не нужны "" вокруг параметров.
Если ваш сервер не разрешает анонимный доступ к каталогу LDAP, вам необходимо установить BindBn и BindPassword.
# Bind DN is the username of an LDAP user to connect (or bind) with.
ldap.bindDn=cn=user,OU=ou,DC=mycompany,DC=local
# Bind Password is the password of the user to connect with.
ldap.bindPassword=secret