Apple 客户端无法使用 LDAP 后端和 GSSAPI 或 PLAIN 登录

Apple 客户端无法使用 LDAP 后端和 GSSAPI 或 PLAIN 登录

我有一台使用 Kerberos5 进行身份验证的 OpenLDAP 服务器,在 Linux/Unix/Windows 环境中,我可以毫无问题地登录。LDAP 服务器配置为使用 GSSAPI 或 PLAIN,通过 SASL2 将密码传递给针对 KERBEROS 进行身份验证的 PAM。这是因为某些服务器软件尚未直接支持 GSSAPI。在 macOS(最新的 Monterey)上,我能够获取用户的 ID 并执行ldapsearch(GSSAPI)进入 LDAP 服务器。在 ssh 中,我已启用 GSSAPI 登录并清除凭据,并将 PAM 身份验证设置为是。

看起来底层 Unix(BSD 变体)可以很好地与 LDAP 配合使用,但 macOS 覆盖却出现了一些奇怪的问题。

我已禁用除 GSSAPI 和 PLAIN 之外的所有其他身份验证方法:

/usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string <METHOD_NAME>" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/<servername>.plist

我发现这次讨论没有解决我的问题。

看来 Apple LDAP LOGIN 客户端尝试使用 ldap 用户信息而不是仅使用用户信息 (LOG) 来获取 Kerberos5 票证:

CLIENT_NOT_FOUND: uid=foobar,ou=People,dc=foobarbar,dc [email protected] for krbtgt/[email protected], Client not found in Kerberos database

非常感谢您的任何建议!

答案1

Apple 无法连接 OpenLDAP 的原因如下:

在目录实用程序中,向 LDAP 服务器进行身份验证的用户需要与 OpenLDAP 服务器配置根 DSE - cn=config 中定义的用户相同:

olcAuthzRegexp = {0}uid=([^,]*),cn=[^,]*,cn=auth uid=$1,ou=Users,dc=foo-bar,dc=com
And
olcAuthzRegexp = {1}uid=<user_from_directory_utility>,cn=[^,]*,cn=auth cn=admin,dc=foo-bar,dc=com

olcSaslSecProps需要:noanonymous,noplain,noactive

相关内容