0

我有一个类似的问题:

基于 Tomcat 配置的 Worklight WAS Liberty 配置文件配置

@Kristof:你知道怎么做吗?

我正在使用openldap。所以我的 ldapType 是自定义的。所以我的配置是:

<ldapRegistry 
    baseDN="ou=people,dc=my-domain,dc=com" 
    ldapType="Custom"
    port="389" 
    host="MyServerHost" 
    id="myLdap"
    bindDN="" 
    bindPassword=""
    searchTimeout="300000m" 
    recursiveSearch="true">
    <customFilters
        id="customFilters"
        userFilter="(uid={0})"
        userIdMap="*:uid"
        groupFilter="(member={0})"
        groupIdMap="*:cn"/>         
</ldapRegistry>

我究竟做错了什么?我尝试使用类似的东西

<customFilters
    id="customFilters"
    userFilter="(&amp;(uid=%v)(objectClass=inetOrgPerson))"
    groupFilter="(&amp;(cn=%v)(|(objectclass=organizationalUnit)))"
    groupMemberIdMap="posixGroup:memberUid"/>

但这也不能解决问题。问题是这一切都代表什么?我不知道 objectClass 是什么......或者价值 inetOrgPerson 需要来自哪里。此外,没有办法在自由配置中表示 roleBase。我将 baseDN 设置为 userBase 值。

为什么我们需要像 userIdMap 和 groupIdMap 这样的属性?

在阅读了更多内容后,我将配置更新为:

<ldapRegistry 
    baseDN="dc=my-domain,dc=com" 
    ldapType="Custom"
    port="389" 
    host="myLdapServerHost" 
    id="myLdap"
    bindDN="cn=admin,dc=my-domain,dc=com" 
    bindPassword="admin"
    recursiveSearch="true">
    <customFilters
        id="customFilters"
        userFilter="&amp;(ou=people)(uid=%v)(objectClass=inetOrgPerson)"
        groupFilter="&amp;(ou=groupsJ2EE)(cn=%v)(objectClass=groupOfNames)"/>
</ldapRegistry>

仍然没有运气......关于什么可能是错误的任何想法?

4

1 回答 1

0

过滤器需要如下所示。

<customFilters
    id="customFilters"
    userFilter="&amp;(uid=%v)(objectClass=inetOrgPerson)"
    groupFilter="&amp;(cn=%v)(objectClass=groupOfNames)"
    userIdMap="*:uid"
    groupMemberIdMap="groupOfNames:member"/>/>

这是假设通过在 slapd.conf 中添加以下行将 OpenLdap 配置为使用 inetorgperson.schema(作为标准 openldap 的一部分提供的扩展模式)

include /usr/local/etc/openldap/schema/inetorgperson.schema

默认情况下,OpenLdap 不启用 inetorgperson.schema,在这种情况下, userFilter 需要类似于

&amp;(cn=%v)(objectClass=person) 

和 userIdMap 将是

 "*:cn"

下面是来自 Open Ldap 的示例 ldif 文件和 ldap 配置片段

低密度脂蛋白

dn: o=ibm,c=in
objectClass: organization
o: ibm

dn: ou=people,o=ibm,c=in
objectClass: organizationalUnit
description: All people in organisation
ou: people

dn: cn=Robert Smith,ou=people,o=ibm,c=in
objectClass: inetOrgPerson
cn: Robert Smith
cn: Robert J Smith
cn: bob  smith
sn: smith
uid: rjsmith
userPassword:: e1NIQX1XNnBoNU1tNVB6OEdnaVVMYlBnekczN21qOWc9

dn: uid=testUser,ou=people,o=ibm,c=in
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: testUserCN
sn: testUserSN
uid: testUser

dn: ou=groups,o=ibm,c=in
objectClass: organizationalUnit
objectClass: top
ou: groups

dn: cn=testGroup1,ou=groups,o=ibm,c=in
objectClass: groupOfNames
objectClass: top
cn: testGroup1
member: uid=TESTUSER,ou=PEOPLE,o=IBM,c=IN

配置

<ldapRegistry 
    baseDN="o=ibm,c=in" 
    ldapType="Custom"
    port="389" 
    host="9.113.58.110" 
    id="myLdap"
    bindDN="cn=root,o=ibm,c=in" 
    bindPassword="root"
    recursiveSearch="true">
    <customFilters
        id="customFilters"
        userFilter="&amp;(uid=%v)(objectClass=inetOrgPerson)"
        groupFilter="&amp;(cn=%v)(objectClass=groupOfNames)"
        userIdMap="*:uid"
        groupMemberIdMap="groupOfNames:member"/>/>
</ldapRegistry>
于 2014-07-08T10:59:53.563 回答