OpenLDAP 如何创建和使用作为 inetOrgPerson 子级的对象类

发布于 2024-12-21 17:15:56 字数 289 浏览 1 评论 0原文

我正在尝试创建一个基于 LDAP 的地址簿。对于其中的每个收件人/用户,我需要存储有关他们的联系点的信息。信息将包括:
联系类型 - 电话/电子邮件/传真/寻呼机/等
标签 - 奶奶的阁楼、工作、家庭等
地址 - 实际电话号码/电子邮件/等
到目前为止,我已经发现没有任何现成的属性

可以处理这个问题,但我可以创建自己的 ContactPoint ObjectClass,使其成为结构类并使其成为 inetOrgPerson 的子级。但我似乎仍然无法理解这一切是如何结合在一起的。例如,我如何查询一个人及其联系人?

I'm trying to create an LDAP based address book. For each recipient/user in it, I will need to store information about their contact points. Information will include:
contact type - phone/email/fax/pager/etc.
label - grandma's attic, work, home, etc.
address - actual phone number/email/etc.
and few other properties

I've figured out by now that there is nothing out of box that can handle this, but that I can create my own ContactPoint ObjectClass, make it a structural class and have it be a child of inetOrgPerson. but I still can't seem to wrap my head around how this all comes together. For example, how would I query for a person and his/her contact points?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

末が日狂欢 2024-12-28 17:15:56

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

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

有关详细信息,请参阅 "LDAP:编程实践"

LDAP is designed to be extensible and defining new schema elements is often required. When clients cannot find an attribute with the syntax and name they desire, they should define a new attribute with an appropriate object class. Designers should:

  • know the existing schema elements
  • use existing schema elements where possible
  • not use vendor-specific attributes, this results in poor quality, brittle systems. Use only attributes and object classes from schemas defined by the standards body (unless of course you roll your own)
  • inherit from an existing object class instead of defining a new object class
  • use matching rules (from the attribute type definition) for comparisons and not use language equality constructs.
  • avoid the extensibleObject unless absolutely required. Using extensibleObject is a last resort option and is similar to using an untyped programming language and results in poor quality, brittle, difficult to maintain systems

For more information, please see "LDAP: Programming Practices"

笨死的猪 2024-12-28 17:15:56

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

Make it an inetOrgPerson and an extensibleObject. Then you can use any attribute from anywhere in it. I would steer well clear of defining your own object classes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文