繁体   English   中英

LDAP Java中的用户身份验证

[英]User authentication in LDAP java

我是LDAP概念的新手,并且能够成功连接到LDAP服务器。 并且还能够在LDAP数据库之间插入和删除记录。 接下来需要做的是基于LDAP数据库记录对用户进行身份验证。请帮助我。 如果需要,我将分享源代码。 谢谢。

如果您需要使用JNDI和LDAP,我们有几个样本可以为您提供帮助。

我们更喜欢使用真实的LDAP SDK,如https://www.ldap.com/developing-clients-apps所示(我们使用和推荐Java的UnboundID LDAP SDK)

您可能还应该考虑使用OpenID Connect,因为这样您就可以抽象化身份验证以与身份验证的发生方式无关。

我还使用LDAP进行身份验证。 我建议基于令牌的auth 如果可以通过请求获取JWT令牌。 这个repo java-jwt将很有帮助。

如果你不介意使用Spring Security,看看这个文章。 它将简化实施和配置。 这是LDAP配置示例:

auth.authenticationProvider(ldapAuthenticationProvider)
    .ldapAuthentication()
    .ldapAuthoritiesPopulator(ldapAuthoritiesPopulator)
    .userSearchBase("ou=users")
    .userSearchFilter("(uid={0})")
    .groupSearchBase("ou=roles")
    .groupSearchFilter("(member={0})")
    .groupRoleAttribute("cn")
    .contextSource(contextSource);

尝试使用要认证的用户的security_principal(用户dn)和security_credentials(密码)创建InitialDirContext对象。 如果您能够创建该对象,则该用户已通过身份验证,否则将捕获该异常并将其引发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM