首页 文章

Spring Boot LDAP身份验证

提问于
浏览
0

我试图用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 回答

  • 0
    • 否 . 要从应用程序访问LDAP / Active Directory,您应在用户目录中创建“浏览用户” . 浏览用户的DN和密码不应该是硬编码的,例如在您的应用程序的配置文件中 .

    • 这主要取决于您的LDAP / AD设置 . 在Active Directory中,用户名通常存储在属性"sAMAccountName"中,该属性不是用户DN的一部分,因此 userDnPatterns 将不起作用 . 相反,提供用户搜索过滤器,例如, .userSearchFilter("(sAMAccountName={0})") (很可能你需要更多,但目录管理员应该可以告诉你) . 额外的 userSearchBase 也可能有帮助 . 但这不是Spring-而是LDAP特定的 . 同样,请向LDAP管理员咨询可能的配置项的建议值 .

相关问题