Ibm mobilefirst Worklight应用程序中心-Active Directory集成

Ibm mobilefirst Worklight应用程序中心-Active Directory集成,ibm-mobilefirst,worklight-appcenter,Ibm Mobilefirst,Worklight Appcenter,我正在尝试将IBM Worklight Application Center与AD集成。 它部署在WindowsServer2008R2企业虚拟机上的WebSphereLiberty配置文件上。 我正在使用此链接中的文档: 我使用server.xml中的此配置成功连接AD进行身份验证: <ldapRegistry id="ldap" realm="SampleLdapADRealm" host="ad.btb.hr" port="389" ignoreCa

我正在尝试将IBM Worklight Application Center与AD集成。 它部署在WindowsServer2008R2企业虚拟机上的WebSphereLiberty配置文件上。 我正在使用此链接中的文档:

我使用server.xml中的此配置成功连接AD进行身份验证:

<ldapRegistry id="ldap" realm="SampleLdapADRealm" 
                host="ad.btb.hr" port="389" ignoreCase="true" 
                baseDN="ou=BTB,dc=btb,dc=hr" 
                bindDN="<myBindDN>" 
                bindPassword="<myBindPW>"
                ldapType="Microsoft Active Directory" 
                sslEnabled="false"> 
    <activedFilters userFilter="(&amp;(sAMAccountName=%v)(objectClass=user))"
                    groupFilter="(&amp;(cn=%v)(objectcategory=group))" 
                    userIdMap="user:sAMAccountName" 
                    groupIdMap="*:cn" 
                    groupMemberIdMap="memberOf:member">
    </activedFilters>
    <contextPool enabled="true" initialSize="1" maxSize="0" timeout="0s" waitTime="3000ms" preferredSize="3"/>
    <ldapCache>
        <attributesCache size="4000" timeout="1200s" enabled="true" sizeLimit="2000"/>
        <searchResultsCache size="2000" timeout="600s" enabled="true" resultsSizeLimit="1000"/>
    </ldapCache>
</ldapRegistry>

<!-- Begin of configuration added by IBM Worklight installer. -->

<!-- Declare the IBM Application Center Console application. -->
<application id="appcenterconsole" name="appcenterconsole" location="appcenterconsole.war" type="war">
    <application-bnd>
        <security-role name="appcenteradmin">
            <group name="worklight-administrators"/>
        </security-role>
        <security-role name="appcenteruser">
            <group name="worklight-users"/>
        </security-role>
    </application-bnd>
</application>

<!-- Declare the IBM Application Center Services application. -->
<application id="applicationcenter" name="applicationcenter" location="applicationcenter.war" type="war">
    <application-bnd>
        <security-role name="appcenteradmin">
            <!-- <group name="appcentergroup"/> -->
            <group name="worklight-administrators"/>
        </security-role>
        <security-role name="appcenteruser">
            <group name="worklight-users"/>
        </security-role>
    </application-bnd>
    <classloader delegation="parentLast">
        <commonLibrary>
            <fileset dir="${wlp.install.dir}/lib" includes="com.ibm.ws.crypto.passwordutil_1.0.1.jar"/>
        </commonLibrary>
    </classloader>
</application>

然后我尝试配置ACL,以便使用以下配置将用户和组拉入App Center的“用户和组管理”部分:

<jndiEntry jndiName="ibm.appcenter.ldap.active" value="true"/>
<jndiEntry jndiName="ibm.appcenter.ldap.connectionURL" value="ldap://ad.btb.hr"/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.loginName" value="sAMAccountName"/>
<jndiEntry jndiName="ibm.appcenter.ldap.security.binddn" value="<myBindDN>"/>
<jndiEntry jndiName="ibm.appcenter.ldap.security.bindpwd" value="<myBindPW>"/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.base" value="ou=BTB,dc=btb,dc=hr"/>
<jndiEntry jndiName="ibm.appcenter.ldap.group.base" value="ou=BTB,dc=btb,dc=hr"/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.displayName" value="displayName"/>
<jndiEntry jndiName="ibm.appcenter.ldap.group.name" value="cn"/>
<jndiEntry jndiName="ibm.appcenter.ldap.group.uniquemember" value="member"/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.groupmembership" value="memberOf"/>
<jndiEntry jndiName="ibm.appcenter.ldap.cache.expiration.seconds" value="43200"/>
<jndiEntry jndiName="ibm.appcenter.ldap.user.filter" value='"(&amp;(sAMAccountName=%v)(objectClass=user))"'/>
<jndiEntry jndiName="ibm.appcenter.ldap.group.filter" value='"(&amp;(cn=%v)(objectcategory=group))"'/>

现在,我在访问App Center中的用户/组链接时遇到此错误:

[24.10.14.09:14:24:379 CEST]000000 1b com.ibm.puremeap.services.MobileServices E{ “id”:“5b5c3b4c-cb1d-4094-8e84-B11B315”, “消息”:“FWLAC0004E:无法访问LDAP服务器。”, “产品版本”:“6.2.0.00-20140613-0730” }


我错过了什么?

您使用的是非常旧的Worklight 6.2版本;更新您的设置以使用最新版本。
您可以从Eclipse>帮助>Eclipse市场获得最新的Worklight Studio。有关服务器工件,请访问IBM Fix Central网站

此外,上面还包含一个可能是您的bug的修复程序。
PI24446使用与LDAP中定义的登录名区分大小写的登录名不同的登录名连接到APPCENTER会导致错误,JNDI条目ibm.APPCENTER.LDAP.user.displayName.filter丢失。
尝试设置它。

通过添加/修改这两行,我解决了一个类似的问题

在我的例子中,它是
uid
而不是
sAMAccountName

jndiEntry jndiName=“ibm.appcenter.ldap.user.loginName”value=“uid”

jndiEntry jndiName=“ibm.appcenter.ldap.user.filter“value=”(&;(sAMAccountName=%v)(objectClass=person))”

我使用“person”作为对象类,因为在我的LDAP注册表配置中也提到了这一点

jndiEntry jndiName=“ibm.appcenter.ldap.user.displayName.filter“value=”(&;(cn=%v)(objectclass=person))”

组筛选器应该是正确的,因为我使用的是
Objectcategory=Group

jndiEntry jndiName=“ibm.appcenter.ldap.group.filter“value=”(&;(cn=%v)(objectcategory=group))”/>


所有与LDAP相关的信息都可以通过AD服务器进行验证。

我今天将尝试。谢谢我为displayName添加了过滤器,现在没有显示错误,但我仍然没有看到用户/组管理页面中列出的LDAP用户和组:(在这种情况下,您需要跟踪LDAP请求(例如,您可以使用网络协议分析器,如Wireshark,或在LDAP服务器上获取跟踪报告)谢谢。我会调查的-这是一个独立的服务器,所以我会访问thm Fix Central网站。。。