使用Ldap进行worklight服务器身份验证

时间:2013-05-21 04:15:00

标签: ldap ibm-mobilefirst

我想使用ApacheDS LDAP对用户进行身份验证,然后将其与我的worklight服务器(自由配置文件)集成。 为此,我在http端点元素之后使用以下代码修改了server.xml。

   <ldapRegistry id=”ldap” >
   realm=”LdapRegistry” 
   host=”localhost” 
  port=”10389” 
  ignoreCase=”true”
  baseDN=”dc=partition1,dc=com”
  bindDN=”uid=admin,ou=system”
  userFilter=”(&(uid=%v)(objectclass=inetOrgPerson))”
  bindPassword=”secret”
  ldapType="ApacheDS 2.0.0"
  </ldapRegistry>
在authenticationconfig.xml

        "<securityTests>
    <customSecurityTest name="LDAPSecurityTest">
        <test isInternalUserID="true" realm="LDAPRealm"/>
    </customSecurityTest>

    <customSecurityTest name="LDAPSecurityTestForWLConsole">
        <test isInternalUserID="true" realm="WorklightConsole"/>
    </customSecurityTest>
</securityTests>

<realms>
    <realm loginModule="LDAPLoginModule" name="LDAPRealm">
          <className>com.worklight.UsernamePasswordJSONAuthenticator</className>
    </realm>

    <realm loginModule="StrongDummy" name="SampleAppRealm">
        <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className>
    </realm>

    <realm loginModule="LDAPLoginModule" name="WorklightConsole">
        <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className>
        <onLoginUrl>/console</onLoginUrl>
    </realm>
</realms>

<loginModules>
    <loginModule name="LDAPLoginModule">
        <className>com.worklight.LDAPLoginModule</className>
        <parameter name="ldapHost" value="ldap://localhost:10389"/>
        <parameter name="ldapDomain" value="localhost:10389"/>
        <parameter name="searchBase" value="dc=partition1,dc=com"/>

        <!-- 
            In case credentials are successfully validated check user's memberOf property for this string.
            Can be used to check whether user belongs to specific LDAP unit or group.
            Leave value empty to skip this check.
          -->


    </loginModule>

    <loginModule name="StrongDummy">
         <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
    </loginModule>

    <loginModule name="requireLogin">
<className>com.worklight.core.auth.ext.SingleIdentityLoginModule</className>
    </loginModule>
</loginModules>
  </tns:loginConfiguration>

worklight服务器控制台停止工作。 以下来自ibm站点和支持中心的LDAP登录模块,用于配置自由配置文件。 请帮助

2 个答案:

答案 0 :(得分:0)

我注意到您的LDAP conf使用了两种不同类型的引号 - “和”。这可能是原因吗?尝试将所有引号更改为“。

答案 1 :(得分:0)

第一点:我认为LDAP类型“ApacheDS 2.0.0”不正确 支持的类型是:

  1. Microsoft Active Directory
  2. 自定义
  3. IBM Lotus Domino Novell eDirectory
  4. IBM Tivoli Directory Server
  5. Sun Java System Directory Server
  6. Netscape Directory Server
  7. IBM SecureWay Directory Server
  8. 所以必须使用Custom。

    第二点:你必须添加userIdMap="*:uid" 所以尝试:

     <ldapRegistry id=”ldap” >
      realm=”LdapRegistry” 
      host=”localhost” 
      port=”10389” 
      ignoreCase=”true”
      baseDN=”dc=partition1,dc=com”
      bindDN=”uid=admin,ou=system”
      userFilter=”(&amp;(uid=%v)(objectclass=inetOrgPerson))”
      userIdMap="*:uid"
      bindPassword=”secret”
      ldapType="Custom"
     </ldapRegistry>