kerberos authentication doesn't work agsint windows 2003 AD...
Kent Wu
kwu at xsigo.com
Tue Aug 30 19:07:23 EDT 2005
Hi guys,
Thanks for all the inputs I've got so far. And
I've figured out the reason behind it. The reason is that
in the last ldap_sasl_bind_s() step, AD 2000 accepts the
DN format like "kwu at blabla.COM" however AD 2003 only
accepts format like "cn=Kent Wu,cn=Users,dc=blabla,dc=com".
Not sure why AD 2003 wants to change this criterion however
after I used the latter format it was working fine.
The error message "Invalid credentials" was
referring to the wrong DN instead of bad password/key.
I was thinking in the total opposite direction before and
all of sudden I came across this "wrong DN" idea!
Cheers.
-Kent
On Mon, 2005-08-29 at 19:13 -0700, Kent Wu wrote:
> Hi guys,
>
> I used to write a program to authenticate
> users against windows 2000 AD by using MIT
> Kerberos/GSSAPI SDK as well as SUN LDAP SDK. Basically
> what I did is to authenticate users against AD by
> using kerberos before doing LDAP search operations.
> It was working perfectly until I wanted to migrate the
> 2000 AD to 2003 a wk ago.
>
> While doing kerberos authentication against
> AD 2003, the last step of ldap_sasl_bind_s() always
> returns "invalid credentials" even though I've successfully
> got TGT as well as the service ticket for LDAP (AD 2003). If
> I type "klist" right before the last ldap_sasl_bind_s() step,
> I can see the followings and it's looking look.
>
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>
> Default principal: KWU at DOMAIN
>
> Valid starting Expires Service principal
> 08/29/05 18:09:59 08/30/05 04:09:59 krbtgt/DOMAIN at DOMAIN
> renew until 08/30/05 18:09:59
> 08/29/05 18:10:01 08/30/05 04:09:59 ldap/AD-HOSTNAME.DOMAIN at DOMAIN
> renew until 08/30/05 18:09:59
>
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>
> However it still fails in the last ldap_sasl_bind_s() call.
>
> My calling sequence is like this:
>
> 1. use Kerberos APIs to get/store TGT.
> 2. use GSS-API (gss_init_sec_context()) and LDAP SDK SASL
> (ldap_sasl_bind_s()) to engage kerberos authentication.
> Basically I pass "GSSAPI" to ldap_sasl_bind_s() call and it
> requires a loop (a couple of handshaking steps) to complete
> the whole authentication process. It was working all good until
> the last ldap_sasl_bind_s() call....
>
> I've looked high and low on the internet and tried variety of
> configurations in both client and server side however ended up
> nothing. It's so weird that it works fine with AD 2000 but not
> 2003....
>
> Can anyone help me out by sharing his/her own experience or
> pointing me to the right direction?
>
> Thanks a lot in advance !
>
> -Kent
>
>
>
>
>
--
Kent Wu <kwu at xsigo.com>
XSIGO INC.
More information about the Kerberos
mailing list