我们有多个使用OpenLDAP进行身份验证和存储数据的应用。我们与来自多个应用程序的DB(每个应用程序都有自己的数据库)有很多这些OpenLDAP实体的链接,因此当您更改OpenLDAP实体时,您必须跟踪对象更改(目前我们使用DN作为参考密钥)。在LDAP内部,我们几乎没有引用,例如用户可以访问哪些对象,因为它们可以具有非常特定的访问权限(访问权限不依赖于层次结构),LDAP也不跟踪这些更改,因此一旦移动这些引用的对象我们需要在LDAP和多个DB中跟踪它们。
我是linux和OpenLDAP的新手(我们在linux上运行它),但对我来说,这似乎是一种处理事情的错误方式,似乎我们正在使用LDAP,而不是设计为使用(像这样使用它的想法来自高级开发人员)。
我的问题是:
以我所描述的方式使用LDAP有什么不好。
如何更改OpenLDAP架构,为我们正在使用的所有对象类创建类似GUID的东西,这样至少我们可以存储对象GUID而不是DN,而不必跟踪更改。如果我更改架构,我将能够通过此GUID执行搜索和过滤吗?
答案 0 :(得分:1)
很抱歉,但您的架构描述对我来说并不清楚,所以如果像这样使用它就不好写。
在公司中拥有多个目录在中型到大型公司中很常见(大部分时间都是由于历史原因),但对于“Meta目录”的单点登录,设置为具有单一的身份验证点。
在我看来,DN绝对不是指向目录中对象的方式,因为移动对象正在改变他的DN。每个目录都有一个继承自“top”类的属性,该类包含目录中的唯一标识符。在OpenLDAP中,它是entryUUID
。
entryUUID: bec561c4-c5b0-102a-81c0-81bc30f92d57
如果要在不太大的目录中链接数据,您还可以使用参照完整性,即用户链接到组的方式(当您移动用户时,您不必查看它所属的每个组)在操作系统目录中(OpenLDAP中的RefInt Overlay)。