针对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");