security无ldif生产的ldap身份验证

zvokhttg  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(229)

我想根据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身份验证任务时,他应该怎么做;在哪里查找条目路径格式和其他内容。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题