当前位置: 首页 > 知识库问答 >
问题:

memberof和refint在openLdap中不起作用

高飞翮
2023-03-14
  1. 使用objectClass“inet orgPerson”和“person”在people组中创建一个person。并命名为“Joe”
  2. 创建一个名为“group of Names”的组,名为“Agent”。成员属性的值为'uid=joe,ou=people,dc=company,dc=com'

现在,当我查看person'Joe'时,我找不到Apache ldap Studio中启用了'Shoing organisational attribute'的'member of‘属性。而用下面的命令行搜索,也找不到组。

ldapsearch -H ldap://localhost -x -b "dc=company,dc=com" '(uid=joe)' memberOf

以下是Slapcat的一个片段:

dn: ou=people,dc=company,dc=com
objectClass: organizationalUnit
ou: people
description: Application users
structuralObjectClass: organizationalUnit
entryUUID: 82532aa8-f3e8-1039-9c72-6f4976491fc1
creatorsName: cn=root,dc=company,dc=com
createTimestamp: 20200306112229Z
entryCSN: 20200306112229.195806Z#000000#000#000000
modifiersName: cn=root,dc=company,dc=com
modifyTimestamp: 20200306112229Z

dn: uid=joe,ou=people,dc=company,dc=com
uid: joe
cn: joe.doe
sn: doe
objectClass: inetOrgPerson
objectClass: person
userPassword:
structuralObjectClass: inetOrgPerson
entryUUID: 079b9550-03b2-103a-89f5-811bd9f87026
creatorsName: cn=root,dc=company,dc=com
createTimestamp: 20200326133249Z
entryCSN: 20200326133249.091679Z#000000#000#000000
modifiersName: cn=root,dc=company,dc=com
modifyTimestamp: 20200326133249Z

dn: cn=a1,ou=agent,dc=company,dc=com
member: uid=joe,ou=people,dc=company,dc=com
cn: a1
objectClass: groupOfNames
structuralObjectClass: groupOfNames
entryUUID: 2c9df272-047e-103a-9203-eba7d52bfa3f
creatorsName: cn=root,dc=company,dc=com
createTimestamp: 20200327135408Z
entryCSN: 20200402133540.270695Z#000000#000#000000
modifiersName: cn=root,dc=company,dc=com
modifyTimestamp: 20200402133540Z
- name: Install memberof and refint overlays
  include_tasks: "{{ role_path }}/tasks/add_module_to_ldap_conf.yml"
  vars:
    add_module_to_ldap: "{{ item }}"
  loop:
    - name: memberof overlay
      module_file: 'memberof.la'
    - name: refint overlay
      module_file: 'refint.la'

- name: Activate overlays
  include_tasks: "{{ role_path }}/tasks/put_ldap_admin_entry.yml"
  vars:
    put_ldap_entry:
      dn: "olcOverlay={{ item.overlay }},'olcDatabase={2}hdb','cn=config'"
      objectClass: "{{ item.objectClass }}"
      attributes: "{{ item.attributes }}"
  loop:
    - overlay: memberof
      objectClass:
        - top
        - olcConfig
        - olcMemberOf
        - olcOverlayConfig
      attributes:
        olcOverlay: memberof
        olcMemberOfRefint: 'TRUE'
        olcMemberOfDangling: ignore
        olcMemberOfGroupOC: groupOfNames
        olcMemberOfMemberAD: member
        olcMemberOfMemberOfAD: memberOf
    - overlay: refint
      objectClass:
        - top
        - olcConfig
        - olcRefintConfig
        - olcOverlayConfig
      attributes:
        olcOverlay: refint
        olcRefintAttribute: 'memberof member manager owner'
ldapsearch -H ldap://localhost -x -b "dc=company,dc=com" '(uid=joe)' memberOf
ldapsearch -LL -Y EXTERNAL -H ldapi:/// -b cn=Overlays,cn=Monitor -s base monitoredObject
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
version: 1

dn: cn=Overlays,cn=Monitor
objectClass: monitorContainer
cn: Overlays
description: This subsystem contains information about available overlays.
monitoredInfo: refint
monitoredInfo: memberof
monitoredInfo: glue

共有1个答案

梁勇
2023-03-14

最初的配置缺少以下属性:

olcMemberOfDangling: ignore
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

我为以下配置做了ldapmodified manully

dn: olcOverlay=memberof,olcDatabase={2}hdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

然后会员制起作用了。在我们移除丢失的属性并重新运行Ansible之后,它似乎并没有解开它。所以我们不确定哪里出了问题。

 类似资料:
  • 实际上,我正在构建一个使用Spring处理LDAP的应用程序(http://projects.Spring.io/Spring-LDAP/) 我在尝试修改memberOf属性时遇到了一些麻烦。 从现在开始: 我在LDAP上具有根权限 我可以修改其他属性,但不能修改这个属性 我以良好的格式发送值(带有良好条目的列表(字符串))

  • 问题内容: 我正在随处使用,并且可以在Firefox上正常使用。它不再与IE9一起工作,也不再在IE8中工作。我能做什么? 问题答案: 为什么要依赖具有对象的浏览器,而不是只包含Douglas Crockford的脚本文件。您可以在这里找到缩略文件:http : //www.json.org/js.html 导入后,您不必担心浏览器中现有的方法。

  • 它给了我编译错误 cvc-complex-type.2.4.c:匹配通配符是严格的,但找不到元素“身份验证管理器”的声明 和在这一行找到的多个注释: null 请澄清我错在哪里

  • 描述: 标明这个标识属于哪个父级标识。 语法 @memberof <parentNamepath> @memberof! <parentNamepath> 概述 @memberof标签标明成员隶属于哪一个父级标识符。 默认情况下,@memberof标签标注的标识符是静态成员。对于内部成员和实例成员,你可以使用对应名称路径的符号,或明确标注@inner或 @instance标签。 “强制的”@mem

  • 我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击

  • 问题内容: 在我的聊天应用程序中,我需要在关闭应用程序时从user确认。 所以我使用了确认警报和logout()。 但是这两个功能都可以在IE和Chrome中使用。(应用程序运行正常) 在Opera中无法使用,并且我的消息不会在Firefox中显示。 在Safari,Opera和Firefox中不起作用。 我的javaScript代码为 我也尝试过使用JQuery同样的功能, 问题答案: 通过将A