Настройка аутентификации
Включите парольную защиту панели управления Meridian, настройте белый список маршрутов и управляйте администраторами.
Обзор
Meridian содержит встроенный механизм аутентификации, который защищает веб-интерфейс и API управления. Когда аутентификация включена, пользователь должен войти в панель управления и пройти авторизацию для каждого вызова API администрирования. Это критично для развёртываний за пределами тестовой среды и обязательно для production окружений.
В сценарии zero-config (docker run ... ghcr.io/neria-cloud/meridian:latest) Meridian при первом старте создаёт учётную запись admin/admin и автоматически включает аутентификацию. Эта страница описывает, как поменять учётные данные, добавить дополнительных пользователей и тонко настроить поведение шлюза.
Включение аутентификации
Шаг 1: Откройте раздел Security
- Зайдите в панель управления Meridian.
- Перейдите в Settings → Security.
- Найдите секцию Password protect the dashboard.
Шаг 2: Задайте имя пользователя и пароль
- Включите тумблер Password protect the dashboard.
- Введите Username в поле имени пользователя.
- Введите Password в поле пароля.
Поля имени пользователя и пароля становятся активными только после включения тумблера. Используйте устойчивый к подбору пароль (не менее 12 символов, смешанный регистр, цифры, спецсимволы).
Шаг 3: Аутентификация для inference вызовов (опционально)
По умолчанию при включённой аутентификации авторизация требуется для всех вызовов API, включая inference. Можно оставить защиту только для панели управления и API управления, освободив inference эндпоинты:
- Включите тумблер Disable authentication on inference calls.
- После включения:
- панель управления и API управления всё ещё требуют входа,
- inference эндпоинты (chat completions, embedding и т. п.) становятся публичными,
- вызов MCP-инструментов по-прежнему требует авторизации.
Эта опция полезна, когда LLM-шлюз отдаётся внутренним сервисам без авторизации, а доступ к панели управления остаётся под защитой.
Шаг 4: Белый список маршрутов (опционально)
Можно явно перечислить маршруты, которые полностью обходят проверку аутентификации — даже когда защита включена.
- Прокрутите до секции Whitelisted Routes.
- Введите маршруты через запятую в текстовом поле.
Поддержка wildcard. Маршруты, заканчивающиеся на *, обрабатываются как префиксные. Например, /api/webhook* совпадёт с /api/webhook, /api/webhook/v1, /api/webhook/github и так далее.
Пример значения:
/api/custom-webhook, /api/public-endpoint, /api/webhook*Системные маршруты /health, /api/session/login, /api/session/is-auth-enabled и /api/oauth/callback* всегда обходят аутентификацию — независимо от настройки. Whitelisted routes действуют только на панель управления и API управления; для inference эндпоинтов есть отдельный тумблер из шага 3.
Шаг 5: Сохраните изменения
- Нажмите Save Changes.
- Изменения применяются мгновенно — перезапуск не требуется.
Файловая конфигурация
Те же параметры можно задать декларативно через config.json. Это удобно для GitOps-процессов и production окружений.
{
"$schema": "https://meridian.neria.cloud/schema",
"governance": {
"auth_config": {
"admin_username": "admin",
"admin_password": "сильный-пароль",
"is_enabled": true,
"disable_auth_on_inference": false
}
},
"client": {
"whitelisted_routes": [
"/api/custom-webhook",
"/api/public-endpoint",
"/api/webhook*"
]
},
"config_store": {
"enabled": true,
"type": "sqlite",
"config": {
"path": "/app/data/config.db"
}
}
}| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
governance.auth_config.admin_username | string | да¹ | Имя пользователя администратора. |
governance.auth_config.admin_password | string | да¹ | Пароль администратора. Хранится в БД в хэшированном виде. |
governance.auth_config.is_enabled | boolean | нет | Включена ли парольная защита. По умолчанию false. |
governance.auth_config.disable_auth_on_inference | boolean | нет | Отключить аутентификацию для inference эндпоинтов. По умолчанию false. |
client.whitelisted_routes | string[] | нет | Маршруты, обходящие auth. Поддерживается префикс *. |
¹ — обязательны при включённом is_enabled (без них загрузчик auth_config отказывается стартовать с предупреждением).
Старое поле auth_config верхнего уровня (без governance) всё ещё распознаётся для обратной совместимости, но размечено как deprecated. В новых конфигурациях используйте governance.auth_config.
Вход в систему
Когда аутентификация включена:
- Откройте URL панели управления Meridian.
- Произойдёт редирект на страницу входа.
- Введите имя пользователя и пароль.
- Нажмите Sign in.
После успешного входа вы окажетесь на дашборде. Сессия живёт 30 дней; по истечении пользователь должен войти заново. Токен хранится в HTTP cookie с именем token и автоматически прикрепляется к каждому запросу к API управления.
Способы аутентификации
Meridian принимает запросы в нескольких форматах:
Дашборд
- Cookie
token— выдаётся послеPOST /api/session/login, автоматически прикрепляется браузером ко всем запросам к API управления. - Никаких ручных манипуляций с заголовками от UI не требуется.
API управления из скриптов
При включённой защите панели управления API управления можно вызывать одним из двух способов:
- Basic Auth — имя пользователя и пароль в HTTP Basic.
- Bearer Token —
Authorization: Bearer <token>, где<token>— значение, полученное из ответаPOST /api/session/loginили из cookietokenпосле входа.
# Получение сессионного токена
curl -X POST http://localhost:8080/api/session/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"strong-password"}' \
-c /tmp/meridian.cookies
# Вызов API управления с использованием cookie
curl -b /tmp/meridian.cookies http://localhost:8080/api/usersInference вызовы
Когда тумблер Disable authentication on inference calls выключен, inference эндпоинты также требуют авторизации:
- Basic Auth — имя пользователя и пароль администратора в HTTP Basic.
- Bearer Token — base64(
username:password) в заголовкеAuthorization: Bearer ....
# Basic Auth
curl -X POST http://localhost:8080/v1/chat/completions \
-u "admin:strong-password" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [{"role": "user", "content": "Hello!"}]
}'Whitelisted routes
Маршруты из настройки client.whitelisted_routes полностью обходят проверку аутентификации — Basic Auth и Bearer Token не нужны. Это применимо только к панели управления и API управления; inference контролируется тумблером из шага 3.
Управление пользователями
Meridian поддерживает несколько администраторов и три роли. Управлять ими можно через панель управления (Settings → Users) или через API.
Доступные роли
| Роль | Назначение |
|---|---|
admin | Полный доступ ко всем настройкам и API. |
auditor | Доступ на чтение к логам и конфигурации. |
user_manager | Управление учётными записями без доступа к остальной конфигурации. |
Создание пользователя через API
curl -X POST http://localhost:8080/api/users \
-b /tmp/meridian.cookies \
-H "Content-Type: application/json" \
-d '{
"username": "alice",
"display_name": "Alice",
"password": "ChangeMe123!",
"role": "user_manager"
}'Валидация при создании:
username— только буквы, цифры,-,_,.(до 255 символов);password— минимум 8 символов;role— одна изadmin,auditor,user_manager;display_name— если не задан, копируется изusername.
Удалить последнего администратора с ролью admin нельзя — Meridian вернёт ошибку, чтобы предотвратить блокировку доступа к системе.
Важные детали
- Без перезапуска. Изменения в настройках Security применяются мгновенно.
- Длительность сессии. 30 дней; по истечении — новая авторизация.
- Хранение паролей. Пароли хэшируются (bcrypt) и хранятся в БД конфигурации.
- Inference эндпоинты. Если включён
disable_auth_on_inference, защищены только панель управления и API управления; LLM-эндпоинты остаются открытыми. - Whitelisted routes. Действуют только на панель управления и API управления; inference контролируется отдельным тумблером.
- Множественные администраторы. В отличие от классического single-admin сценария, Meridian поддерживает несколько пользователей и три роли (см. секцию выше).
Отключение аутентификации
- Перейдите в Workspace → Config → Security.
- Выключите тумблер Password protect the dashboard.
- Нажмите Save Changes.
После сохранения панель управления снова доступна анонимно. Этот режим уместен только для локальной разработки на localhost; для удалённых инсталляций обязательно держите аутентификацию включённой.
Модель ресурсов для учета и управления
Как управлять финансовыми и вычислительными ресурсами (governance) в Meridian. Бюджет, ограничители количества запросов и количества токенов.
Настройка провайдеров
Подключение нескольких LLM-провайдеров с настройкой параллелизма, очередей, прокси, заголовков и аутентификацией.