【问题标题】:OpenLDAP how to create and use an objectclass that is a child of inetOrgPersonOpenLDAP 如何创建和使用作为 inetOrgPerson 子级的对象类
【发布时间】:2011-12-14 18:39:21
【问题描述】:

我正在尝试创建一个基于 LDAP 的通讯簿。对于其中的每个收件人/用户,我需要存储有关他们联系点的信息。信息将包括:
联系方式 - 电话/电子邮件/传真/寻呼机/等。
标签 - 奶奶的阁楼、工作、家等
地址 - 实际电话号码/电子邮件/等。
以及其他一些属性

我现在已经发现没有什么开箱即用的东西可以处理这个问题,但我可以创建自己的 ContactPoint ObjectClass,使其成为结构类并让它成为 inetOrgPerson 的子类。但我似乎仍然无法理解这一切是如何结合在一起的。例如,我将如何查询一个人及其联系人?

【问题讨论】:

    标签: object ldap hierarchy addressbook


    【解决方案1】:

    LDAP 被设计为可扩展的,并且经常需要定义新的模式元素。当客户找不到具有他们想要的语法和名称的属性时,他们应该使用适当的对象类定义一个新属性。设计师应该:

    • 了解现有的架构元素
    • 尽可能使用现有架构元素
    • 不使用供应商特定的属性,这会导致质量差、系统脆弱。仅使用标准机构定义的模式中的属性和对象类(当然,除非您自己推出)
    • 从现有的对象类继承而不是定义新的对象类
    • 使用匹配规则(来自属性类型定义)进行比较,而不使用语言相等结构。
    • 除非绝对需要,否则请避免使用extensibleObject。使用 extensibleObject 是不得已的选择,类似于使用无类型编程语言,会导致系统质量差、脆弱、难以维护

    更多信息请见"LDAP: Programming Practices"

    【讨论】:

    • 谢谢特里,这是非常好的一般信息,但它与我所问的有什么关系?
    【解决方案2】:

    将其设为inetOrgPersonextensibleObject。然后,您可以使用其中任何位置的任何属性。我会避免定义您自己的对象类。

    【讨论】:

    • 谢谢,但我找不到任何对象类,例如包含联系人标签或联系人类型(看起来很基本)。此外,我需要能够将一个或多个接触点对象与一个人对象相关联。我不明白你的提议将如何实现这一目标。
    • @MorDeror inetOrgPerson 已经具有mailtelephoneNumberhomePhoneinternationalISDNNumberfacsimileTelephoneNumberpager、@9876543331@、@987654 等属性等等等等。除了inetOrgPerson 之外,还有很多其他的LDAP 模式类型。当然,如果他们都没有完全按照您的意愿行事,那么您将不得不按照 Terry 的建议自行推出。
    • 我知道我必须“自己动手”。我的问题是如何“滚动”两个级别的对象 - 即一个人(假设是 inetOrdPerson 的某个版本)和他/她的接触点与他们自己的属性。你提到的属性没有
    • @Mordechai 你有没有打算完成最后一句话?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多