SASL GSSAPI:ldap_sasl_interactive_bind:其他错误(80)未提供凭据

问题描述 投票:0回答:1

ldapsearch 或 ldapwhoami 结果

# ldapwhoami
SASL/GSSAPI authentication started
ldap_sasl_interactive_bind: Other (e.g., 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)

设置:

  • 使用 SASL GSSAPI 的 OpenLdap

  • Kerberos KDC 服务器(以 openLdap 作为数据库后端)

  • 我为

    user1
    创建了一个票据缓存,用于 GSSAPI 身份验证。

  • 我已为 openLdap 配置并设置了 krb5.keytab,用于通过 KDC 进行身份验证,如

    ldap/[email protected]

票证缓存:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting     Expires            Service principal
03/24/24 03:38:17  03/24/24 15:38:17  krbtgt/[email protected]
        renew until 03/31/24 03:38:12
03/24/24 03:39:05  03/24/24 15:38:17  ldap/[email protected]
        renew until 03/31/24 03:38:12

键表:

    klist -k /etc/krb5.keytab
    Keytab name: FILE:/etc/krb5.keytab
    KVNO Principal
    ---- --------------------------------------------------------------------------
       2 ldap/[email protected]
       2 ldap/[email protected]

我错过了什么?

kerberos openldap gssapi
1个回答
0
投票

就我而言,问题最终是

krb5.keytab
上供 openLdap 使用的文件权限。

我的

slapd
正在使用
ldap
用户运行。但是
ldap
用户没有对
krb5.keytab
文件的读取权限,只有
root
用户有权限。

之前:

# ls /etc/krb5.keytab -la
-rw-------    1 root     root           170 Mar 23 06:25 /etc/krb5.keytab

之后:

# chmod 777 /etc/krb5.keytab
/ # ls /etc/krb5.keytab -la
-rwxrwxrwx    1 root     root           170 Mar 23 06:25 /etc/krb5.keytab

更新文件权限以授予

ldap
用户读取访问权限后,一切都按预期进行! (777 可能没有必要,我相信只需要读取权限。)

GSSAPI 身份验证成功后:

# ldapwhoami -H ldap://ldap.example.com
SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 56
SASL data security layer installed.
dn:uid=user1,cn=gssapi,cn=auth
© www.soinside.com 2019 - 2024. All rights reserved.