OData4T
(/hs/odatat/v4/) работает на отдельной публикации базы, где веб-сервер входит в базу под фиксированным
служебным пользователем, а расширение проверяет токен и применяет профиль токена.
1. Служебный пользователь
Создайте пользователя информационной базы, напримерodata-svc, и назначьте ему:
- роль расширения
OData4_СлужебныйПользователь; - роли конфигурации на чтение (и, если нужно, запись) объектов, которые будут доступны по токенам.
В конфигурациях на БСП служебной учётке для записи нужна и базовая роль (
БазовыеПраваБСПили аналог), а в справочнике «Пользователи» — её элемент.
2. Публикация
Опубликуйте базу второй раз, например под именемbase-svc, с входом под служебным пользователем
(usr и pwd в default.vrd) и публикуйте на ней только сервис токенов:
default.vrd
odata принимает только запрос, аутентифицированный Basic текущего
пользователя, а служебной учётке вход по Basic запрещён (403, настройка «Разрешить Basic служебным
учёткам», по умолчанию выключена).
Проверка:
3. Токен
Выпустите токен в форме «Настройки OData4» на вкладке «Токены» и выполните запрос:Адрес клиента за прокси
Ограничение токена по IP проверяется по адресу, который ставит доверенный прокси: сервис не видит адреса соединения. Без доверенного заголовка токен с разрешёнными IP отвергается (401).
В настройках (вкладка «Аутентификация») задайте:
- Заголовок адреса клиента —
X-Forwarded-ForилиX-Real-IP; - Доверять заголовку адреса клиента — включено;
- Число доверенных прокси — сколько прокси стоит перед веб-сервером 1С (по умолчанию 1).
X-Forwarded-For справа: каждый прокси дописывает в конец адрес, с которого к нему пришли,
а всё левее присылает клиент и может подделать. При числе прокси N адрес клиента — N-й адрес справа.
X-Forwarded-For сам, только если клиент его не прислал, поэтому
веб-сервер должен перезаписывать заголовок, как в примере для Apache.