Remotely, I connect to xxx.cloudapp.net. The DC shows as xxx.dev.local in ADUC.
Then I deployed a copy of the web API locally on the VM and the web API started throwing LDAP errors and telling me that there was an invalid user name / password when trying the LDAP connection. The aforementioned user name / password work perfectly remotely.
WTF?
So using "LDP" locally, we see:
and then we bind:
This gives:
-----------
0 = ldap_set_option(ld, LDAP_OPT_ENCRYPT, 1)
res = ldap_bind_s(ld, NULL, &NtAuthIdentity, NEGOTIATE (1158)); // v.3
{NtAuthIdentity: User='xxxldap'; Pwd=unavailable; domain = 'dev.local'}
Error 49: ldap_bind_s() failed: Invalid Credentials.
Server error: 8009030C: LdapErr: DSID-0C090516, comment: AcceptSecurityContext error, data 52e, v3839
Error 0x8009030C The logon attempt failed
-----------
Now I can try any combination I like. I can leave out the domain name, just use "dev", ... Nothing works.
This works remotely i.e. use "xxx.cloudapp.net" as the LDAP address and login as dev/userxxx.
So what if I try the "dev.local" address?
The connect works. Now for the Bind.
This works! But only if I leave the domain blank.
This gives:
-----------
0 = ldap_set_option(ld, LDAP_OPT_ENCRYPT, 1)
res = ldap_bind_s(ld, NULL, &NtAuthIdentity, NEGOTIATE (1158)); // v.3
{NtAuthIdentity: User='xxxldap'; Pwd=
Authenticated as: 'DEV\xxxLDAP'.
-----------
I'm not a DC / LDAP guru so can't explain this but hopefully this will help someone stuck on the same issue.
Enjoy!
No comments:
Post a Comment