好的,所以我第一次学习和配置 openLDAP 部分基于本教程:
http://www.rjsystems.nl/en/2100-d6-openldap-provider.php
我正在尝试添加一个示例用户,但我想我在教程中注意到了一个类型。在示例 ldif 中,作者使用了cn: Christopher
. 我认为 cn 应该是一个较短的名称,如果不完全相同,则类似于 uid。所以在我的 ldif 中,我同时设置了cn
和gn
(givenName),但是我收到了关于 givenName 的错误:
ldap_add: Object class violation (65)
additional info: attribute 'givenName' not allowed
Run Code Online (Sandbox Code Playgroud)
这是我的 ldif:
dn: cn=tarcuri,ou=groups,dc=example,dc=com
cn: jsmith
gidNumber: 20000
objectClass: top
objectClass: posixGroup
dn: uid=tarcuri,ou=people,dc=example,dc=com
uid: jsmith
uidNumber: 20000
gidNumber: 20000
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
cn: jsmith
gn: John
sn: Smith
loginShell: /bin/bash
homeDirectory: /home/jsmith
userPassword: john
Run Code Online (Sandbox Code Playgroud)
我将如何修改我的 ldif 文件以正确设置“givenName”,因为它似乎person
应该能够有一个名字。sn
毕竟需要。
谢谢!!
更新所以我尝试使用inetOrgPerson
包含给定名称的 ,但在使用 ldapsearch 检查结果后,我看到以下内容:
givenName:: VGhvbWFzIA==
Run Code Online (Sandbox Code Playgroud)
当它应该具有我在 ldif 中使用的给定名称时。显然有些事情正在发生,有人有一些见解吗?注意givenName 后面的两个冒号。
恐怕RFC 2256及其后代应该归咎于此:根据 RFC,一个人没有 givenName,并且您的 LDAP 服务器(正确地)拒绝让您分配该属性。
您有几个选择:您可以使用cn
(common name) 作为名字,添加一个支持 givenName 的附加 ObjectClass(如 inetOrgPerson),或选择不同的结构 ObjectClass(同样,如 inetOrgPerson)作为您的对象的基础。
一般来说,inetOrgPerson 是您无论如何都想使用的类似“人”的对象类:它比普通的 LDAP 人有用得多。
更新回复:您的更新。你得到的时髦字符串givenName
实际上是一个 base-64 编码的字符串 ( VGhvbWFzIA==
=> Thomas
)。大多数客户端将能够自动解码,我不确定为什么你的没有(可能是某处的配置故障)。
归档时间: |
|
查看次数: |
19318 次 |
最近记录: |