Как организовать авторизацию в веб-клиенте 1С без отображения логина и пароля в истории браузера?

Программист 1С v8.3 (Управляемые формы) Промышленность, строительство и АПК
← На главную

При работе с веб-клиентом 1С часто возникает задача автоматического входа пользователя из сторонних систем (например, с корпоративного портала). Самый простой путь — передача параметров N (логин) и P (пароль) прямо в URL-строке. Однако этот метод имеет критическую уязвимость: учетные данные сохраняются в истории браузера, кэше и логах веб-сервера. В условиях общего доступа к компьютеру (например, в цехах или на терминалах самообслуживания) это создает риск несанкционированного доступа.

В данной статье мы подробно разберем, как реализовать безопасную авторизацию, рассмотрим использование POST-запросов, обсудим настройку сквозной аутентификации (NTLM) и проанализируем гибридные схемы с использованием идентификационных карт.

Метод 1. Аутентификация с помощью POST-запроса к ресурсу e1cib/start

Это штатный механизм платформы «1С:Предприятие», предназначенный как раз для сценариев интеграции с внешними сайтами. Суть метода заключается в том, что данные пользователя передаются не в заголовке GET-запроса (адресная строка), а в теле запроса, которое браузер не сохраняет в истории.

Рассмотрим по шагам, как это реализовать:

  1. Подготовка внешней страницы. На вашем ресурсе (портале), откуда происходит переход в 1С, необходимо создать скрытую HTML-форму.
  2. Формирование параметров. Форма должна содержать два ключевых поля: v8_user для имени пользователя и v8_password для пароля.
  3. Отправка данных. Метод формы должен быть установлен как POST, а действие (action) должно указывать на адрес вашей информационной базы с окончанием /e1cib/start.

Проанализируем пример HTML-кода, который можно разместить на стороннем ресурсе для бесшовного перехода:


<form id="loginForm1C" method="POST" action="https://server.com/base_name/e1cib/start">
    <input type="hidden" name="v8_user" value="ИмяПользователя">
    <input type="hidden" name="v8_password" value="Пароль123">
    <input type="submit" value="Войти в 1С">
</form>

Выясним, что происходит при нажатии кнопки. Браузер отправляет POST-пакет на веб-сервер 1С. Платформа распознает параметры авторизации, проверяет их и открывает сеанс веб-клиента. В строке адреса при этом остается чистый URL без паролей.

Важное замечание по безопасности: Как было отмечено в обсуждении, использование этого метода без протокола SSL (HTTPS) крайне опасно. В открытых сетях POST-запрос легко перехватывается снифферами. Поэтому обязательным условием является настройка сертификата на веб-сервере.

Метод 2. Сквозная аутентификация (NTLM/Kerberos)

Если ваше предприятие использует доменную структуру (Active Directory), наиболее правильным решением будет использование операционной аутентификации. В этом случае пользователю вообще не нужно вводить пароль 1С — система «узнает» его по факту входа в Windows.

Разберем процесс настройки этого механизма:

  1. Настройка пользователя в 1С. В карточке пользователя в Конфигураторе необходимо установить флаг Аутентификация операционной системы и указать его доменное имя в формате DOMAIN\UserName.
  2. Настройка веб-сервера. Если вы используете IIS, нужно включить модуль «Windows Authentication» и отключить «Anonymous Authentication» для конкретной публикации базы. Если используется Apache, потребуется подключение модуля mod_auth_sspi.
  3. Настройка браузера. Для автоматической передачи данных домена браузер (Chrome, Edge) должен воспринимать адрес сервера 1С как зону «Местная интрасеть» (Local Intranet).

Этот метод полностью исключает передачу паролей через URL и является наиболее защищенным для внутренней корпоративной сети.

Метод 3. Гибридная схема с «техническим пользователем» и RFID-картами

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

Рассмотрим алгоритм работы:

  1. Создается один «технический» пользователь 1С с минимальными правами, который авторизуется автоматически (можно использовать POST-запрос или даже прописать в параметрах публикации, если это оправдано безопасностью терминала).
  2. При запуске открывается специализированная форма «киоска», которая ожидает считывания карты.
  3. После считывания RFID-карты код передается в 1С. Программа ищет соответствие кода карты и реального сотрудника в справочнике.
  4. Внутри сеанса 1С подменяется контекст: все документы и отчеты заполняются от имени того сотрудника, чья карта была считана, хотя технически сеанс запущен под общей учетной записью.

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


Процедура ПриНачалеРаботыСистемы()
    // Получаем параметры запуска, переданные через ключ /C
    ПараметрыЗапускаСтрока = ПараметрыЗапуска;
    
    Если ЗначениеЗаполнено(ПараметрыЗапускаСтрока) Тогда
        // Например, в параметре C передается ID обработки
        КодОбработки = ИзвлечьКодИзПараметров(ПараметрыЗапускаСтрока);
        
        // Открываем форму нужной обработки
        Если КодОбработки = "DailyReport" Тогда
            ОткрытьФорму("Обработка.ЕжедневныйОтчет.Форма");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Метод 4. Использование временных токенов (билетов)

Если вы хотите избежать передачи пароля даже в POST-запросе со стороны клиента, можно реализовать систему одноразовых токенов. Посмотрим, как это работает на практике:

  1. Портал предприятия (серверная часть) обращается к HTTP-сервису 1С.
  2. 1С генерирует случайный уникальный ключ (GUID), записывает его в регистр сведений вместе с ID пользователя и устанавливает время жизни ключа (например, 1 минута).
  3. Портал получает этот ключ и формирует ссылку для пользователя: https://server.com/base/ru_RU/?C=Token:GUID.
  4. В 1С в процедуре ПриНачалеРаботыСистемы считывается GUID, проверяется его наличие в регистре, и если он валиден — сеанс продолжается.

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

Рекомендации по защите рабочих мест

Помимо выбора метода авторизации, важно правильно настроить само рабочее место (компьютер в цеху). Рассмотрим дополнительные меры:

Подводя итог, наиболее современным и рекомендуемым способом является POST-запрос в сочетании с HTTPS или использование сквозной доменной авторизации. Это позволяет сохранить баланс между удобством пользователя (быстрый вход) и требованиями информационной безопасности предприятия.

← На главную