Как получить пользователей с помощью LDAP в 1С?
Я хочу в 1C достать всех пользователей с помощью LDAPS из Active Directory.
Когда я использую ПолучитьCOMОбъект("LDAP://domain.ru:123")
, то возвращается COM объект. Но это с LDAP, а надо LDAPS. И в отладчике еще почему-то COM объект пустой. Но если написать ПолучитьCOMОбъект("LDAPS://domain.ru:123")
, то почему-то сразу ошибка вылетает.
Не понятно почему не работает, потому что есть еще отдельный почтовый сервис (не в 1С), который тоже использует LDAPS, и там все нормально работает.
Еще просто сделать ПолучитьCOMОбъект("LDAPS://domain.ru:123")
тоже нельзя, потому что нужно авторизоваться. Видел в примерах, что авторизуются с помощью логин@домен
, но нашел еще вариант с CN=admins,CN=login
или UID=login,CN=admins,CN=login
.
Пробовал авторизироваться способами ниже, которые в итоге тоже не сработали из-за ошибки Произошла исключительная ситуация (Active Directory): The specified domain either does not exist or could not be contacted.
.
COMОбъект = ПолучитьCOMОбъект("LDAP://");
Корень = COMОбъект.OpenDSObject("LDAP://RootDSE", "login@domain.ru:123", "password", 1);
COMОбъект = ПолучитьCOMОбъект("LDAP://domain.ru:123");
Корень = COMОбъект.OpenDSObject("LDAP://OU=people,DC=domain,DC=ru", "CN=admins,CN=login", "password", 1);
UPD1: Сейчас еще пробую подключится так:
СоединениеАДО = Новый COMОбъект("ADODB.Connection");
СоединениеАДО.ConnectionString = "Provider=ADSDSOObject;User Id=login;Password=password;";
СоединениеАДО.Open();
Но в третьей строке возникает ошибка
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
UPD2: Сейчас максимально далеко зашел:
СоединениеАДО = Новый COMОбъект("ADODB.Connection");
СоединениеАДО.Provider = "ADSDSOObject";
СоединениеАДО.Properties("User Id").Value = "login";
СоединениеАДО.Properties("Password").Value = "password";
СоединениеАДО.Open("LDAPS://domain.ru:636");
В 3 и 4 строке всё работает, но не работает вторая (5 пока не могу проверить без 2). Во второй строке появляется ошибка (ADODB.Connection): Supplied provider is different from the one already in use.
. По умолчанию стоит MSDASQL.1
.