我想根据active directory条目对用户进行身份验证。为此,我尝试使用springsecurityldap身份验证。网上提供的所有参考资料都是关于用ldif store实现身份验证机制的。我找不到任何有用的参考资料来解释ldap身份验证的实际用例,其中我们针对组织的activedirectory设置进行身份验证。就连 Spring 医生也这么说,但没有解释,
使用ldif文件不是生产系统的标准配置。但是,它对于测试目的或指南是有用的。
我只是无法理解这个ldap身份验证。我对典型的ldap体系结构及其条目结构有一定的了解,但无法理解在不知道其值的情况下如何对其公司的activedirectory进行身份验证 uid
, ou
, dc
.
在windows上知道入口路径的一种方法是运行 gpresult /r | find "OU"
根据这篇sf的文章 CN=Malick\, AsifKamran,OU=Users,OU=Home Users,OU=Office Areas,DC=regionname,DC=company,DC=net
是否所有用户都有上述相同的入口路径?这些信息足够我通过springldap进行身份验证吗?我试着遵循springldap认证指南,但没有效果。每次我输入系统凭据(因为我的系统配置为ad),登录页都会抱怨凭据不正确。
按照上述指南,以下是我的代码:
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest()
.fullyAuthenticated()
.and()
.formLogin();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.userDnPatterns("uid={0}, ou=Users, ou=Home Users, ou=Office Areas")
.groupSearchBase("ou=Users")
.contextSource()
.url("ldap://regionname.company.net:3268/dc=regionname, dc=company, dc=net")
.and()
.passwordCompare()
.passwordEncoder(new BCryptPasswordEncoder())
.passwordAttribute("userPassword");
}
}
我只是不确定我的代码是否正确。我只是试着尽我所能的理智来填充 userDnPatterns
, groupSearchBase
, url
, passwordAttribute
. 就像我说的,我只是不确定我的方法是否正确。我只有一个登录页面 Bad Credentials
信息。
我还想知道当开发人员手头上有ldap身份验证任务时,他应该怎么做;在哪里查找条目路径格式和其他内容。
暂无答案!
目前还没有任何答案,快来回答吧!