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");
Другие вопросы по тегам