Аутентификация и доступ
Какие виды учётных данных есть в EVA, как они проверяются и как роль, группа и ассистент вместе определяют, что доступно модели в конкретном чате.
Виды учётных данных
| Что | Кто использует | Как передаётся |
|---|---|---|
| Сессия входа | Пользователи веб-интерфейса | Bearer-токен и cookie eva_session, чтобы работали переходы браузера, например на /api/docs |
| API-ключ платформы | Внешние клиенты /v1 и /mcp | Authorization: Bearer <префикс>_... |
| Токен устройства | EVA Desktop | Выдаётся облаком при входе с Desktop и привязан к устройству |
| Ключи провайдеров | Runtime при запросе к модели | Хранятся зашифрованными, наружу не выдаются |
Срок жизни сессии задаётся SESSION_TTL_DAYS, подпись SESSION_SECRET.
Вход
- Локальный: логин и пароль, хранящийся в базе.
- LDAP: EVA подключается к каталогу служебной учётной записью, находит пользователя по фильтру, проверяет пароль и определяет группу и роль по сопоставлению групп каталога.
- Desktop: пользователь входит в облачную EVA, облако выдаёт токен устройства, дальше локальная EVA ходит в облако от его имени.
Права
Права проверяются по роли пользователя на каждом запросе к API. Интерфейс скрывает недоступные разделы, но источник правды всегда API.
Что видит модель в чате
Каждый фильтр только сужает набор. Тенанты мультитенантных MCP берутся из группы пользователя и передаются заголовками при подключении, модель их не видит.
Секреты
- Ключи провайдеров, пароль LDAP, секреты пакетов и OnlyOffice хранятся в базе в зашифрованном виде.
- Поля секретов в интерфейсе после сохранения показывают только факт наличия значения.
- В Desktop секреты пакетов привязаны к устройству.