使用电子邮件字段而不是UID使用Worklight进行LDAP身份验证

时间:2014-05-15 13:50:21

标签: ldap ibm-mobilefirst

我目前正在尝试使用带有Worklight的LDAP loginModule对移动应用程序用户进行身份验证。

我没有使用UID属性作为用户名,而是希望通过电子邮件地址对用户进行身份验证(LDAP用户条目中的“mail”字段)。

我阅读了IBM Worklight文档并按照教程进行操作,但我真的不明白如何使用LDAP登录模块。 我试过这个loginModule配置:

<loginModule name="LDAPLoginModule">
        <className>com.worklight.core.auth.ext.LdapLoginModule</className>
        <parameter name="ldapProviderUrl" value="ldap://localhost:389"/>
        <parameter name="ldapTimeoutMs" value="2000"/>
        <parameter name="ldapSecurityAuthentication" value="simple"/>
        <parameter name="validationType" value="searchPattern"/>
        <parameter name="ldapSecurityPrincipalPattern" value="{username}"/>
        <parameter name="ldapSearchFilterPattern" value="(mail={username})"/>
        <parameter name="ldapSearchBase" value="ou=people,dc=mycompany,dc=com"/>
    </loginModule>

但LDAP返回错误409:凭据无效。

你有想法帮助我吗?

非常感谢!

2 个答案:

答案 0 :(得分:0)

请使用此link了解与示例项目相关的Worklight相关示例项目。

您也可以在Authentication and security

下找到LDAP示例项目

AFAIK

  • simple ldapSecurityAuthentication用于以完全限定的DN作为明文发送密码,并使用LDAP_Simple_绑定请求连接到LDAP服务器
  • 强ldapSecurityAuthentication是一种更强大的身份验证方法,可能需要签名证书或其他方法来验证用户。

我不确定ldapSecurityAuthentication的无选项。

上面的信息是我从LDAP管理员那里得到的。我也是LDAP的新手

答案 1 :(得分:0)

感谢您的答案,这些答案对我有很多帮助。

应用程序要求在本周开始时发生了变化,我现在需要使用UID对用户进行身份验证。 我已成功完成此配置:

<loginModule name="LDAPLoginModule">
        <className>com.worklight.core.auth.ext.LdapLoginModule</className>
        <parameter name="ldapProviderUrl" value="ldap://localhost:389"/>
        <parameter name="ldapTimeoutMs" value="2000"/>
        <parameter name="ldapSecurityAuthentication" value="simple"/>
        <parameter name="validationType" value="searchPattern"/>
        <parameter name="ldapSecurityPrincipalPattern" value="uid={username},OU=people,DC=mycompany,DC=com"/>
        <parameter name="ldapSearchFilterPattern" value="(uid={username})"/>
        <parameter name="ldapSearchBase" value="OU=people,DC=mycompany,DC=com"/>
    </loginModule>

它的工作非常顺利,所以我的问题得到了解决。

但是,要解决这篇文章,我仍在尝试使用电子邮件地址对用户进行身份验证,但我不知道如何执行此操作。也许唯一的解决方案是使用自定义身份验证模块并使用LDAP Java库吗?

非常感谢。