FreeBSD:OpenLDAP,SASL和GSSAPI

我遇到了FreeBSD(8.2-STABLE)上的OpenLDAP使用Kerberos票证进行身份validation的一些问题。 我希望我的脑子有毛病,所以请随时告诉我,我错过了一些明显的事情。

这里是事情的地方:

但是…

我一直无法让slapd接受GSSAPIauthentication。 简单地尝试使用有效的Kerberos票证运行ldapwhoami导致以下错误:

 SASL/GSSAPI authentication started ldap_sasl_interactive_bind_s: Other (eg, implementation specific) error (80) additional info: SASL(-1): generic failure: GSSAPI Error: No credentials were supplied, or the credentials were unavailable or inaccessible. (unknown mech-code 0 for mech unknown) 

slapdlogging相同的错误。 我在这里打了一堵墙。 甚至打开各种debuggingslapd不提供任何有用的东西。 帮帮我?

更新 :只是为了踢我决定尝试在Linux(CentOS 5)监狱里设置OpenLDAP,看看这个行为是否有任何不同。 在重buildOpenLDAP软件包(FreeBSD的Linux支持不包括epoll()系统调用)后,它给了我一些似乎更有用的错误消息(关于缺lessKerberos主体)。 至less似乎是正确执行GSSAPI协商。 所以看起来这是一个FreeBSD的问题…也许? 希望从那里有人的投入。

而且……神秘地它开始工作。 为了logging,这似乎是一个可重复的过程:

  • 安装security / cyrus-sasl2。
  • 安装net / openldap24-server。 确保启用SASL支持。
  • 安装net / openlda24客户端,也支持SASL。
  • 根据手册初始化Kerberos。 确保添加适当的ldap/...主体。
  • 确保slapd能够读取密钥表文件。 最简单的机制是:

     chgrp ldap /etc/krb5.keytab chmod g+r /etc/krb5.keytab 
  • 为SASLconfigurationslapd。 您可能需要设置sasl-hostsasl-realmsasl-regexp
  • /usr/local/etc/openldap/ldap.confBASEURIconfiguration合适的值。

通过获取Kerberos票证然后运行ldapwhoami -Y GSSAPI

我有完全相同的问题,最后发现这是因为我已经在slapd.conf中设置了sasl-host作为kerberos服务器的主机名。

当我将sasl-host更改为ldap主机名(例如sasl-host ldap.example.com)时,它工作正常。