我试图用Spring Boot测试Active Directory身份验证 . 我有一个Active Directory工作,我可以通过LDAP浏览器访问它与我的管理员用户dn:
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以及如何?
1 回答
否 . 要从应用程序访问LDAP / Active Directory,您应在用户目录中创建“浏览用户” . 浏览用户的DN和密码不应该是硬编码的,例如在您的应用程序的配置文件中 .
这主要取决于您的LDAP / AD设置 . 在Active Directory中,用户名通常存储在属性"sAMAccountName"中,该属性不是用户DN的一部分,因此
userDnPatterns
将不起作用 . 相反,提供用户搜索过滤器,例如,.userSearchFilter("(sAMAccountName={0})")
(很可能你需要更多,但目录管理员应该可以告诉你) . 额外的userSearchBase
也可能有帮助 . 但这不是Spring-而是LDAP特定的 . 同样,请向LDAP管理员咨询可能的配置项的建议值 .