将 ldap_sasl_bind_s 与 Kerberos 凭据文件 (/tmp/krb5cc_id) 一起使用时,ber 值使用什么?是文件名吗?是文件的内容吗?
例如(这似乎不起作用):
struct berval cred;
cred.bv_val = "/tmp/kr5cc_id";
cred.bv_len = strlen(cred.bv_val);
ldap_sasl_bind_s(ld, NULL, NULL, &cred, NULL, NULL, NULL);
cred
参数包含从实现特定 SASL 机制的层获得的不透明数据。比如说,如果你使用 GSSAPI SASL 机制,你应该调用某个库(例如 Cyrus SASL)并在它和ldap_sasl_bind()
. 就目前而言,数据是不透明的ldap_sasl_bind()
:它只是将其嵌入到它生成的绑定消息中,并从它接收到的“正在进行的绑定”消息中读出。
这个答案提供了一个相当完整的解释。它特定于 Microsoft 的 SSPI(它确实实现了GSSAPI
(Kerberos V5) NTLM
、GSS-SPNEGO
和DIGEST-MD5
)。