针对AD的春季启动安全性与UPN不同于域名

问题描述:

我的Active Directory中的用户使用电子邮件地址'[email protected]'或全名'firstname lastname'登录其帐户。 AD域名是'company.local'。针对AD的春季启动安全性与UPN不同于域名

问题是,当Spring确实是LDAP查询时,它会搜索'firstname [email protected]'。而这没有匹配。我可以通过将帐户的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; 
    } 
} 

我用另一个构造为ActiveDirectoryLdapAuthenticationProvider,域字符串设定为无关和添加的rootdn想通了自己:

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