Наводим порядок в Active Directory с помощью ЗУП / ЗИКГУ 3.1 (идентификация, отключение и актуализация учетных записей пользователей)

01.02.19

Администрирование - Информационная безопасность

Продолжаем использовать ЗУП 3.1 совместно с LDAP во имя автоматизации работы системного администратора. В этот раз займемся аудитом учетных записей. Обработка производит сопоставление учетной записи с данными сотрудников из ЗУП, причем с учетом недавних событий (для перехода на ЗУП 3.1 чаще всего используется рекомендованный перенос, не включающий уволенных сотрудников) есть возможность использовать объединенные с помощью COM-соединения данные ЗУП 2.5 и ЗУП 3.1. Также в данной обработке есть возможность массовой корректировки, заполнения данных и отключения учетных записей. Перед использованием обработки для душевного спокойствия необходимо сделать резервную копию Active Directory любым удобным способом. Протестировано на ЗУП 3.1.6 - 3.1.8.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Наводим порядок в Active Directory с помощью ЗУП/ЗИКГУ 3.1:
.epf 19,30Kb
91
91 Скачать (5 SM) Купить за 3 050 руб.

Представим достаточно сложную ситуацию с имеющимися учетными записями.

Имена учетных записей поражают своими вариациями:

  •  "Пупкин", за которым скрывается уволенный в незапамятные времена Пупкин Василий Кондратьевич 
  •   "Надежда Петровна" - какова вероятность что эта комбинация имени и отчества среди сотрудников встречается больше одного раза? Вероятность увеличивается пропорционально численности предприятия, спасибо кэп
  •  "Аристотель", который в жизни Минчев Аристотель Борисович, Первый заместитель генерального директора.  Кто осмелился создать его учетку без отчества?
  •   "Мейерсон Софья Карловна Кадровик" - вроде все не так плохо, но во-первых для должности и подразделения есть специальные красивые поля, а во вторых Софья Карловна уже давно не кадровик, а заместитель начальника Сметно-Штатного отдела
  •  "Мартынюк" - главного инженера тоже не пощадили, ни имени, ни отчества :(
  •   "Борис Семенович Кузьминых" - указано полное имя, но порядок у всех разный, то ФИО, то ИОФ 
  •  "Савинская З" - что-то знакомое.. о, это же администратор демо базы Савинская Зоя Юрьевна!
  •   "Саныч", "Иванова Окcана Валерьевна" (заметно, что в имени Оксана стоит английская буква "c"?) - бывает и такое, why not

(Реальные ситуации смоделированы с помощью данных демо базы ЗУП. Забегая вперед - все эти учетные записи поддаются идентификации, кроме последнего, Саныч и Окcана автоматизации не подлежат)

 

Учетные записи не содержат иной информации, кроме как наименования:

Которое как мы видим создано "как получится". Бонусом в поле "фамилия" стоит имя, а поле "имя" стоит фамилия, или вообще отчество. Отсутствуют данные о сотруднике, использующем учетную запись - не известна организация, в которой он работает, не известны подразделение и должность, но самое неприятное - отсутствует какой-либо уникальный идентификатор его сущности, каким мог бы быть табельный номер (EmpoyeeID).

 

В этом хаосе наверняка присутствует внушительный процент уволенных сотрудников, чьи учетные записи давно не актуальны и должны быть отключены.

Как в такой ситуации понять кто есть кто и что с ним делать?

Единственная зацепка, которая у нас есть, это некоторое подобие ФИО сотрудника:

Если бы при именовании учетных записей соблюдался какой-то единый порядок, в идеале Фамилия Имя Отчество - именно в таком порядке и без лишних символов, то все было бы намного проще. Можно было бы сопоставлять учетную запись с сотрудником по наименованию, да и от лишних символов тоже было бы легко избавиться и сопоставление бы удалось. Но в данном случае нужен произвольный алгоритм поиска, который будет искать приблизительное соответствие и также по возможности отсекать лишние слова ("Мейерсон Софья Карловна Кадровик", лишнее слово "Кадровик").

 

Данный алгоритм реализован в предлагаемой внешней обработке - переданное наименование учетной записи (Колонка "cn") ищется среди сотрудников ЗУП, работающих и уволенных:

Сразу возникает вопрос - сколько в организации частичных/полных тезок? В одной фирме вполне могут работать Иванов Иван Иванович - кладовщик и Иванов Иван Иванович - бухгалтер, как быть в такой ситуации? Ответ - сопоставление происходит только в случае единственного совпадения.

Т.к. поиск происходит по части ФИО, например учетные записи Петр Максимович и Аристотель на деле соответствуют сотрудникам Сорока Петр Максимович и Минчев Аристотель Борисович, то нужно учесть, что вполне возможно Петр Максимович такой не один, есть также Королёв Петр Максимович и это совершенно другой сотрудник (два Аристотеля в одной фирме вряд ли встретятся, но для имени принцип тот же).

Поэтому в случае, если для переданного cn находится несколько похожих сотрудников, поиск не считается успешным, колонка "Сотрудник" остается пустой, но для справки в колонку "Несколько вариантов" выводятся все совпадения.

При успешном поиске напротив учетной записи выводится ФИО найденного сотрудника (колонка "Сотрудник"), выводятся все кадровые данные из ЗУП , в том числе ДатаУвольнения, из какой базы получены данные (2.5 или 3.1) и выводятся данные учетной записи: кадровые данные по версии AD, отключена учетная запись или нет (колонка "AccountDisable"), комментарий  (колонка "Description"), и дата последнего входа в систему (колонка "LastLogin"). Если соответствий в 1С найдено не было, выводятся только данные учетной записи.

колонки, не поместившиеся на предыдущем скрине:

Для удобства у колонок, данные которых получены из ЗУП стоит картинка со значком "1С", а у колонок данных учетных записей картинка, напоминающая пользователя с компьютером.

Внимание! Achtung! Attention! В связи с тем, что происходит изменение данных (особенно если большого массива данных), перед использование обработки необходимо сделать резервную копию любым удобным способом, например.

Теперь, когда мы получили соответствие "Учетная запись - Сотрудник", можем привести в соответствие наименование учетной записи. Выбираем соответствующую команду обработки "Переименовать в формат Фамилия Имя Отчество" и нажимаем "Выполнить". Обратите внимание, меняется именно системное наименование учетной записи, а вместе с ним и корректно присваиваются значения полей отображаемой наименование "DisplayName", Фамилия "sn" и Имя "GivenName". Поля "Отчество" в данной системе не существует,  есть только поле инициалы, но если углубиться в вопрос - на самом деле это не совсем инициалы (советую почитать об этом, если вопрос с ними актуален). 

Проверяем - перезаполним данные по кнопке "Заполнить", заходим в оснастку ADUC - учетные записи переименованы:

 

Идеально!

 

Далее заполним кадровые данные для всех сотрудников, либо выберем конкретных:

помните бывшего кадровика Софью Карловну? Теперь у нее все как должно быть:

 

Следующая задача - избавиться от "мертвых душ".

Достаточно для этого, как вариант, отобрать тех пользователей, которые длительное время не используют свою учетную запись. Для этого в настройках добавлен отбор "Последний вход в систему в интервале". С помощью него можно выбрать тех людей, которые последний раз "логинились", например, еще в позапрошлом году - тогда значение отбора "Последний вход в систему в интервале" составит период с 01.01.2017 по 31.01.2017, те, кто последний раз логинился раньше или позже в список соответственно не попадут. Нажимаем заполнить для вывода списка, отмечаем все элементы либо произвольный список, выбираем команду "Отключить учетную запись" и нажимаем "Выполнить".

Также один из вариантов - это отключить тех, кто миллион лет назад уволен. Для этого в настройках указываем фильтр "Уволенные за период". К примеру, для того чтобы отключить всех уволенных за прошедшие два года, установите интервал с 01.01.2016 по 31.01.2017. Пример на демо-базе (там уволенные 7 лет назад, пора бы их отключить):

Однако обратите внимание, под этими учетными записями могут сидеть другие люди! На всякий случай поставьте также к уволенным фильтр "Последний вход в систему" сегодняшний день(или к примеру, неделю) - так будет понятно, какие учетные записи уволенных до сих пор используются. 

Также в настройках есть фильтр по организации, подразделению и должности. Для подключения необходимо через типовую форму выбрать пользователя домена, данные домена для подключения заполнятся автоматически в соответствии с выбранным пользователем.

Какие еще задачи можно решить с помощью это обработки?

Снова о Софье Карловне, бывшем кадровике :) Сегодня она заместитель начальника Сметно-Штатного отдела, а завтра она уже Начальник отдела труда и заработной платы и числится в подразделении "Управление", а в Active Directory все по-старому. С помощью обработки можно также актуализировать кадровые данные сотрудника, для этого просто выбираем вид операции "Заполнить кадровые данные".

