使用 jboss 安全域的 LDAP 身份验证

Posted

技术标签:

【中文标题】使用 jboss 安全域的 LDAP 身份验证【英文标题】:LDAP authentication using jboss security domain 【发布时间】:2015-12-26 10:18:36 【问题描述】:

在使用 spring 4.1.6、spring security 4.0.1 和 JavaConfig 的 JBOSS EAP 6 上运行的 Web 应用程序中,我们试图实现 LDAP 身份验证,而不是定义 LDAP 服务器的属性(url 等)在 configure(AuthenticationManagerBuilder auth) 方法中,我们希望从已经在容器上配置并具有所有需要的属性的 JBOSS 安全域中获取属性。

我们尝试了几件事并在网上搜索了实现此目的的方法,但未能找到解决方案。

这是我们目前拥有的:

/WEB-INF/jboss-web.xml: jboss-web 安全域 java:/jaas/ad-ldap 安全域 jboss-web

安全配置类:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter 

@Override
protected void configure(HttpSecurity http) throws Exception 
http.httpBasic().realmName("ad-ldap");
http.formLogin().loginPage("/login").loginProcessingUrl("/loginProcess");


@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception 
auth
.ldapAuthentication()
    .userSearchBase("OU=users,DC=local")
    .userSearchFilter("(sAMAccountName=0)")
    .groupSearchBase("OU=groups,DC=local")
    .groupSearchFilter("sAMAccountName=0");


谢谢

【问题讨论】:

你真的能够完成这项工作吗?如果可以,请您回复回复。 【参考方案1】:

您只需要在独立 XML 的安全域中定义 LDAP 服务器 URL。

http://www.mastertheboss.com/jboss-server/jboss-security/configure-jboss-with-ldap?start=1 但请注意,在上面的示例中,您的 web.xml 中的领域名称元素应该是:

<realm-name>LDAPAuth</realm-name>

https://docs.jboss.org/author/display/WFLY8/Examples

【讨论】:

感谢您的反馈。我仍然无法完成这项工作。我们正在使用 Java 配置,因此我们没有 web.xml 文件。我在 /WEB-INF 下有一个 jboss-web.xml,其安全域定义为:java:/jaas/ad-ldap。 Spring 不加载它,而是加载 Spring 附带的默认 LDAP 服务器。我在最初的帖子中添加了一些额外的信息。任何进一步的帮助将不胜感激。 试试:ad-ldap

以上是关于使用 jboss 安全域的 LDAP 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

带有证书和 LDAP 登录模块的 JBoss 密码堆栈

Spring 安全切换到 Ldap 身份验证和数据库权限

如何在 Spring 安全性中同时使用数据库和 LDAP 身份验证?

使用 LDAP 和组成员身份的 Spring 安全性

Grails - Spring 安全 ldap 活动目录身份验证 - 凭据错误错误

具有Spring安全性的LDAP身份验证