LDAP:不允许使用属性“givenName”

前端之家收集整理的这篇文章主要介绍了LDAP:不允许使用属性“givenName”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,所以我第一次学习和配置openLDAP,部分基于本教程:

http://www.rjsystems.nl/en/2100-d6-openldap-provider.php

我想添加一个示例用户,但我想我在教程中注意到了一个类型.在示例中,作者使用了cn:Christopher.我认为cn应该是一个较短的名称,类似于uid,如果不完全相同的话.所以在我的ldif中我设置了cn和gn(givenName),但是我收到了关于givenName的错误

ldap_add: Object class violation (65)
    additional info: attribute 'givenName' not allowed

这是我的ldif:

dn: cn=tarcuri,ou=groups,dc=example,dc=com
cn: jsmith
gidNumber: 20000
objectClass: top
objectClass: posixGroup

dn: uid=tarcuri,ou=people,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

我如何修改我的ldif文件以正确设置’givenName’,因为看起来一个人应该能够拥有一个名字.毕竟它需要sn.

谢谢!!

更新所以我尝试使用包含给定名称的inetOrgPerson,但在使用ldapsearch检查结果后,我看到以下内容

givenName:: VGhvbWFzIA==

当它应该具有我在ldif中使用的给定名称.显然正在发生一些事情,任何人都有一些洞察力?请注意givenName之后的两个冒号.

我担心 RFC 2256及其后代应该归咎于此:根据RFC,一个人没有givenName,并且您的LDAP服务器(正确地)拒绝让您分配该属性.
您有几个选项:您可以使用cn(通用名称)作为名字,添加支持givenName的其他ObjectClass(如inetOrgPerson),或者选择不同的结构ObjectClass(再次,如inetOrgPerson)来基于您的对象.

一般来说,inetOrgPerson是你想要使用的类似“人”的对象类:它比vanilla LDAP人更有用.

更新Re:您的更新.作为givenName的结果,您获得的时髦字符串实际上是base-64编码的字符串(VGhvbWFzIA == => Thomas).大多数客户端将能够自动解码,我不知道为什么你的没有(可能是某处的配置故障).

猜你在找的Bash相关文章