Как я могу выяснить мою строку подключения LDAP?
Мы находимся в корпоративной сети, в которой работает активный каталог, и мы хотели бы протестировать некоторые элементы LDAP (на самом деле, поставщика членства в активном каталоге), и до сих пор никто из нас не мог понять, какова наша строка подключения LDAP. Кто-нибудь знает, как мы можем найти его? Единственное, что мы знаем, это домен, в котором мы находимся.
8 ответов
Поставщик членства в ASP.NET Active Directory выполняет аутентифицированную привязку к Active Directory, используя указанное имя пользователя, пароль и "строку подключения". Строка подключения состоит из имени сервера LDAP и полного пути к объекту-контейнеру, в котором находится указанный пользователь.
Строка подключения начинается с URI LDAP://
,
В качестве имени сервера вы можете использовать имя контроллера домена в этом домене - скажем, "dc1.corp.domain.com". Это дает нам LDAP://dc1.corp.domain.com/
thusfar.
Следующий бит - это полный путь к объекту контейнера, в котором находится привязывающий пользователь. Допустим, вы используете учетную запись "Администратор" и имя вашего домена - "corp.domain.com". Учетная запись "Администратор" находится в контейнере с именем "Пользователи", расположенном на один уровень ниже корня домена. Таким образом, полностью определенное DN контейнера "Users" будет: CN=Users,DC=corp,DC=domain,DC=com
, Если пользователь, с которым вы связываетесь, находится в OU, а не в контейнере, путь будет содержать "OU=ou-name".
Итак, используя учетную запись в подразделении с именем Service Accounts
это подразделение подразделения с именем Corp Objects
это подразделение домена с именем 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 в удаленном месте с нестабильным сетевым подключением, тогда у вас могут возникнуть проблемы с членством провайдер работает.)
Тип dsquery /?
в командной строке.
Например: dsquery user -name Ja*
получает строки подключения для всех пользователей с именами, начинающимися с Ja*.
Я просто использую этот инструмент от Softerra (они делают отличный бесплатный LDAP-браузер), чтобы получить DN пользователя от пользователя, вошедшего в систему: http://www.ldapbrowser.com/download.htm
У меня всегда были проблемы с поиском правильного способа напечатать OU. Команда dsquery ou domainroot
предоставит вам список правильных имен всех подразделений в вашем домене. Не уверен, поможет ли это более крупной организации.
Установите средства удаленного администрирования сервера: http://www.microsoft.com/en-us/download/details.aspx?id=7887
Откройте командную строку и введите> сервер dsquery
Для получения дополнительной информации, пожалуйста, проверьте этот пост (внизу поста): http://www.schiffhauer.com/mvc-5-and-active-directory-authentication/
Полный синтаксис находится по адресу http://www.faqs.org/rfcs/rfc2255.html
Я нашел самый простой способ:
Вы также можете найти из
Сервер Active Directory -> Выберите подразделение организационной единицы -> Правой кнопкой мыши -> Свойства -> AttributeEditor -> DistinguishedName
Я получил это от Microsoft Windows Server 2012 R2