IT For Prof | IT-аутсорсинг проектов | Автоматизация увольнения сотрудника

Автоматизация увольнения сотрудника

Автоматизированное увольнение

Автоматизация увольнения сотрудника

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

Логика процесса:

Инициатором деактивации может выступать любое приложение или сервис, способный отправлять события (1С:ЗУПBitrix24, CRM, Telegram-бот). При поступлении события о факте увольнения запускается автоматизированная цепочка действий.

Основные этапы:

1. Отключение в Active Directory

Первым шагом является блокировка учётной записи в Active Directory — централизованной системе управления доступом.

После получения события увольнения сервер на Linux, используя Webhook, запускает Python-скрипт. Данный скрипт выполняет следующий функционал:

    • Принимает данные о сотруднике (логин, идентификатор, учетную запись, отдел, должность и т.д.).
    • Обращается к LDAP-службе Active Directory, чтобы получить DN (Distinguished Name) пользователя.
    • Запускает PowerShell-скрипт (вызов через SSH или WinRM), который автоматически блокирует учётную запись в AD, выставляя соответствующие флаги (AccountDisabled)

    Используемый стек:

      • Python для обработки REST-запросов и приёма Webhook-событий.
      • Python + ldap3 для получения информации о пользователе из AD.
      • PowerShell для изменения статуса учётной записи в AD (Set-ADUser -AccountDisabled $true).

      2. Отключение в Bitrix24

      После блокировки в AD отключается доступ к Bitrix24.

      Далее Python-скрипт обращается к Bitrix24 через REST API:

        • Используя requests, отправляются запросы к официальному API Bitrix24.
        • Блокируется пользователь, закрываются активные подключения.
        • Пользователь принудительно разлогинивается. 

        Используемый стек:

          • Python + requests для REST-запросов к Bitrix24.
          • Обработка JSON-ответов и закрытие всех сеансов сотрудника.

          3. Удаление сессий и устройств из MySQL/PostgreSQL

          Для предотвращения повторного входа в системы после блокировки в AD удаляются все сессии и привязанные устройства из баз данных MySQL и PostgreSQL.

          Python-скрипт соединяется с базами данных MySQL или PostgreSQL:

            • Используя pymysql или psycopg2, устанавливается соединение с БД.
            • Выполняются SQL-запросы, удаляющие все записи о сессиях и зарегистрированных устройствах, связанных с уволенным сотрудником.

            Используемый стек:

            • Python + pymysql/psycopg2 для работы с БД.
            • SQL-запросы для удаления данных о сеансах.

            Таким образом, это не даёт возможности повторного входа с сохранённой сессий, даже если учётная запись в AD по ошибке будет вновь включена, сотрудник не сможет войти в Битрикс24.

            Автоматизация увольнения сотрудника

            Дополнительные операции:

            Отключение RDP-сеансов:

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

            С помощью PowerShell-сценария, выполняемого от привилегированного пользователя, выполняются следующие действия:

              • Получение списка серверов из Active Directory (Get-ADComputer с фильтром по определённым OU или группам, учитывая только активные узлы).
              • На каждом сервере по RDP (через Invoke-Command или Enter-PSSession) определяется наличие сессии уволенного сотрудника (quser / qwinsta команды внутри PowerShell).
              • Сессия принудительно завершается (logoff ), блокируя дальнейший доступ.

              Отключение в VMware Horizon:

              С помощью PowerCLI (модуль для PowerShell) подключаемся к Horizon Environment:

                • Подключение к Connection Server (Connect-HVServer).
                • Поиск пользователя и принудительное завершение всех его активных десктопных сессий (например, Remove-HVSession).
                • Таким образом, уволенный сотрудник теряет доступ к VDI-инфраструктуре.

                Блокировка профиля OpenVPN:

                Для OpenVPN используется XML-RPC API-сервис:

                  • Python-скрипт устанавливает XML-RPC соединение с OpenVPN Access Server.
                  • Выполняется удаление или блокировка пользовательского профиля, а также принудительный разрыв всех текущих VPN-сессий.
                    Это исключает доступ к корпоративной сети извне.

                  Отключение почты:

                  Доступ к почтовому серверу (например, Kerio, Exchange или Postfix с Dovecot) отключается через API или прямое подключение:

                    • Если используется Exchange, вызывается Exchange Management Shell (PowerShell) или EWS API для отключения почтового ящика.
                    • При использовании Postfix/Dovecot — Python-скрипт может изменять конфигурацию или записи в БД, отключая учётную запись или перемещая её в «заблокированную» группу, а также завершать IMAP/POP3 сессии.

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

                    Финальный отчет:

                    После завершения всех этапов автоматически формируется отчёт:

                      • Python-скрипт собирает информацию о статусе каждого шага (успешно/ошибка),
                      • Генерирует структурированный отчёт (JSON или Markdown),
                      • Отправляет его инициатору процесса в Bitrix24 (через REST API метод отправки сообщений в чат или постановку задачи) или в Telegram (через Bot API метод sendMessage).
                        Это позволяет ответственным лицам быстро проверить корректность исполнения процесса и при необходимости вмешаться.