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