> ## Documentation Index
> Fetch the complete documentation index at: https://docs.1unic.com/odatav4/llms.txt
> Use this file to discover all available pages before exploring further.

# Модель доступа

> Два сервиса, роли, профили, режимы прав служебного пользователя

## Два сервиса

| | `odata` — Basic | `odatat` — токены |
| - | - | - |
| Адрес | `https://server/base/hs/odata/v4/` | `https://server/base-svc/hs/odatat/v4/` |
| Кто входит | Пользователь 1С с паролем (Basic) | Клиент с токеном. Сеанс 1С открывается под фиксированным служебным пользователем публикации |
| Чьи права | Права и RLS пользователя 1С, плюс его профиль, если назначен | Профиль токена и права служебного пользователя (режим — ниже) |
| Для чего | Интеграции и пользователи 1С | Power BI, Excel, внешние системы и браузерные клиенты без учётки 1С |

Сервис токенов работает на отдельной публикации с фиксированным пользователем (`Usr=…` в `default.vrd`). Настройка описана на странице [Публикация для токенов](/odatav4/install/token-publication).

## Роли расширения

Как только в расширении есть роли, права на его объекты дают только они. Роль `ПолныеПрава` основной конфигурации их не даёт. Каждому пользователю сервиса назначается одна роль:

| Роль | Кому |
| - | - |
| `OData4_Пользователь` | Каждому пользователю Basic сервиса `odata` |
| `OData4_СлужебныйПользователь` | Фиксированному пользователю публикации токенов |
| `OData4_Администратор` | Администратору: настройки, профили, токены |

Роли расширения прав на данные конфигурации **не дают**. Данные читаются и пишутся с правами самого пользователя 1С: роли конфигурации на объекты по-прежнему нужны. В конфигурациях на БСП роли назначаются через профили групп доступа, иначе БСП снимет их при следующем пересчёте. Подробнее — на странице [Роли и пользователи](/odatav4/install/roles).

## Профили

Профиль сужает доступ поверх прав 1С. Он задаёт:

* матрицу операций по объектам;
* исключённые поля;
* отборы строк;
* лимиты запроса;
* правила частоты.

Пользователь Basic получает профиль через сопоставление «пользователь → профиль», токен — свой профиль при выпуске. Подробнее — на страницах [Профили](/odatav4/security/profiles) и [Токены](/odatav4/security/tokens).

**Строгий режим Basic** (вкладка «Аутентификация»): пользователь Basic без профиля получает `403`. Без строгого режима для такого пользователя действуют только права и RLS 1С.

<Frame caption="Вкладка «Аутентификация»: строгий режим Basic, режим профиля, права служебного пользователя">
  <img src="https://mintcdn.com/o-data-v4/8iesiGXq06VGcZxz/images/admin/settings-auth.png?fit=max&auto=format&n=8iesiGXq06VGcZxz&q=85&s=5d5f072ed176564ba3cfc8ecfaaab854" alt="Вкладка «Аутентификация»: строгий режим Basic, режим профиля, права служебного пользователя" width="1094" height="680" data-path="images/admin/settings-auth.png" />
</Frame>

## Права служебного пользователя

Настройка «Режим прав служебного пользователя» действует для сервиса `odatat`:

<AccordionGroup>
  <Accordion title="Роли конфигурации (по умолчанию, рекомендуется)">
    Права на объекты служебному пользователю выдаёт администратор ролями конфигурации, как любому пользователю 1С. RLS действует. Профиль токена сужает доступ дальше.
  </Accordion>

  <Accordion title="Роли расширения">
    Права на объекты состава публикации дают роли отдельного служебного расширения `OData4Права` с заимствованными объектами состава. Режим работает, только если и `OData4`, и `OData4Права` подключены без безопасного режима. Расширение нужно пересобирать после изменения состава.

    Генератор `OData4Права` пока не входит в публичный дистрибутив и будет опубликован позже. До этого используйте режим «Роли конфигурации».
  </Accordion>

  <Accordion title="Привилегированный">
    Чтение и запись идут в привилегированном режиме. Доступ определяет **только профиль токена**, права и RLS 1С не действуют. Режим требует `OData4` без безопасного режима, в безопасном запросы `odatat` получают `503`. Выбирайте его, только если профили всех токенов настроены точно.
  </Accordion>
</AccordionGroup>

**Basic служебных учёток запрещён.** Пароль служебного пользователя лежит в `default.vrd`, а профиль ему приходит только из токена. По Basic без профиля он видел бы всё, что дают его роли, в обход профилей токенов. Поэтому учётка из списка служебных на сервисе `odata` получает `403`. Фиксированный пользователь публикации токенов попадает в список сам при первом запросе к `odatat`. Флажок «Разрешить Basic служебным учёткам» включают, только если та же учётка служит и обычным пользователем Basic. При включённом флажке настройки показывают предупреждение.

На публикации токенов сервис `odata` принимает только запрос, аутентифицированный Basic текущего пользователя. Заголовок `Authorization` разбирается строго, любая нестандартная форма получает `401`.

## Ответы об отказе

| Код | Когда |
| - | - |
| `401` | Нет учётных данных или токена, токен не найден, отозван, истёк, адрес клиента не разрешён. Причина названа, имя токена и адрес — только в журнале регистрации (`OData4.Безопасность`) |
| `403` | Нет роли расширения, профиль запрещает операцию, нарушены права 1С (с именем объекта), строгий режим Basic без профиля |
| `404` | Набор вне состава или закрыт профилем, объект вне отборов строк |
| `429` | Превышено правило частоты профиля, есть заголовок `Retry-After` |
| `500`, `503` | Постоянный текст без внутренних подробностей. Детали — в журнале регистрации, событие `OData4` |

## Когда действуют изменения

Отзыв токена, изменение профиля и сопоставления пользователя действуют со следующего запроса. Исключение — первый запрос после примерно 20 секунд простоя сеанса веб-сервера. Если платформа в этот момент не видит таблиц расширения, сервис может взять данные доступа, прочитанные этим сеансом не раньше чем 5 минут назад. Каждый такой случай пишется предупреждением `OData4.Безопасность` в журнал регистрации. Если таких данных нет, ответ — `503`.

<Tip>
  Публикуйте на публикации токенов только сервис `odatat`. Тогда сервис `odata` там недоступен совсем. Пример `default.vrd` — на странице [Публикация для токенов](/odatav4/install/token-publication).
</Tip>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.