По подобным случаям также готовится к публикации расширение для конфигурации ЗУП, которое автоматизирует процесс создания, отключения и актуализации учетных записей в связи с наступлением кадровых событий (прием, увольнение и перевод). Также предлагаю обратить внимание на мою предыдущую публикацию - групповое создание учетных записей из ЗУП 3.1 если нужно массово создать учетные записи всех работающих(или произвольного списка) сотрудников.

Всем удачи и порядка в Active Directory!

AD Active Directory ЗУП 3.1 Администрирование Перфекционизм

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    16430    113    51    

115

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    12362    49    33    

69

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

18000 руб.

06.12.2023    11292    48    8    

78

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    34165    109    152    

75

Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    32822    145    18    

51

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    74003    629    45    

88

Инструменты администратора БД Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    10302    10    4    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Glebis 13 13.02.19 13:01 Сейчас в теме
Есть небольшой подводный камушек: требуются права админа домена (а то и всего леса) для пользователя службы 1С. Если рядовой кадровик запустит в ЗУПе какую-нить (например, присланную по почте) обработку через Файл-Открыть, то обладая правами админа домена можно... много чего.

Поэтому считаю, что нужно при подключении по LDAP вводить логин-пароль администратора домена.
2. Туки Туки 52 27.02.19 08:40 Сейчас в теме
(1) Привет! Не совсем понимаю твоего замечания - конкретно здесь не нужно назначать эти права кадровику, пользователь 1С, связанный аутентификацией с админским пользователем домена, только выбирается в настройках. Поправь если я что-то упускаю.
3. user1338342 09.01.20 16:52 Сейчас в теме
Добрый день

