Spring boot security против AD с UPN, отличным от имени домена
Пользователи в моей Active Directory входят в свои учетные записи с адресом электронной почты "firstname.lastname@company.no" или полным именем "firstname фамилия". AD-домен - это "company.local".
Проблема в том, что когда Spring выполняет LDAP-запрос, он ищет "firstname lastname@company.local". И это не дает совпадений. Я могу опустить ошибку, изменив суффикс upn для учетной записи на.local, но это не вариант для производства.
Как настроить Spring Boot, чтобы не добавлять домен в запросе?
Настроил Spring Boot с Spring Security со следующей настройкой (следуя этому руководству).
Соответствующая конфигурация:
@configuration
public class MyWebSecurityConfigurer extends WebSecurityConfigurerAdapter {
@Bean
public AuthenticationProvider activeDirectoryAuthenticationProvider() {
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider("company.local","ldap://domaincontroller:389");
provider.setSearchFilter("(cn={0})");
return provider;
}
}
1 ответ
Я сам понял это, используя другой конструктор для ActiveDirectoryLdapAuthenticationProvider, установив строку домена в ничего и добавив rootDN:
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider("","ldap://domaincontroller:389","DC=company,DC=local");