Привязка с шифрованием
Конфиденциальные данные, передаваемые по сети, должны быть зашифрованы. Чтобы разрешить это, ADSI поддерживает два типа шифрования, Kerberos и Secure Sockets Layer (SSL). Оба типа шифрования требуют использования ADsOpenObject или IADsOpenDSObject::OpenDSObject для привязки.
GetObject и ADsGetObject нельзя использовать для привязки в этом случае, так как эти функции вызывают запросы LDAP, используемые ADSI, и данные, возвращаемые сервером каталогов для передачи через сеть в виде обычного текста. В целях отладки рекомендуется отключить шифрование, чтобы сетевой монитор можно было использовать для просмотра запросов LDAP и данных между клиентом и сервером каталогов.
Шифрование на основе Kerberos
Чтобы использовать шифрование на основе Kerberos, укажите флаг ADS_USE_SEALING при вызове ADsOpenObject или IADsOpenDSObject::OpenDSObject. Флаг ADS_USE_SEALING также можно использовать для проверки целостности данных, т. е. для обеспечения того, чтобы полученные данные совпадали с отправленными данными. Если указан флаг ADS_USE_SEALING, флаг ADS_USE_SIGNING также указывается автоматически. Оба флага требуют проверки подлинности Kerberos, которая работает только в следующих условиях:
- Клиентский компьютер необходимо войти в домен Windows или в домен, доверенный доменом Windows.
- ADsOpenObject или IADsOpenDSObject::OpenDSObject должен вызываться с пустыми учетными данными; то есть альтернативные учетные данные нельзя указать.
Шифрование на основе SSL
Чтобы использовать шифрование на основе SSL, укажите флаг ADS_USE_SSL при вызове ADsOpenObject или IADsOpenDSObject::OpenDSObject. Если указан только флаг ADS_USE_SSL , ADSI открывает SSL-порт 636, а затем выполняет простую привязку по каналу SSL. Если заданы флаги ADS_SECURE_AUTHENTICATION и ADS_USE_SSL, поведение привязки зависит от клиента, из которой выполняется вызов. В неподдерживаемых версиях Windows ADSI сначала открыл SSL-канал и выполняет простую привязку с использованием указанного имени пользователя и пароля или текущего контекста пользователя, если имя пользователя и пароль имеют значение NULL. В поддерживаемых версиях Windows ADSI выполняет безопасную проверку подлинности, а не простую привязку.
Чтобы использовать шифрование на основе SSL при взаимодействии с Active Directory, Active Directory должен включить инфраструктуру открытых ключей (PKI). PKI можно включить, настроив корпоративный центр сертификации на одном из серверов в Active Directory, включая один из серверов Active Directory. Настройка корпоративного центра сертификации приводит к тому, что сервер Active Directory получает сертификат сервера, который затем можно использовать для шифрования на основе SSL.