Отличная статья. Но для отдела ИБ нужно больше функционала, создание отчетов, контроль администраторов и т.д.
На пример: сотруднику (в связи с отпуском коллеги) предоставили доступ на 2 недели, как не забыть вернуть как было? ))
Можно почитать про все возможности?

Александр.
10. Туки Туки 52 22.05.20 09:50 Сейчас в теме
(3) Привет, Александр! Почитать можно, но самый полный мануал на инглише у майкрософта) https://docs.microsoft.com
Отчеты, контроль и напоминания это скорее CRM системы, которых множество узконаправленных или громозких. Но не исключаю что посредтством LDAP можно подобное организовать, возможностей у него море)
4. user1247402 01.03.20 21:31 Сейчас в теме
Добры день !

Шикарная статья, ошибка при выполнение СведенияОВнешнейОбработке Метод объекта не обнаружен
7. Туки Туки 52 22.05.20 09:18 Сейчас в теме
(4) Спасибо :) Если проблема еще актуальна:
СведенияОВнешнейОбработке Метод объекта не обнаружен
это при попытке добавить в доп обработки? Можно использовать просто через файл - открыть, но если очень нужно встроить надо добавить в модуль обработки вот этот фрагмент:

Функция СведенияОВнешнейОбработке() Экспорт
	#Область Формирование_Таблицы_Команд
	Команды = ПолучитьТаблицуКоманд();
	ДобавитьКоманду(Команды, 
					"ПорядокВActiveDirectory",
					"ПорядокВActiveDirectory",  
					"ОткрытиеФормы", 
					Истина,  
					);
	#КонецОбласти
		                                                                  
	#Область ПараметрыРегистрацииОбработки
	ПараметрыРегистрации = Новый Структура;
	ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
	ПараметрыРегистрации.Вставить("Версия", "1.0");
	ПараметрыРегистрации.Вставить("Наименование", "ПорядокВActiveDirectory");
	ПараметрыРегистрации.Вставить("Информация", "ПорядокВActiveDirectory");
	Параметрырегистрации.Вставить("Команды", Команды);
	#КонецОбласти

	Возврат ПараметрыРегистрации;
