2016-11-28 215 views
0

我正在尝试使用Spring Boot测试Active Directory身份验证。我有一个Active Directory的工作,我可以通过LDAP浏览器访问它,以我的管理员用户与用户DN:Spring Boot LDAP身份验证

CN=Administrator,CN=Users,DC=contoso,DC=com 

我想在我的应用程序使用LDAP身份验证管理器。从docs简单的例子如下:

@Autowired 
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
    auth 
      .ldapAuthentication() 
      .userDnPatterns("CN={0},CN=Users,DC=contoso,DC=com") 
      .groupSearchBase("ou=groups") 
      .contextSource() 
      .managerDn("CN=Administrator,CN=Users,DC=contoso,DC=com") 
      .managerPassword("myadminpassword") 
      .url("ldap://192.168.1.1:389"); 
} 

首先,我应该提供管理员密码来连接Active Directory这样的登录?

其次,我应该提供groupSearchBase和userDnPatterns,以及如何?

回答

0
  1. 否。对于从应用程序访问LDAP/Active Directory,您应该在用户目录中创建一个“浏览用户”。浏览用户的DN和密码不应被硬编码,但例如在您的应用程序的配置文件中。

  2. 这主要取决于您的LDAP/AD设置。在Active Directory中,用户名通常存储在属性“sAMAccountName”中,该属性不属于用户的DN,因此userDnPatterns将不起作用。相反,提供一个用户搜索过滤器,例如.userSearchFilter("(sAMAccountName={0})")(很可能你需要更多,但目录的管理员应该能够告诉你)。额外的userSearchBase也可能有帮助。但是这不是Spring-,而是LDAP特定的。再次向LDAP管理员咨询可能的配置项目的建议值。