[英]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.