You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenLDAP SASL/GSSAPI认证失败求助:Invalid credentials(49)

问题描述

我正尝试配置OpenLDAP使用SASL/GSSAPI(Kerberos)认证,KDC服务器已正常运行,可创建所有Principal和SPN,且kinit命令执行正常。但执行以下命令时认证失败:

ldapsearch -LLL -Y GSSAPI -H ldap://ldap -s "base" -b "dc=example,dc=com"

报错信息如下:

SASL/GSSAPI authentication started
ldap_sasl_interactive_bind: Invalid credentials (49)
    additional info: SASL(-13): authentication failure: GSSAPI Failure: gss_accept_sec_context

OpenLDAP使用默认keytab路径,其内容为:

Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
   0 04/03/24 03:14:34 ldap/ldap@EXAMPLE.COM
   0 04/03/24 03:14:34 ldap/localhost@EXAMPLE.COM

我的票据缓存中存在正确的用户user1:

/ # klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: user1@EXAMPLE.COM

Valid starting     Expires            Service principal
04/03/24 04:04:57  04/03/24 16:04:57  krbtgt/EXAMPLE.COM@EXAMPLE.COM
        renew until 04/10/24 04:04:55

请问我遗漏了哪些配置或步骤?

排查解决要点
  • 修复Keytab的KVNO异常:当前keytab中的KVNO为0,属于无效值。重新生成keytab,指定正常的KVNO:
    ktadd -k /etc/krb5.keytab -norandkey ldap/ldap@EXAMPLE.COM
    
    生成后用klist -k /etc/krb5.keytab验证,KVNO应为大于0的整数。
  • 确保OpenLDAP进程有权读取keytab:slapd进程通常以openldap或ldap用户运行,需调整文件权限:
    chown openldap:openldap /etc/krb5.keytab
    chmod 600 /etc/krb5.keytab
    
  • 验证主机名解析一致性:Kerberos要求SPN中的主机名与实际主机的正向/反向解析一致:
    • 检查ldap主机的正向DNS//etc/hosts条目是否正确
    • 确认反向DNS(PTR记录)指向ldap主机名
    • 确保客户端和服务器端的主机名解析结果一致
  • 检查Kerberos配置文件:确认/etc/krb5.conf配置正确:
    • [realms]中EXAMPLE.COM的kdc、admin_server指向正确的KDC地址
    • [domain_realm]中添加example.com = EXAMPLE.COM和.example.com = EXAMPLE.COM映射
  • 测试服务票据获取:执行以下命令尝试获取LDAP服务的Kerberos票据,验证SPN和keytab有效性:
    kvno ldap/ldap@EXAMPLE.COM
    
    若失败,需重新创建SPN并生成keytab。
  • 配置OpenLDAP的SASL参数:
    • 确保slapd配置中启用GSSAPI认证,比如通过olcSaslAuthzId: uid=%u,cn=example,cn=com设置授权规则
    • 检查olcSaslSecProps设置,可临时设置minssf=0排除加密问题干扰
    • 确认olcSaslHost属性设置为ldap(与SPN中的主机名一致)
  • 查看KDC日志定位细节:在KDC服务器上查看/var/log/krb5kdc.log,日志中会记录具体的认证失败原因,比如票据过期、SPN不匹配、权限不足等。

内容的提问来源于stack exchange,提问作者Zach Hein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:00:04