В этом разделе описано использование плагина PluginLDAP (пока только только для Windows)
LDAP — (англ. Lightweight Directory Access Protocol — «облегчённый протокол доступа к каталогам») — протокол прикладного уровня для доступа к службе каталогов X.500, разработанный IETF как облегчённый вариант разработанного ITU-T протокола DAP. LDAP — относительно простой протокол, использующий TCP/IP и позволяющий производить операции аутентификации (bind), поиска (search) и сравнения (compare), а также операции добавления, изменения или удаления записей.
Плагин PluginLDAP предназначен для авторизации пользователей и выборке расширенной информации о пользователях в каталоге. Другими словами он предоставляет только операции аутентификации bind() и поиска search(), которые доступны в среде Windows 7 и старше (См. объект Ldap).
Также в него включен функционал не относящийся к LDAP, но облегчающий поиск локальных(доменных) групп и пользователей в локальных(доменных) группах. Это единственный функционал работающий в семействе Windows <= XP. Он имеет ограничения, при работе с группами расположенными в доменном каталоге Active Directory, в частности не может быть использован с глобальными и универсальными группами, только с локальными доменными группами. Немного о доменных группах можно почитать ниже.
Детальное описание групп в домене несколько сложно для понимания, следующая информация вкратце объясняет их назначение
Перед использованием плагина, его необходимо подключить командой
// Загрузить плагин и присвоить его объект переменной
var pluginLdap = post.loadPlugin('PluginLDAP');
Отсутствуют
Отсутствуют
Object pluginLdap.loc_user_info(String user, String host = "") Функция
Вывод информации о пользователе
var info = pluginLdap.loc_user_info("nsrb2","orb.kunpp.ru")
if(info === false) post.log('e', 'Пользователь не найден')
// возвратит объект или false
{
"comment": "Начальник смены ЩДК2",
"full_name": "НСРБ ЩДК2",
"name": "nsrb2"
}
bool pluginLdap.loc_user_exist(String user, String host = "") Функция
Проверить наличие пользователя
var info = pluginLdap.loc_user_exist("nsrb2@orb.kunpp.ru");
if(info) post.log('i', 'Пользователь существует');
else post.log('e', 'Пользователь не найден');
Array pluginLdap.loc_groups_user(String user, String host = "") Функция
Вывод локальных групп в которых есть пользователь
var info = pluginLdap.loc_groups_user("orb.kunpp.ru\\nsrb1")
if(info === false) post.log('e', 'Пользователь не найден')
// возвратит массив локальных групп или false
[
"dr_admin",
"jcjs",
"Users"
]
Array pluginLdap.loc_groups_user(String group, String host = "") Функция
Выборка всех членов локальной группы
var info = pluginLdap.loc_groups_user("rados3", "orb.kunpp.ru")
if(info === false) post.log('e', 'Группа не найдена')
// возвратит массив участников или false
[
{
"name": "rados",
"name_domain": "ORB\\rados",
"type": "Group"
},
{
"name": "rados4",
"name_domain": "ORB\\rados4",
"type": "User"
},
{
"name": "rados3",
"name_domain": "ORB\\rados3",
"type": "User"
},
{
"name": "rados1",
"name_domain": "ORB\\rados1",
"type": "User"
},
{
"name": "rados2",
"name_domain": "ORB\\rados2",
"type": "User"
}
]
bool testAuth(user, pass, host = "") Функция
Проверить сетевой логин и пароль на сервере host
var ok = pluginLdap.testAuth("rados3", "password", "dc1.orb.kunpp.ru");
if(ok) post.log('i', 'Учетные данные проверены успешно');
else post.log('e', 'Нет пользователя или неверный пароль');
objPlugin pluginLdap.install(scriptEngine)
установка в JS конструкторов объектов
ВНИМАНИЕ! начиная с версии svn.r959 функцию .install() вызывать нет необходимости, ее вызов происходит в функции post.loadPlugin()
post.pluginLdap = post.loadPlugin('PluginLDAP');// Загрузить плагин и присвоить его объект переменной
var plg = post.pluginLdap.install(scriptEngine);// Установить в JS конструторы объектов
console.trace(post.pluginLdap); // Вывод всех функций и свойств в лог
после выполнения этого метода, для создания экземпляров объектов используется оператор new
// Создать объект, к свойствам и // методам которого можно обращаться в стиле Qt var ldap_object = new Ldap();
Чтобы не использовать функцию install несколько раз рекомендуется загрузку плагина обернуть в такую конструкцию
try{String(Ldap)}catch(e){
post.pluginLdap = post.loadPlugin('PluginLDAP');
post.pluginLdap.install(scriptEngine);
}
String pluginLdap.objects() Функция
Вывести список всех поддерживаемых объектов
var allSupportObjects = pluginLdap.objects(); // переменной allSupportObjects присвоится строка 'Ldap' // Плагин поддерживает создание объектов только этого типа