使用 ApacheDS 2.0 的 Worklight LDAP 认证
Posted
技术标签:
【中文标题】使用 ApacheDS 2.0 的 Worklight LDAP 认证【英文标题】:Worklight LDAP authentication using ApacheDS 2.0 【发布时间】:2014-04-30 11:56:15 【问题描述】:我正在尝试使用密码验证在 ApacheDS 中配置的用户并从 Worklight 客户端调用。
我无法从 Worklight 客户端传递用户名,我尝试了在客户端中使用过的用户名占位符,但它不起作用。然后我尝试硬编码在 ApacheDS LDAP 服务器中创建的 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="(&(uid=usernameInput)(objectclass=inetOrgPerson)"/>
有什么语法我需要注意<parameter name="ldapSecurityPrincipalPattern"
“
【问题讨论】:
【参考方案1】:您正在使用exists
验证类型,这意味着如果 LDAP 连接成功,授权将通过。用于访问 ldap 服务器的用户名是 ldapSecurityPrincipalPattern 参数后的 username 替换为身份验证器提供的用户名。用于连接的密码是认证者提供的密码。
例如。我提供“Mike”作为用户名,并提供“pass123”作为我的密码。身份验证器会将这些凭据发送到 LdapLoginModule。如果我的 ldapSecurityPrincipalPattern 是:uid=username,ou=users,ou=system
,则将使用密码“pass123”尝试以uid=Mike,ou=users,ou=system
连接到 ldap 服务器。如果登录成功,则授权成功。
如果您还想查询 ldap 服务器以验证用户,您可以使用 searchPattern
validationType。用户名可以像上面一样替换为 ldapSearchFilterPattern。如果设置为这个validationType,只有当用户/密码组合可以用来连接LDAP服务器并且查询返回至少一个结果时,授权才会成功。
更多细节可以在这里找到: http://pic.dhe.ibm.com/infocenter/wrklight/v5r0m6/index.jsp?topic=%2Fcom.ibm.worklight.help.doc%2Fdevref%2Fr_ldap_login_module.html
【讨论】:
Mike,我尝试更改添加的文件存在于验证类型中并添加,以上是关于使用 ApacheDS 2.0 的 Worklight LDAP 认证的主要内容,如果未能解决你的问题,请参考以下文章