Как настроить сквозную базовую авторизацию в веб-клиенте 1С через Nginx и Apache?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При публикации информационной базы 1С:Предприятие на веб-сервере Apache и использовании прокси-сервера Nginx с включенной базовой авторизацией (Basic Auth) пользователи часто сталкиваются с необходимостью вводить учетные данные дважды: сначала для веб-сервера Nginx, а затем в окне аутентификации самой платформы 1С. Разберем ситуативные решения этой проблемы и варианты передачи учетных данных для автоматического входа в веб-клиент.

Вариант 1. Проброс заголовка Authorization через Nginx

Рассмотрим основной технический способ передать авторизацию от Nginx к веб-серверу Apache и далее в 1С. Если имя пользователя и пароль, используемые при проверке в Nginx, полностью совпадают с учетными записями в информационной базе 1С, можно настроить сквозную передачу HTTP-заголовка Authorization.

Для реализации этой схемы проанализируем конфигурационный файл Nginx и добавим в блок проксирования location проброс соответствующего заголовка:


location / {
    proxy_pass http://127.0.0.1:8080/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Authorization $http_authorization;
}

При такой настройке Nginx передает сформированный заголовок Authorization: Basic <base64-строка> дальше на Apache. Платформа 1С:Предприятие считывает эти данные и производит авторизацию пользователя без повторного показа диалогового окна.

Вариант 2. Фиксация служебного пользователя в файле default.vrd

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

Для этого откроем файл конфигурации публикации default.vrd, расположенный в каталоге публикации базы на веб-сервере, и отредактируем атрибут ib элемента point:


<point name="mybase"
       alias="mybase"
       ib="File="C:\1C_Bases\BaseDB";usr=СлужебныйПользователь;pwd=ПарольСлужебногоПользователя;"
       enable="true">
</point>

Разберем особенности данного подхода:

  1. Все сеансы через данный URL заходят под единой учетной записью СлужебныйПользователь.
  2. Базовая авторизация выполняется один раз на уровне Nginx.
  3. Если внутри 1C необходима идентификация конкретных пользователей, потребуется разработать собственную логику обработки сеанса или передавать дополнительные параметры.

Вариант 3. Передача учетных данных через параметры URL

Платформа 1С:Предприятие поддерживает передачу логина и пароля непосредственно в адресной строке при обращении к веб-клиенту. Посмотрим на формат такой ссылки:

http://my-server.domain/mybase/ru_RU/?N=ИмяПользователя&P=Пароль

Выясним ключевые особенности применения параметров URL:

  1. Параметр N задает имя пользователя информационной базы.
  2. Параметр P передает пароль пользователя.
  3. Дополнительно можно использовать параметр cmd=start для явного указания команды запуска.

Важное предупреждение о безопасности: передача пароля в открытом виде через URL считается небезопасной, так как данные сохраняются в логах Nginx, Apache, истории браузера и сетевых прокси-серверах. Используйте данный способ только в изолированных защищенных сетях.

Вариант 4. Альтернативные методы единой точки входа (SSO)

Если простая сквозная авторизация Basic Auth не подходит по требованиям безопасности, проанализируем штатные механизмы платформы 1С для реализации беспарольного входа:

  1. Авторизация через OpenID / OpenID Connect: позволяет использовать внешний сервис аутентификации (например, Keycloak). Пользователь проходит авторизацию на портале один раз, после чего веб-клиент 1С принимает токен доступа.
  2. Сквозная аутентификация ОС (Kerberos / SPNEGO): на стороне Apache настраивается модуль Kerberos-авторизации, а в информационной базе у пользователей включается флаг «Аутентификация операционной системы». В этом случае вход происходит прозрачно под доменной учетной записью.
← На главную