Skip to main content
Токен позволяет подключать отчёты и интеграции без пароля пользователя 1С. Сервис токенов OData4T (/hs/odatat/v4/) работает на отдельной публикации базы, где веб-сервер входит в базу под фиксированным служебным пользователем, а расширение проверяет токен и применяет профиль токена.

1. Служебный пользователь

Создайте пользователя информационной базы, например odata-svc, и назначьте ему:
  • роль расширения OData4_СлужебныйПользователь;
  • роли конфигурации на чтение (и, если нужно, запись) объектов, которые будут доступны по токенам. В конфигурациях на БСП служебной учётке для записи нужна и базовая роль (БазовыеПраваБСП или аналог), а в справочнике «Пользователи» — её элемент.
Что именно служебный пользователь может видеть, задаёт настройка «Права служебного пользователя» (вкладка «Аутентификация»):

2. Публикация

Опубликуйте базу второй раз, например под именем base-svc, с входом под служебным пользователем (usr и pwd в default.vrd) и публикуйте на ней только сервис токенов:
default.vrd
Публикация с фиксированным пользователем отдаёт без аутентификации все опубликованные на ней HTTP-сервисы. Поэтому выключите publishByDefault и publishExtensionsByDefault и перечислите только OData4T. Ограничьте права на чтение default.vrd: в нём пароль служебного пользователя.
Защита действует и без этого: сервис odata принимает только запрос, аутентифицированный Basic текущего пользователя, а служебной учётке вход по Basic запрещён (403, настройка «Разрешить Basic служебным учёткам», по умолчанию выключена). Проверка:

3. Токен

Выпустите токен в форме «Настройки OData4» на вкладке «Токены» и выполните запрос:
Способы передачи токена, срок действия, отзыв и ограничение по IP — на странице Токены.

Адрес клиента за прокси

Ограничение токена по IP проверяется по адресу, который ставит доверенный прокси: сервис не видит адреса соединения. Без доверенного заголовка токен с разрешёнными IP отвергается (401). В настройках (вкладка «Аутентификация») задайте:
  • Заголовок адреса клиента — X-Forwarded-For или X-Real-IP;
  • Доверять заголовку адреса клиента — включено;
  • Число доверенных прокси — сколько прокси стоит перед веб-сервером 1С (по умолчанию 1).
Адрес берётся из X-Forwarded-For справа: каждый прокси дописывает в конец адрес, с которого к нему пришли, а всё левее присылает клиент и может подделать. При числе прокси N адрес клиента — N-й адрес справа.
Без внешнего прокси веб-модуль 1С ставит X-Forwarded-For сам, только если клиент его не прислал, поэтому веб-сервер должен перезаписывать заголовок, как в примере для Apache.