【问题标题】:Authenticate users with LDAP server使用 LDAP 服务器对用户进行身份验证
【发布时间】:2015-07-09 12:51:06
【问题描述】:

我正在使用 LDAP 登录模块在混合应用程序中使用 LDAP 服务器对用户进行身份验证。在 authenticationConfig.xml 中,我配置了 loginModule 参数。

<parameter name="ldapSecurityPrincipalPattern" 
           value="uid={username}, cn=users,dc=kadrlar,dc=uz"/>

<parameter name="ldapSearchFilterPattern" 
           value="(uid={username})"/>

<parameter name="ldapSearchBase" 
           value="dc=kadrlar,dc=uz"/>

身份验证工作正常。这是用户的一部分。

我在 LDAP 中有一些用户,我必须使用 ldapSecurityPrincipalPatternvalue="uid={username}, cn=users,dc=core,dc=kadrlar,dc=uz"/&gt;

所有其他参数都相同。这是用户的另一部分。

如何在不更改 ldapSecurityPrincipalPattern 的值的情况下指定 ldapSecurityPrincipalPattern 的值,以便能够从用户的两个部分对任何用户进行身份验证?

【问题讨论】:

    标签: authentication ldap ibm-mobilefirst


    【解决方案1】:

    ldapSecurityPrincipalPattern 用于告诉 LDAP 适配器需要哪些识别信息才能成功验证用户身份。

    例如,如果您的 LDAP 服务器设置为使用电子邮件,则您的模式将是 {username}@domain.com。您的问题相当于询问如何让适配器对{username}@google.com{username}@stackoverflow.com 进行身份验证,这显然是不可能的,因为 LDAP 适配器没有处理多次尝试的功能以及处理失败所涉及的逻辑使用其他安全模式连接并重试。

    一种可能的解决方案是将模式设置为 {username}, 并强制最终用户传递包括域在内的完整电子邮件地址。

    同样,在您的情况下,您可以将ldapSecurityPrincipalPattern 设置为{username},并在实现中引入一些逻辑,即从最终用户那里获取登录名, 并决定是否设置username="uid={login}, cn=users,dc=kadrlar,dc=uz"username="uid={login}, cn=users,dc=core,dc=kadrlar,dc=uz"

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多