【问题标题】:Spring Boot LDAP AuthenticationSpring Boot LDAP 身份验证
【发布时间】:2017-04-12 07:48:27
【问题描述】:

我正在尝试使用 Spring Boot 测试 Active Directory 身份验证。我有一个 Active Directory 正在工作,我可以通过 LDAP 浏览器为我的管理员用户使用该用户 dn 访问它:

CN=Administrator,CN=Users,DC=contoso,DC=com 

我想在我的应用程序中使用 LDAP 作为身份验证管理器。文档中的简单示例如下:

@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 以及如何提供?

【问题讨论】:

    标签: spring authentication spring-boot active-directory ldap


    【解决方案1】:
    1. 没有。要从您的应用程序访问 LDAP / Active Directory,您应该在您的用户目录中创建一个“浏览用户”。浏览用户的 DN 和密码不应该是硬编码的,但是例如在应用程序的配置文件中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-30
      • 2022-01-20
      • 2018-03-11
      • 2020-09-08
      • 1970-01-01
      • 2020-05-22
      • 2020-08-07
      • 1970-01-01
      相关资源
      最近更新 更多