КонецФункции
Показать
5. user1247402 02.03.20 20:18 Сейчас в теме
Добрый день !

Если БД на постгре на 1С сервер на дебиане - возможно ли использовать доработку ?
8. Туки Туки 52 22.05.20 09:19 Сейчас в теме
(5) Добрый, на постгре не тестировалась. нет в наличии)
6. GKMaxim 22.05.20 09:06 Сейчас в теме
{ВнешняяОбработка.НаводимПорядокВActiveDirectory.Форма.Форма.Форма(14)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2147024891(0x80070005): Отказано в доступе.
9. Туки Туки 52 22.05.20 09:20 Сейчас в теме
А в целом COM работает? Если нет, то можно попробовать это https://forum.infostart.ru/forum9/topic147327/
11. vtsuganov 03.08.20 07:59 Сейчас в теме
Здравствуйте, отличная обработка, но хотелось бы уточнить по правам. При выполнении записи в домен ОбъектАД.SetInfo() вываливается исключение "Произошла исключительная ситуация (Active Directory): Отказано в доступе". Авторизация Win под админом домена, запуск 1С под ним же не помогает.
12. vtsuganov 03.08.20 09:55 Сейчас в теме
С локальной базой под админом домена получилось, получается нужно дать права админа пользователю из под которого запущен сервер 1С? Можно в ADODB.Connection строкой подключения или через Provider задать свои логин и пароль домена, чтобы запускать мог пользователь?
13. forman-sgk 28.09.20 12:53 Сейчас в теме
Доброго времени суток, коллеги.
Как запустить данную обработку на платформе 1С:Предприятие 8.3 (8.3.17.1496)
Конфигурация: Зарплата и управление персоналом, редакция 3.1 (3.1.14.183)

При попытке добавить обработку в базу возникает сообщение "Метод объекта не обнаружен (СведенияОВнешнейОбработке)"
Что необходимо сделать, чтобы добавить обработку в базу.
14. forman-sgk 28.09.20 13:06 Сейчас в теме
При попытке добавить листинг кода в модуль обработки

Функция СведенияОВнешнейОбработке() Экспорт
#Область Формирование_Таблицы_Команд
Команды = ПолучитьТаблицуКоманд();
ДобавитьКоманду(Команды,
"ПорядокВActiveDirectory",
"ПорядокВActiveDirectory",
"ОткрытиеФормы",
Истина,
);
#КонецОбласти

#Область ПараметрыРегистрацииОбработки
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Наименование", "ПорядокВActiveDirectory");
ПараметрыРегистрации.Вставить("Информация", "ПорядокВActiveDirectory");
Параметрырегистрации.Вставить("Команды", Команды);
#КонецОбласти

Возврат ПараметрыРегистрации;
КонецФункции

Возникает сообщение

{ВнешняяОбработка.НаводимПорядокВActiveDirectory.МодульОбъекта(3,15)}: Процедура или функция с указанным именем не определена (ПолучитьТаблицуКоманд)
Команды = <<?>>ПолучитьТаблицуКоманд(); (Проверка: Сервер)
{ВнешняяОбработка.НаводимПорядокВActiveDirectory.МодульОбъекта(4,5)}: Процедура или функция с указанным именем не определена (ДобавитьКоманду)
<<?>>ДобавитьКоманду(Команды, (Проверка: Сервер)
15. Navakouski 1 28.12.21 23:56 Сейчас в теме
Добрый день. Подскажите пожалуйста, тоже реализовал выгрузку в АД, но не нашел возможности как в атрибут типа boolian из 1с установить значение не выбрано, получается только установить или истина или ложь. Не нашел нигде информации как сбросить значение. Может быть вы сталкивались и сможете подсказть. Заранее спасибо
Оставьте свое сообщение