I'm running RunDeck 2.1.0 and having issues authenticating to AD via LDAP.
The full error is
javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A8, comment: AcceptSecurityContext error, data 52e, v1db1?]
I see this when I have the bind credentials configured and forceBindingLogin to false. What I can't decipher is does that mean it can't bind, or it can't authenticate the user logging in after successfully binding? If I take the bind credentials out and set forceBindingLogin to true the server returns this error
[LDAP: error code 1 - 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1];
So I'm fairly certain I'm in the right track with setting up binding credentials on forceBindingLogin to false. In other services we use which bind to AD over LDAP, I generally only have to set the bind username and password, not an explicit bindDn. I've tried setting the bindDn with no OUs (cn=username,dc=example,dc=com), just the top-level OU (cn=username,ou=MyUnit,dc=example,dc=com), and all the OUs from the root to the user (cn=username,ou=MyUnit,ou=SubUnit1,ou=SubUnit2,dc=example,dc=com) with no impact on the error.
In those same services they have these two fields to configure
Search Base: ou=MyUnit,dc=example,dc=com
Search Filter: (&(sAMAccountName={0})(objectclass=person))
So in my jaas-activedirectory.conf I'm setting
userBaseDn="ou=MyUnit,dc=example,dc=com"
userRdnAttribute="sAMAccountName"
userIdAttribute="cn"
userPasswordAttribute="unicodePwd"
userObjectClass="person"
I've tried swapping the userRdnAttribute and userIdAttribute values with no effect. I've tried logging in with and without the domain (username vs domain\username). No effect.
We've been able to configure Apache, Jenkins, SVN, FishEye, Tomcat, and several other OSS services to authenticate to the AD controllers so I know the servers themselves a functional for LDAP binding/authentication like this.