Войти

Показать полную графическую версию : Пользователи определенных групп из AD с их username


zhuk09
24-07-2014, 12:29
Всем добрый день! Объясню задачу автоматизации. Есть 2 сервера openfire в разных xmpp доменах соединенные между собой. Пользователи и группы берутся из AD. Встала задача объединить 2 ростера, т.е чтобы пользователи 1-го xmpp домена вмдели пользователей 2-го xmpp домена. Сделать это можно либо в ручную в клиенте у каждого пользователя, либо через базу MySQL, таблицы ofRoster and ofRosterGroups https://community.igniterealtime.org/message/200961#200961.

Хотелось бы автоматизировать все это, т.е скрипт который
1.выбирает пользователей с их username определенных групп (CN) из AD в массив (или текстовый вид csv) в одном домене AD (xmpp - домене), потом тоже самое в другом домене AD (xmpp-домене).
2. далее алгоритм таков, в базе SQL в таблице ofRosterGroups одного домена А должны создаться строки с названием группы другого домена В по принципу, в домене А 30 пользователей, а в домене В в эту группу входит 7 пользователей, значит в домене А в базе SQL в таблице ofRosterGroups должно создаться 210 строк с названием группы домена В.
INSERT INTO `ofRosterGroups`(`rosterID`, `rank`, `groupName`) VALUES ([value-1],[value-2],[value-3])
3. далее в базе MySQL домена А в таблице ofRoster уже непосредственно создаем для каждого из 30 пользователей, пользователей домена В (7 пользователей) по тому же принципу 7*30=210.
INSERT INTO `ofRoster`(`rosterID`, `username`, `jid`, `sub`, `ask`, `recv`, `nick`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7])
4. Далее поочередно запустить скрипт в разных доменах и получить искомый результат.

Если что-то не понятно в моем объяснение, пишите, постараюсь подробно изложить данный вопрос!

zhuk09
24-07-2014, 13:53
хотел еще заметить, в таблице ofRosterGroups параметр rosterID должен быть текущее значение + 1 в цикле до значения в примере 210

zhuk09
25-07-2014, 15:35
Товарищи гуру скриптов, не ужели нет ни каких вариантов??? Может хотя бы начнем обсуждать тему?)!

Iska
25-07-2014, 15:50
Ну, я, скажем, не знаю ни что такое «сервер openfire», ни «xmpp домен». Что я могу тут обсуждать?!

zhuk09
25-07-2014, 19:30
Ну, я, скажем, не знаю ни что такое «сервер openfire», ни «xmpp домен». Что я могу тут обсуждать?! »
Это Вам совершенно не нужно! Я привел пример для того, что бы на форуме понимали что я делаю, и может быть где-то и в чем-то поправили.
Что нужно
1. Запросом вытащить всех пользователей и одного домена Windows и из второго домена с атрибутами:
cn, sAMAccountName, userPrincipalName, а также в какой группе этот пользователь находится (будет перечень групп CN=, из этих групп взять атрибут member и записать к пользователю).
Пример:
Иванов Иван Иванович, Ivanov, Ivanov@domain.local + группа
Все это в текстовый файл или другой формат, что бы потом можно было к этой информации обращаться.

2. В итоге должно получиться 2 файла с информацией из 2-х доменов Windows.
а) создать ofRosterGroups через sql запрос
INSERT INTO `ofRosterGroups`(`rosterID`, `rank`, `groupName`) VALUES ([value-1],[value-2],[value-3])
по принципу
в базе SQL в таблице ofRosterGroups одного домена А должны создаться строки с названием группы другого домена В по принципу, в домене А 30 пользователей, а в домене В в эту группу входит 7 пользователей, значит в домене А в базе SQL в таблице ofRosterGroups должно создаться 210 строк с названием группы домена В. »
Данные по количеству групп и числу пользователей будут в 2-х файлах.
groupName = группа, rosterID = цикл +1, rank - постоянное значение
б) потом необходимо по для первого пользователя из 1-го файла добавить всех пользователей 2-го в виде запроса sql
INSERT INTO `ofRoster`(`rosterID`, `username`, `jid`, `sub`, `ask`, `recv`, `nick`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7])
rosterID = пункт а, username = sAMAccountName 1-го домена, jid = userPrincipalName 2-го домена, nick = cn 2-го домена.
Т.е мы к пользователям 1-го домена (из 1-го файла) по параметру username добавляем пользователей 2-го домена (из 2-го файла) по параметрам jid = userPrincipalName 2-го домена, nick = cn 2-го домена, rosterID = группы 2-го домена

zhuk09
28-07-2014, 13:13
Ау товарищи гуру!!!




© OSzone.net 2001-2012