我正在为共享相同用户的一系列Web应用程序创建用户存储库ldap后端.我想在此ldap位置存储首选项信息.这样,与用户相关的所有内容都保存在同一个位置,并且可以在所有应用程序之间共享.
我正在考虑这样的一般结构:
ou=People,dc=domain,dc=com uid=jdoe,ou=People,dc=domain,dc=com ou=Preferences,uid=jdoe,dc=domain,dc=com ou=firstpreference,ou=Preferences,uid=jdoe,dc=domain,dc=com value : 123 value : 456
我有几个问题:
> jsut在用户条目下面是开始存储首选项的正确位置吗?这个条目应该是什么objectClass?我正在尝试使用organizationalUnit,但这似乎不对.
>为首选项存储名称值对的最佳方法是什么?在这里,我最好的客人是在具有名称的首选项下方创建一个条目,并在其下创建值.这样我可以考虑多个值.这些条目的正确objectClass应该是什么?
我正在使用OpenLDAP,并且不想更改随附的模式.有没有办法使用可用的模式进行设置?
最佳答案 >您当然可以将首选项存储为用户节点的子项.替代方案可以在用户节点本身上,也可以在完全独立的分支中.取决于您将如何维护它(谁将拥有权限,权限的细化程度,添加新首选项和应用程序的频率等).
OU是错误的对象类型.您应该定义自己的架构以适合您的应用程序.通常,您希望将架构更改保持在最低限度,因此您定义的架构应设计为在需要新的首选项/应用程序时可扩展.
>您可以为每个首选项定义属性,并使用LDAP服务器的内置名称 – 值对支持.或者,您可以定义通用“首选项”属性,并将名称和值存储在数据中.同样,你如何做到这取决于有多少偏好,变化的频率,搜索能力和索引字段等.
没有什么可以阻止你使用内置类型的一切.就像没有什么可以阻止你调用所有变量v1,v2和你的文件stuff.txt.但是当没有任何符合您需求的内置类型时,就可以添加自己的类型了.这是一件非常简单的事情.