2016-11-28 364 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管理員諮詢可能的配置項目的建議值。