LDAP против ADSI в манипуляциях с пользователями Active Directory - PullRequest
1 голос
/ 22 сентября 2009

Мне было предложено предоставить веб-сервис для управления пользователями Active Directory через интрасеть. Мне сообщили, что LDAP рассматривается как уязвимость безопасности и не должна использоваться.

Учитывая это ограничение, мне удалось подключиться через ADSI с объектом DirectoryEntry, например так:

DirectoryEntry de = new DirectoryEntry();
de.Path = "WinNT://TheDomain.local";
de.Username = "NTUser1";
de.Password = "pwdpwdpwd2";

Я могу пройти через потомков этого DirectoryEntry, чтобы получить те, которые являются пользователями. На пользователях я вижу следующие основные свойства: UserFlags, MaxStorage, PasswordAge, PasswordExpired, LoginHours, FullName, Описание, BadPasswordAttempts, LastLogin, HomeDirectory, LoginScript, Профиль, HomeDirDrive, Параметры, PrimaryGroupID, Имя, MinPasswordLength, MinPasswordAgeLagethwordwordAgeAge , AutoUnlockInterval, LockoutObservationInterval, MaxBadPasswordsAllowed, objectSid.

Существует ряд свойств пользователя, которые видны в MMC Active Directory, которые недоступны из объекта DirectoryEntry, в том числе: LastName, NameSuffix, Department и т. Д. ...

Все эти другие свойства задокументированы в msdn как предоставляемые IADsUser (http://msdn.microsoft.com/en-us/library/aa746340%28VS.85%29.aspx).

1) Является ли LDAP на самом деле уязвимым протоколом? Больше, чем соединение ADSI (WinNT), показанное выше? LDAP, кажется, довольно распространен для этой цели.

2) Как я могу получить / установить эти другие свойства пользователя?

ТИА

Ответы [ 2 ]

2 голосов
/ 06 октября 2013

1- Передача пакетов LDAP выполняется в виде открытого текста, поэтому кто-то может захватить ваши данные. Если вы используете протокол LDAPS или TLS-включить ваше соединение LDAP, это безопасно. ADSI является просто реализацией клиента LDAP от Microsoft и поддерживает соединения как LDAP, так и LDAPS. Когда вы используете ADSI против вашей корпоративной Active Directory, он в первую очередь пытается установить соединение LDAPS. Таким образом, вы в безопасности от использования ADSI; или вы можете использовать любой другой клиент или библиотеку программирования, если вы используете безопасное соединение. порт по умолчанию для LDAPS - 636.

2- Чтобы получить больше информации об объектах каталогов, вы можете использовать метод GetInfoEx , он загружает именно те атрибуты, которые вам нужны. Ниже вы можете увидеть пример: http://msdn.microsoft.com/en-us/library/aa746411%28v=vs.85%29.aspx

Но некоторые свойства, которые вы ищете, хранятся в Active Directory с именами атрибутов, отличными от консоли MMC. например Имя хранится как «указанное имя», а фамилия хранится как «sn». Посмотрите здесь , чтобы найти имена нужных вам атрибутов;

Вы можете найти больше информации здесь .

1 голос
/ 18 мая 2011

http://www.techgalaxy.net/Docs/Dev/Using_ADSI_and_LDAP_with_AD.htm объясняет разницу между LDAP и ADSI: http://technet.microsoft.com/en-us/library/cc755809(v=ws.10).aspx включает иллюстрации.

Короче говоря, ADSI - это упрощенная оболочка для LDAP. Если есть какая-то небезопасность, он находится в привязке, которая здесь выглядит ПРОСТОЙ (незашифрованное незашифрованное имя пользователя и пароль). Если вы связываете LDAP-соединение любым другим способом (или через SSL-соединение), оно должно быть безопасным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...