122

We're on a corporate network thats running active directory and we'd like to test out some LDAP stuff (active directory membership provider, actually) and so far, none of us can figure out what our LDAP connection string is. Does anyone know how we can go about finding it? The only thing we know is the domain that we're on.

9 Answers 9

114

The ASP.NET Active Directory Membership Provider does an authenticated bind to the Active Directory using a specified username, password, and "connection string". The connection string is made up of the LDAP server's name, and the fully-qualified path of the container object where the user specified is located.

The connection string begins with the URI LDAP://.

For the server name, you can use the name of a domain controller in that domain-- let's say "dc1.corp.domain.com". That gives us LDAP://dc1.corp.domain.com/ thusfar.

The next bit is the fully qualified path of the container object where the binding user is located. Let's say you're using the "Administrator" account and your domain's name is "corp.domain.com". The "Administrator" account is in a container named "Users" located one level below the root of the domain. Thus, the fully qualified DN of the "Users" container would be: CN=Users,DC=corp,DC=domain,DC=com. If the user you're binding with is in an OU, instead of a container, the path would include "OU=ou-name".

So, using an account in an OU named Service Accounts that's a sub-OU of an OU named Corp Objects that's a sub-OU of a domain named corp.domain.com would have a fully-qualified path of OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com.

Combine the LDAP://dc1.corp.domain.com/ with the fully qualified path to the container where the binding user is located (like, say, LDAP://dc1.corp.domain.com/OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com) and you've got your "connection string".

(You can use the domain's name in the connection string as opposed to the name of a domain controller. The difference is that the domain's name will resolve to the IP address of any domain controller in the domain. That can be both good and bad. You're not reliant on any single domain controller to be up and running for the membership provider to work, but the name happens to resolve to, say, a DC in a remote location with spotty network connectivity then you may have problems with the membership provider working.)

7
  • With SBS 2008 at least, it looks like they've started conforming to the standard "OU" prefix in the string for the OUs: CN=Your Name,OU=Users,DC=example,DC=local We're running functional level 2003.
    – gravyface
    Apr 8, 2010 at 14:29
  • Great answer. Can I provide the login details of the querying account to the foreign domain controller in the connection string?
    – Dan
    Jun 28, 2011 at 9:06
  • So you mean that, the remote machine accessing ActiveDirectory should be in its own domain? What if my local machine is not in its domain? If my machine is in a workgroup, do I need to pass 2 credentials to authenticate a user? I mean, One to login to WindowsServer machine and the other is to validate ActiveDirectory user's username and password. Am I right? Feb 24, 2015 at 6:05
  • @DineshKumarP: I'm having a little trouble parsing you. The Membership Provider uses a valid credential in the Active Directory (AD) to bind to the Directory. The computer running the Membership Provider doesn't need to be a member of any AD domain, but you have to configure it with a valid credential from the AD in order for it to function. Feb 25, 2015 at 2:18
  • 2
    @ArthurRonald - Unprivileged users can bind to and query Active Directory, by default. In fact, it's probably best if you use an unprivileged users. Active Directory has a fairly rich ACL model, and you can control access to objects and attributes in a very granular fashion. You should bind with an account that has enough privilege to do you what you need but no more. Nov 3, 2015 at 22:31
31

Type dsquery /? in a command prompt.

Eg: dsquery user -name Ja* gets the connection strings for all users with names starting in Ja*.

3
  • I like this approach, it gives the correct ordering of OUs and such. To make it obvious, to use this take LDAP://dc1.corp.domain.com/ and the output from the command & combine them in order to form an ldap string quiet easily.
    – RandomUs1r
    Sep 10, 2014 at 15:48
  • 4
    What tools do you need installed in order to use this command?
    – FilBot3
    Oct 28, 2016 at 18:56
  • 1
    Pred, see this answer. Dec 8, 2016 at 5:37
19

I just use this tool from Softerra (they make an excellent freeware LDAP Browser) to get the User DN from the currently-logged in user: http://www.ldapbrowser.com/download.htm

2
  • 1
    Step 1: At the "Credentials" step, select "Currently logged-in user (ActiveDirectory only)". Step 2: When the connection is created, in its Properties go to the "Entry" tab and copy the URL. Step 3: Use that URL together with the the DN found with ErJab's solution. Oct 21, 2013 at 6:18
  • Seems to be gone. Dec 8, 2023 at 17:55
7

I always had problems finding the correct way to type out the OU. The command dsquery ou domainroot will give you a list of the correct names of all the OUs in your domain. Not sure if this will help for a larger organization.

7

If you open up ADSIedit, it should show you the path when you choose to Connect To...

enter image description here

5
  1. Install Remote Server Administration Tools: http://www.microsoft.com/en-us/download/details.aspx?id=7887

  2. Open a command prompt and enter >dsquery server

For more information, please check this post (bottom of the post): http://www.schiffhauer.com/mvc-5-and-active-directory-authentication/

1
2

The full syntax is at http://www.faqs.org/rfcs/rfc2255.html

1

I found easiest way:

You can also find from

Active directory server -> Choose the Organization Unit OU -> Right Click -> Properties -> AttributeEditor -> DistinguishedName

I got these from Microsoft windows server 2012 R2

0

Its usually the full DN of a user account to connect as when doing a simple LDAP bind (i.e. authenticate). Like CN=userid,CN=Users,DC=yourcompany,DC=com. Obviously setup a userid there first.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .