使用ApacheDS 2.0的Worklight LDAP身份验证

使用ApacheDS 2.0的Worklight LDAP身份验证,ldap,ibm-mobilefirst,Ldap,Ibm Mobilefirst,我正在尝试使用密码对ApacheDS中配置的用户进行身份验证,并从Worklight客户端进行调用 我无法从Worklight客户端传递用户名,我尝试了在客户端中使用的用户名占位符,但它不起作用。然后我尝试硬编码在ApachedsLDAP服务器中创建的uid及其工作原理。有人能帮我把客户端提供的用户名传递给LDAP服务器吗 我的authconfig文件: <className>com.worklight.core.auth.ext.LdapLoginModule</cl

我正在尝试使用密码对ApacheDS中配置的用户进行身份验证,并从Worklight客户端进行调用

我无法从Worklight客户端传递用户名,我尝试了在客户端中使用的用户名占位符,但它不起作用。然后我尝试硬编码在ApachedsLDAP服务器中创建的uid及其工作原理。有人能帮我把客户端提供的用户名传递给LDAP服务器吗

我的authconfig文件:

    <className>com.worklight.core.auth.ext.LdapLoginModule</className>
        <parameter name="ldapProviderUrl" value="ldap://localhost:10389"/>
        <parameter name="ldapTimeoutMs" value="2000"/>
        <parameter name="ldapSecurityAuthentication" value="simple"/>
        <parameter name="validationType" value="exists"/>
        <parameter name="ldapSecurityPrincipalPattern" value="uid=Raj,ou=users,ou=system"/>
        <parameter name="ldapSearchFilterPattern" value="(&amp;(uid={usernameInput})(objectclass=inetOrgPerson)"/>                        

com.worklight.core.auth.ext.LdapLoginModule


您使用的是
exists
validationType,这意味着如果LDAP连接成功,授权将通过。是否有任何语法需要注意。用于访问ldap服务器的用户名是{username}替换为验证器提供的用户名后的ldapSecurityPrincipalPattern参数。用于连接的密码是验证器提供的密码

比如说。我提供“Mike”作为用户名,“pass123”作为密码。身份验证程序将这些凭据发送到LdapLoginModule。如果我的ldapSecurityPrincipalPattern为:
uid={username},ou=users,ou=system
,则将尝试使用密码“pass123”连接到ldap服务器。如果登录成功,则授权成功

如果还希望查询ldap服务器以验证用户,则可以使用
searchPattern
validationType。可以将用户名替换为上述ldapsearchfilter模式。如果设置为此validationType,则只有当用户/密码组合可用于连接LDAP服务器并且查询返回至少一个结果时,授权才会成功

更多详细信息可在此处找到:

Mike,我试图更改添加的文件,但在验证类型和添加中存在,但出现错误。FWLSE0138W:LdapLoginModule身份验证失败。原因'javax.naming.AuthenticationException:[LDAP:错误代码49-无效的\u凭据:绑定失败:尝试查找不存在的条目:uid={usernameInputField},ou=users,ou=system]此处usernameInputField是我的占位符,而不是{usernameInputField},使用{username}。{username}密钥将由worklight server自动替换为在验证器级别输入的用户名。