LDAP 中的用户身份验证 java
User authentication in LDAP java
我是 LDAP 概念的新手,我能够成功连接到 LDAP 服务器。并且还能够插入和删除记录 to/from LDAP 数据库。接下来我需要做的是根据 LDAP 数据库记录对用户进行身份验证。
请帮帮我。
如果需要,我会分享源代码。
谢谢
我也使用 LDAP 进行身份验证。我推荐基于 [=14th=]token 的 auth。如果可以通过请求获得JWT
令牌。这个 repo java-jwt 会很有帮助。
如果您不介意使用 Spring 安全性,请查看 this 文章。它将简化实施和配置。这是 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(用户名) 和 security_credentials(密码) 创建一个 InitialDirContext 对象。如果您能够创建对象,则用户已通过身份验证,否则会捕获异常并抛出它。
如果您需要使用 JNDI 和 LDAP,我们有 several samples 可以帮助您。
我们更喜欢使用真正的 LDAP SDK,如 https://www.ldap.com/developing-clients-apps 所示(我们使用并推荐 Java 的 UnboundID LDAP SDK)
您可能还应该考虑使用 OpenID Connect,因为这样您就可以将身份验证抽象化,从而不知道身份验证是如何进行的。
我是 LDAP 概念的新手,我能够成功连接到 LDAP 服务器。并且还能够插入和删除记录 to/from LDAP 数据库。接下来我需要做的是根据 LDAP 数据库记录对用户进行身份验证。 请帮帮我。 如果需要,我会分享源代码。 谢谢
我也使用 LDAP 进行身份验证。我推荐基于 [=14th=]token 的 auth。如果可以通过请求获得JWT
令牌。这个 repo java-jwt 会很有帮助。
如果您不介意使用 Spring 安全性,请查看 this 文章。它将简化实施和配置。这是 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(用户名) 和 security_credentials(密码) 创建一个 InitialDirContext 对象。如果您能够创建对象,则用户已通过身份验证,否则会捕获异常并抛出它。
如果您需要使用 JNDI 和 LDAP,我们有 several samples 可以帮助您。
我们更喜欢使用真正的 LDAP SDK,如 https://www.ldap.com/developing-clients-apps 所示(我们使用并推荐 Java 的 UnboundID LDAP SDK)
您可能还应该考虑使用 OpenID Connect,因为这样您就可以将身份验证抽象化,从而不知道身份验证是如何进行的。