Быстрый старт

Настройка аутентификации

Включите парольную защиту панели управления Meridian, настройте белый список маршрутов и управляйте администраторами.

Обзор

Meridian содержит встроенный механизм аутентификации, который защищает веб-интерфейс и API управления. Когда аутентификация включена, пользователь должен войти в панель управления и пройти авторизацию для каждого вызова API администрирования. Это критично для развёртываний за пределами тестовой среды и обязательно для production окружений.

В сценарии zero-config (docker run ... ghcr.io/neria-cloud/meridian:latest) Meridian при первом старте создаёт учётную запись admin/admin и автоматически включает аутентификацию. Эта страница описывает, как поменять учётные данные, добавить дополнительных пользователей и тонко настроить поведение шлюза.


Включение аутентификации

Шаг 1: Откройте раздел Security

  1. Зайдите в панель управления Meridian.
  2. Перейдите в Settings → Security.
  3. Найдите секцию Password protect the dashboard.
Раздел Security в настройках Meridian

Шаг 2: Задайте имя пользователя и пароль

  1. Включите тумблер Password protect the dashboard.
  2. Введите Username в поле имени пользователя.
  3. Введите Password в поле пароля.

Поля имени пользователя и пароля становятся активными только после включения тумблера. Используйте устойчивый к подбору пароль (не менее 12 символов, смешанный регистр, цифры, спецсимволы).

Шаг 3: Аутентификация для inference вызовов (опционально)

По умолчанию при включённой аутентификации авторизация требуется для всех вызовов API, включая inference. Можно оставить защиту только для панели управления и API управления, освободив inference эндпоинты:

  1. Включите тумблер Disable authentication on inference calls.
  2. После включения:
    • панель управления и API управления всё ещё требуют входа,
    • inference эндпоинты (chat completions, embedding и т. п.) становятся публичными,
    • вызов MCP-инструментов по-прежнему требует авторизации.

Эта опция полезна, когда LLM-шлюз отдаётся внутренним сервисам без авторизации, а доступ к панели управления остаётся под защитой.

Шаг 4: Белый список маршрутов (опционально)

Можно явно перечислить маршруты, которые полностью обходят проверку аутентификации — даже когда защита включена.

  1. Прокрутите до секции Whitelisted Routes.
  2. Введите маршруты через запятую в текстовом поле.
Настройка 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: Сохраните изменения

  1. Нажмите Save Changes.
  2. Изменения применяются мгновенно — перезапуск не требуется.

Файловая конфигурация

Те же параметры можно задать декларативно через 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_usernamestringда¹Имя пользователя администратора.
governance.auth_config.admin_passwordstringда¹Пароль администратора. Хранится в БД в хэшированном виде.
governance.auth_config.is_enabledbooleanнетВключена ли парольная защита. По умолчанию false.
governance.auth_config.disable_auth_on_inferencebooleanнетОтключить аутентификацию для inference эндпоинтов. По умолчанию false.
client.whitelisted_routesstring[]нетМаршруты, обходящие auth. Поддерживается префикс *.

¹ — обязательны при включённом is_enabled (без них загрузчик auth_config отказывается стартовать с предупреждением).

Старое поле auth_config верхнего уровня (без governance) всё ещё распознаётся для обратной совместимости, но размечено как deprecated. В новых конфигурациях используйте governance.auth_config.


Вход в систему

Когда аутентификация включена:

  1. Откройте URL панели управления Meridian.
  2. Произойдёт редирект на страницу входа.
  3. Введите имя пользователя и пароль.
  4. Нажмите Sign in.

После успешного входа вы окажетесь на дашборде. Сессия живёт 30 дней; по истечении пользователь должен войти заново. Токен хранится в HTTP cookie с именем token и автоматически прикрепляется к каждому запросу к API управления.


Способы аутентификации

Meridian принимает запросы в нескольких форматах:

Дашборд

  • Cookie token — выдаётся после POST /api/session/login, автоматически прикрепляется браузером ко всем запросам к API управления.
  • Никаких ручных манипуляций с заголовками от UI не требуется.

API управления из скриптов

При включённой защите панели управления API управления можно вызывать одним из двух способов:

  • Basic Auth — имя пользователя и пароль в HTTP Basic.
  • Bearer TokenAuthorization: Bearer <token>, где <token> — значение, полученное из ответа POST /api/session/login или из cookie token после входа.
# Получение сессионного токена
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/users

Inference вызовы

Когда тумблер 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 поддерживает несколько пользователей и три роли (см. секцию выше).

Отключение аутентификации

  1. Перейдите в Workspace → Config → Security.
  2. Выключите тумблер Password protect the dashboard.
  3. Нажмите Save Changes.

После сохранения панель управления снова доступна анонимно. Этот режим уместен только для локальной разработки на localhost; для удалённых инсталляций обязательно держите аутентификацию включённой.

Содержание