Skip to content

SEC-2141: ActiveDirectoryLdapAuthenticationProvider Should Perform Active Directory SRV Record Lookup when Performing DNS Resolution of Address #2367

Open

Description

@spring-projects-issues

Michael Fazio (Migrated from SEC-2141) said:

It is possible that ActiveDirectoryLdapAuthenticationProvider will fail to authenticate valid users when a domain address is used for the Active Directory host URL (e.g. ldap://corp.domain.com rather than ldap://adserver1.corp.domain.com).

This seems to be caused because the DNS lookup does not specify its request for Active Directory SRV DNS records to be used. Hence, an incorrect server can often be contacted for the target domain.

It would seem that someone has already flagged this issue in code around line 166:

 private DirContext bindAsUser(String username, String password) {
        // TODO. add DNS lookup based on domain
        final String bindUrl = url;
        ...

I believe that the solution is to correctly specify the SRV directory context attribute so that LDAP service DNS lookup is performed, similar to:

Attributes attributes = ctx.getAttributes("_ldap._tcp." + domain, new String[] { "SRV" })

Activity

  1. spring-projects-issues commented on Aug 15, 2013

    @spring-projects-issues
    Author

    Michael Osipov said:

    There is no need to. You are using Digest auth and the RFC requires a fully-qualified domain name. You have provided a CNAME.

  2. spring-projects-issues commented on Aug 15, 2013

    @spring-projects-issues
    Author

    Michael Osipov said:

    Alternatively, you can provide a URL with a root DN: ldap:///DC=corp,DC=domain,DC=com and Sun's implemenation will automatically look it up in DNS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    in: ldapAn issue in spring-security-ldaptype: enhancementA general enhancementtype: jiraAn issue that was migrated from JIRA

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions