ИНФОРМАЦИЯ: Как с помощью ADSI запроса сервером LDAP стороннего производителя

Переводы статьи Переводы статьи
Код статьи: 251195
Развернуть все | Свернуть все

В этой статье

Аннотация

Поставщик Lightweight Directory Access Protocol (LDAP) для интерфейсов служб Active Directory (ADSI) используется для извлечения информации из независимых производителей LDAP-серверов. В данной статье описывается несколько проблем, которые могут возникнуть и способы их устранения.

Дополнительная информация

При использовании ADSI для получения сведений от независимых производителей LDAP-сервера, необходимо:
  • Определяют доступность сведений о схеме.
  • Получите проверку подлинности пользователя.
  • Запретить поиск на несуществующие контейнера.

Определить наличие сведений О схеме

В соответствии с Request for комментарии (RFC) 2251 ожидается предоставлять серверах LDAP версии 3subSchemaSubEntryатрибут отключение корень предприятия службы каталогов (rootDSE). ADSI данный атрибут используется для поиска сведений subschema предпринимается для проверки подлинности и кэширование.

За дополнительной информацией о как ADSI кэширует subschema щелкните следующий номер статьи базы знаний Майкрософт:
251189ИНФОРМАЦИЯ: Определение схемы LDAP сервера кэширования, ADSI
ADSI использует информацию subschema для предоставления соответствующих интерфейсов для заданного класса, а также для извлечения из кэша свойств атрибутов в правильный синтаксис.

Если ADSI не удается найти или правильно проверить сведения о subschema, используется схема по умолчанию LDAP версии 2. Поскольку серверы LDAP версии 2 не предоставляют subschema, ADSI поддерживает схемы о внутренних многие стандартные атрибуты и классы. Если ADSI используются схемы по умолчанию версии 2, он не имеет доступа к сведениям о нестандартных схем, включая пользовательские классы и атрибуты, которые были созданы на сервере.

Если нет схемы сведения о синтаксисе атрибута, ADSI — это не удалось получить атрибут из кэша свойств. В этом случае можно использоватьIADsPropertyList.GetPropertyItemметод, чтобы указать синтаксис атрибута запрошенное свойство. При указании значения ADsTYPE можно избежать о синтаксис атрибута.

Если использовать объекты данных Microsoft ActiveX (ADO), а у вас нет доступных сведений о схеме, чтобы получить строку ADsPath объекта, выполнить привязку к объекту в каталоге и затем с помощьюIADsPropertyList.GetPropertyItemметод. С помощью ADO напрямую, без сведений о схеме не делается.

Получение правильного проверки подлинности

Существует несколько способов для проверки подлинности клиента LDAP к серверу LDAP с помощью ADSI. Среди этих методов простую привязку поддерживается изначально LDAP для передачи учетных данных на сервере. В других случаях клиент и сервер должны согласовать метод, обычно с помощью другой центр безопасности или собственный протокол.

НапримерФункция GetObjectметод (илиADsGetObjectфункция в C) использует флаг ADS_SECURE_AUTHENTICATION, что может привести к привязку LDAP, который используется Microsoft Windows NT Challenge/Response (NTLM). Эта привязка является скорее всего, так как количество серверов независимых производителей не принимают NTLM. В случае сбоя проверки подлинности безопасного связывания будет понижена для анонимной привязки, например, простую привязку без учетные данные пользователя. В этом случае приложение может иметь доступ только к подмножеству сведения (или даже не) в зависимости от конфигурации сервера.

Чтобы предотвратить возникновение такой ситуации, выполнить простую привязку с помощьюOpenDSObjectметод (илиADsOpenObjectфункция в C) и укажите 0 (нет флагов) или ADS_FAST_BIND (описывается далее) дляlnReservedParameter:. С помощью простой привязки, передать имя пользователя с атрибутами (cn = Username, cn =...) и пароль для сервера LDAP для проверки. Чтобы обеспечить простой привязки с помощью ADO,Шифрование пароляСвойствоADODB.Connectionобъект, значение false и назначения с атрибутом имени пользователя и парольКод пользователя:иpassword»свойства соответственно.

Запретить поиск на несуществующих контейнера

По умолчанию ADSI выполняет поиск objectClass базового объекта, указанного в запросе или привязки. Этот поиск завершается неудачей, если различающееся имя, которое присваивается не существует в каталоге.

Например, предположим, что поиска значение начинается с "o = компании, c = US» для всех пользователей в каталоге. Структура каталога, таким образом, фактический контейнер "Компании" не существует, но вместо двух объектов в корневом каталоге с различающиеся имена "ou = Северная_америка, o = компании, c = US структурное подразделение «и» = Европа, o = компании, c = US". ADSI выполняет поиска objectClass "o = компании, c = US" какие Сбой остановки поиска для пользователей до ее начала.

Наиболее простым решением этой проблемы является указание базового объекта, которые существуют в каталоге. Если это не возможно, из-за реализацию каталога для выполнения поиска с помощью допустимого базового объекта, необходимо предотвратить ADSI Поиск исходного objectClass.

To prevent an objectClass search on the object, pass the ADS_FAST_BIND flag in thelnReservedparameter of theOpenDSObjectmethod (or theADsOpenObjectfunction in C). Because this flag determines ADSI's actions after the bind has occurred, it does not affect proper authentication. Note that this flag is not available prior to ADSI version 2.5.

The ADO provider for Microsoft Windows 2000 exposesADSI Flagproperties on theADODB.ConnectionОбъект. You can set the ADS_FAST_BIND flag for this property to prevent ADO queries from performing an objectClass search. надписьюADSI Flagproperty is not present in ADSI version 2.5 for Microsoft Windows NT version 4.0 or Microsoft Windows 9x. For a possible solution, see the following article:

223049HOWTO: Query Exchange 5.x Anonymously Through ADSI

Ссылки

For additional information on ADSI, see the following articles in the Microsoft Knowledge Base:
233023МЕТОДИЧЕСКИЕ: Поиск всех поставщиков ADSI в системе
187529HOWTO: Use ADO to Access Objects Through an ADSI LDAP Provider
251189ИНФОРМАЦИЯ: Определение схемы LDAP сервера кэширования, ADSI
223049HOWTO: Query Exchange 5.x Anonymously Through ADSI

For general information on ADSI, see the following Web site:
http://msdn2.Microsoft.com/library/aa772170.aspx

Свойства

Код статьи: 251195 - Последний отзыв: 18 ноября 2010 г. - Revision: 2.0
Ключевые слова: 
kbinfo kbmsg kbmt KB251195 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:251195
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com