Spring Security集成Active Directory如何配置bindDN与绑定密码
Spring Security 集成LDAP Bind认证配置方案
代码示例
你可以直接移除原配置中的passwordCompare相关逻辑,补充运维提供的bindDN和bindPassword到上下文配置中即可,修改后完整配置如下:
@Override public void configure(final AuthenticationManagerBuilder auth) throws Exception { auth.ldapAuthentication() // 配置用户DN匹配规则,如果用户分布在多个ou下可以替换为下方的用户搜索配置 .userDnPatterns("uid={0},ou=people") .groupSearchBase("ou=groups") .contextSource() // LDAP服务地址 .url("ldap://localhost:8389/dc=springframework,dc=org") // 运维提供的有权限搜索用户的bindDN,按照实际提供的值替换即可 .userDn("cn=ldap-search,dc=springframework,dc=org") // 对应bindDN的访问密码,按照实际提供的值替换即可 .password("你的bind账号密码") .and(); // 无需配置passwordCompare相关逻辑,默认走bind认证流程 }
配置说明
- 认证逻辑说明:配置bind账号后,Spring Security会先使用配置的bindDN和bindPassword连接LDAP服务,查询到登录用户的完整DN,再用该DN和用户输入的登录密码尝试绑定LDAP服务,绑定成功即认证通过,不需要读取用户的密码属性,符合你的LDAP服务要求。
- 如果你需要更灵活的用户搜索规则,可以将
userDnPatterns替换为用户搜索配置:.userSearchBase("ou=people") .userSearchFilter("(uid={0})")
内容的提问来源于stack exchange,提问作者user3093845
相关产品推荐
相关产品推荐

