针对AD的Spring启动安全性,UPN与域名不同

时间:2017-06-12 11:07:46

标签: spring spring-boot spring-security active-directory unboundid-ldap-sdk

我的Active目录中的用户使用电子邮件地址“firstname.lastname@company.no”或全名“firstname lastname”登录其帐户。 AD域是'company.local'。

问题是,当Spring执行LDAP查询时,它会搜索“firstname lastname@company.local”。并没有给出任何匹配。我可以通过将帐户的upn-suffix更改为.local来省略错误,但这不是生产的选项。

如何配置Spring Boot以不在查询中附加域?

使用Spring Security配置Spring Boot,并进行以下设置(遵循this教程)。

相关配置:

@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 个答案:

答案 0 :(得分:0)

我通过使用ActiveDirectoryLdapAuthenticationProvider的另一个构造函数,将域字符串设置为空并添加rootDN来自己想出来:

ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider("","ldap://domaincontroller:389","DC=company,DC=local");