我有一个 Fedora 客户端,正在向运行 389 ds 和 kerberos 的 Centos 服务器进行身份验证
我可以kinit <my-user-principal>
在 Fedora 客户端上成功运行并获取票证,但无论我如何尝试,我都无法使用 Kerberos 向 389 服务器进行身份验证。
每当我尝试时ldapwhoami -I -Y GSSAPI
都会收到以下错误:
SASL/GSSAPI authentication started
SASL Interaction
Please enter your authorization name: [email protected]
ldap_sasl_interactive_bind_s: Invalid credentials (49)
additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Unknown error)
通过 klist 我可以看到我有我的票:
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]
Valid starting Expires Service principal
01/09/13 00:26:58 01/10/13 00:26:58 krbtgt/[email protected]
renew until 01/09/13 00:26:58
01/09/13 00:27:45 01/10/13 00:26:58 ldap/[email protected]
renew until 01/09/13 00:26:58
我将 cn=config 的 nsslapd-accesslog-level 属性编辑为 260,当我检查访问日志时发现了这一点(172.16.86.200 是我的 fedora 客户端的 IP):
tail -n 15 /var/log/dirsrv/slapd-dp100srv1/access
[09/Jan/2013:00:58:13 -0500] conn=130 fd=64 slot=64 connection from 172.16.86.200 to 172.16.86.100
[09/Jan/2013:00:58:16 -0500] conn=130 op=0 BIND dn="" method=sasl version=3 mech=GSSAPI
[09/Jan/2013:00:58:16 -0500] conn=130 op=0 RESULT err=49 tag=97 nentries=0 etime=0
[09/Jan/2013:00:58:16 -0500] conn=130 op=1 UNBIND
[09/Jan/2013:00:58:16 -0500] conn=130 op=1 fd=64 closed - U1
BIND dn="" 是什么意思?这不可能是对的,但是根据 389 文档,已经配置的默认 sasl 映射应该足以满足我的目的。
我还能在哪里找到方法来解决这个问题?
答案1
看起来您错过了某个告诉 sasl 默认 DN 的配置。
尝试添加到 /etc/sssd/sssd.conf:
[domain/default]
ldap_search_base = dc=example,dc=com
我的意思dc=example,dc=com
是 LDAP 的基本 DN