我如何修复我的 ldap olcAccess 以允许用户绑定到它?

我如何修复我的 ldap olcAccess 以允许用户绑定到它?

背景

我有一个超级简单的 openldap 服务器,除了管理员用户、几个 OU 和一个用户之外,基本上什么都没有。

我可以使用管理员用户登录并进行身份验证,cn=admin,dc=example,dc=com但我添加的任何用户都无法绑定到它进行身份验证。

以下是目录的树状视图,以便清晰地查看: 这是目录的树状视图

最初我尝试对它进行身份验证以使用 OpenVPN,我在那里得到的日志是Incorrect password supplied for LDAP DN "uid=myuser,ou=users,dc=example,dc=com"

但是我知道密码是正确的,这让我陷入了现在的困境......

该服务器正在使用cn=config配置,而不是使用配置文件!

slapcat -b cn=config以下是从输出中摘录的(我认为相关的内容) :

正如您所看到的,我一直在盲目地添加olcAccess条目来尝试解决。

dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=example,dc=com
olcAccess: {0} to * by * auth
olcAccess: {1} to * by anonymous auth
olcAccess: {2}to * by self auth
olcAccess: {3}to * by * read
olcAccess: {4}to attrs=userPassword,shadowLastChange by self write by anonymous auth by * none
olcAccess: {5}to dn.base="" by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW:: <<hidden>>
olcDbCheckpoint: 512 30
olcDbIndex: objectClass eq
olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq
olcDbMaxSize: 1073741824
structuralObjectClass: olcMdbConfig
entryUUID: 03eab422-8c94-1038-90ce-9fb3bcaac9c4
creatorsName: cn=admin,cn=config
createTimestamp: 20181205044311Z
entryCSN: 20181206111241.430739Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20181206111241Z

我有olcAccess: {0} to * by * authTOP 条目 {0} - 据我所知这应该允许任何人/任何事物进行身份验证,对吗??

我正在使用 Apache Directory Studio 来帮助与服务器交互,这是验证密码的屏幕截图: 验证密码

这里尝试进行“绑定”动作测试: 绑定测试

从用户角度而言,一切都运行正常cn=admin,dc=example,dc=com

我试图做的只是添加一些基本用户,如下所示:uid=myuser,ou=users,dc=example,dc=com并允许他们在目录中进行身份验证。我真的不需要任何特殊的东西,例如角色等,所有用户都将处于同一级别并分成组,外部服务将通过这些组进行筛选以对其进行身份验证。

我添加的这些用户是“posixAccount”对象类。

任何信息都值得感激,我发现许多其他 SE 帖子和旧论坛帖子也有类似的问题,但我发现的所有内容都只是说明要添加olcAccess我做错或对我来说不起作用的内容。

我尝试在输入olcAccess内容后重新启动服务器,因此请将其从列表中勾掉。

答案1

因此 ACL 只是一个转移注意力的幌子。

显然,LDAP 关心如何散列用户密码,管理员帐户有 SSHA。我创建的新用户在密码上使用 SHA512 散列。一旦我使用 SSHA 散列重置用户密码,绑定就开始起作用了。呃。

我会做一些阅读,但如果有人知道如何将我的用户转换为使用 SHA512 或 SSHA-512 哈希,我将不胜感激。现在我将保持原样。

olcAccess: {0}to * by * read另外,对于其他任何面临类似 ACL 问题的人。我现在只需将其作为唯一规则应用即可olcAccess,而且似乎没问题。

相关内容