I've just started trying to use SASL DIGEST-MD5 to authenticate Studio to my production apacheds 1.5.4 directory.

The authentication failed - [LDAP: error code 49 - INVALID_CREDENTIALS: DIGEST-MD5: cannot acquire password for xxxx in realm : pingtoo.com]

I'm reasonably sure I have configured server.xml to match the credentials for studio - a wireshark trace looks reasonable. I have supplied a bare username, rather than the user's full DN - server.xml has the correct search base. (Nevertheless, I get the same error message when I specify the full DN.)

Searching the mail archive I found a comment that indicates the userpassword attribute has to be supplied in cleartext, so I defined a new user with an ldapmodify ldif. Studio tells me the new user really has a cleartext password, and ldapsearch returns a base64 encoding of the correct value, but the error is identical.


I have three relevant prescriptive aci's over the entire directory tree. The first prohibits general access to user passwords; the second grants it to member of the admins group; the third allows users to browse and modify their own entries.

My first failing user (shown as xxxx above) is a member of the admins group and can certainly read passwords of all users (including its own) with ldapsearch and studio. However, I can already see this user will not be able to authenticate using SASL because the directory entry only holds a SHA hash at the moment.

The test user can do basic authentication against its own cleartext password, but not with SASL. I am not 100% sure my third prescriptive ACI is working, because this user can't retrieve its own password.


Without trawling the source, can anyone help me with some basic questions:

1. Does the error message mean the user entry was actually found (as implied)?

2. Does the error message really mean the attribute value cannot be read from the directory, or simply that a hash was made that did not match the SASL response from the client?

3. Does the SASL logic run under the authenticating user's credentials and is constrained by that user's ACI's? (I can't think what else it could use except some kind of "super-user" privilege that puts it outside the directory's ACI's).

Sorry to bother everyone, but thanks in anticipation of a clue or two!

Brian

Reply via email to