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

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

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

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

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

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

1. Отключение в 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

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

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

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

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

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

      На заключительном шаге Python-скрипт соединяется с базами данных MySQL или PostgreSQL:

      • Используя 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).
          Это позволяет ответственным лицам быстро проверить корректность исполнения процесса и при необходимости вмешаться.