Наводим порядок в 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
89
89 Скачать (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 Администрирование Перфекционизм

См. также

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    7770    55    22    

66

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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

16800 руб.

06.12.2023    8843    42    5    

73

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10428    36    24    

61

SALE! 35%

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3120 руб.

14.01.2013    187984    1138    0    

912

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

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

14400 руб.

29.04.2020    32669    106    152    

73

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

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    62815    94    59    

79

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

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

6000 руб.

06.11.2012    72788    625    45    

84

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

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

3000 руб.

21.07.2022    9832    7    4    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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с установить значение не выбрано, получается только установить или истина или ложь. Не нашел нигде информации как сбросить значение. Может быть вы сталкивались и сможете подсказть. Заранее спасибо
Оставьте свое сообщение