Как я могу выяснить мою строку подключения LDAP?

108

Мы находимся в корпоративной сети, в которой работает активный каталог, и мы хотели бы протестировать некоторые элементы LDAP (на самом деле, поставщика членства в активном каталоге), и до сих пор никто из нас не мог понять, какова наша строка подключения LDAP. Кто-нибудь знает, как мы можем найти его? Единственное, что мы знаем, это домен, в котором мы находимся.

Аллен
источник

Ответы:

101

Поставщик членства в ASP.NET Active Directory выполняет аутентифицированную привязку к Active Directory, используя указанное имя пользователя, пароль и «строку подключения». Строка подключения состоит из имени сервера LDAP и полного пути к объекту-контейнеру, в котором находится указанный пользователь.

Строка подключения начинается с URI LDAP://.

В качестве имени сервера вы можете использовать имя контроллера домена в этом домене - скажем, «dc1.corp.domain.com». Это дает нам таким образом LDAP://dc1.corp.domain.com/.

Следующий бит - это полный путь к объекту контейнера, в котором находится привязывающий пользователь. Допустим, вы используете учетную запись «Администратор» и имя вашего домена - «corp.domain.com». Учетная запись «Администратор» находится в контейнере с именем «Пользователи», расположенном на один уровень ниже корня домена. Таким образом, полное DN контейнера «Users» будет: CN=Users,DC=corp,DC=domain,DC=com. Если пользователь, с которым вы связываетесь, находится в OU, а не в контейнере, путь будет содержать «OU = ou-name».

Таким образом, используя учетную запись в подразделении под названием Service Accountsэто суб-OU из OU назвал Corp Objectsэто суб-OU домена имени corp.domain.comбудет иметь полный квалифицированный путь OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com.

Объедините LDAP://dc1.corp.domain.com/с полностью определенным путем к контейнеру, где находится пользователь привязки (например, скажем LDAP://dc1.corp.domain.com/OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com), и вы получите свою «строку подключения».

(Вы можете использовать имя домена в строке подключения, а не имя контроллера домена. Разница в том, что имя домена будет преобразовано в IP-адрес любого контроллера домена в домене. Это может быть как хорошо, так и плохо. Вы не зависите ни от одного контроллера домена, который бы работал и работал для провайдера членства, но имя оказывается разрешающим, скажем, DC в удаленном месте с нестабильным сетевым подключением, тогда у вас могут возникнуть проблемы с членством провайдер работает.)

Эван Андерсон
источник
По крайней мере, с SBS 2008 похоже, что они начали соответствовать стандартному префиксу «OU» в строке для подразделений: CN = Ваше имя, OU = Пользователи, DC = пример, DC = локальный Мы выполняем функциональный уровень 2003.
gravyface
Отличный ответ. Могу ли я указать регистрационные данные запрашивающей учетной записи для внешнего контроллера домена в строке подключения?
Дан
Таким образом, вы имеете в виду, что удаленный компьютер, обращающийся к ActiveDirectory, должен находиться в своем собственном домене? Что делать, если моя локальная машина не находится в своем домене? Если мой компьютер находится в рабочей группе, нужно ли мне передавать 2 учетных данных для аутентификации пользователя? Я имею в виду, один для входа на компьютер с WindowsServer, а другой - для проверки имени пользователя и пароля пользователя ActiveDirectory. Я прав?
Динеш Кумар П
@DineshKumarP: У меня небольшие проблемы с разбором тебя. Поставщик членства использует действительные учетные данные в Active Directory (AD) для привязки к каталогу. Компьютер, на котором работает поставщик членства, необязательно должен быть членом какого-либо домена AD, но для его функционирования необходимо настроить его с действительными учетными данными из AD.
Эван Андерсон
2
@ArthurRonald - Непривилегированные пользователи могут связываться и запрашивать Active Directory по умолчанию. На самом деле, это, вероятно, лучше, если вы используете непривилегированных пользователей. Active Directory имеет довольно богатую модель ACL, и вы можете управлять доступом к объектам и атрибутам очень детально. Вы должны связать с учетной записью, которая имеет достаточно привилегий, чтобы делать вам то, что вам нужно, но не более.
Эван Андерсон
23

Введите dsquery /?в командной строке.

Например: dsquery user -name Ja*получает строки подключения для всех пользователей, имена которых начинаются с Ja *.

ErJab
источник
Мне нравится этот подход, он дает правильный порядок подразделений и тому подобное. Чтобы сделать это очевидным, для этого возьмите LDAP: //dc1.corp.domain.com/ и выходные данные команды и объедините их, чтобы легко сформировать строку ldap.
RandomUs1r
3
Какие инструменты вам нужно установить, чтобы использовать эту команду?
Пред
Пред, посмотри этот ответ .
Стас Бушуев
18

Я просто использую этот инструмент от Softerra (они делают отличный бесплатный LDAP-браузер), чтобы получить DN пользователя от текущего пользователя, вошедшего в систему: http://www.ldapbrowser.com/download.htm

gravyface
источник
Шаг 1. На шаге «Учетные данные» выберите «Зарегистрированный пользователь (только ActiveDirectory)». Шаг 2: Когда соединение создано, в его Свойствах перейдите на вкладку «Запись» и скопируйте URL. Шаг 3: Используйте этот URL вместе с DN, найденным в решении ErJab.
Николас Рауль
7

У меня всегда были проблемы с поиском правильного способа напечатать OU. Команда dsquery ou domainrootвыдаст вам список правильных имен всех подразделений в вашем домене. Не уверен, поможет ли это более крупной организации.

Nixphoe
источник
4
  1. Установите средства удаленного администрирования сервера: http://www.microsoft.com/en-us/download/details.aspx?id=7887.

  2. Откройте командную строку и введите> сервер dsquery

Для получения дополнительной информации, пожалуйста, проверьте этот пост (внизу поста): http://www.schiffhauer.com/mvc-5-and-active-directory-authentication/

Джефф Тиан
источник
4

Если вы откроете ADSIedit, он должен показать вам путь, когда вы решите подключиться к ...

введите описание изображения здесь

KERR
источник
1

Я нашел самый простой способ :

Вы также можете найти из

Сервер Active Directory -> Выберите подразделение организационной единицы -> Правой кнопкой мыши -> Свойства -> AttributeEditor -> DistinguishedName

Я получил это от Microsoft Windows Server 2012 R2

Аравин
источник