Архитектура
Аутентификация
Методы аутентификации в OpenMPFlow — API-ключи, HMAC-токены, OAuth/OIDC через Logto
Методы аутентификации
OpenMPFlow поддерживает три метода аутентификации (проверяются по порядку):
1. API-ключи (mpk_)
Рекомендуется для программного доступа и MCP-клиентов.
curl -H "Authorization: Bearer mpk_your_key_here" \
https://proxy.mp-flow.ru/v1/admin/master-cards- Генерируются в Admin UI → раздел MCP
- Хранятся как SHA256 хэш в таблице
admin_api_keys - Поддерживают скоупы, rate limits и срок действия
- Префикс
mpk_для идентификации
2. Логин/пароль (HMAC-токены)
Используется веб-интерфейсом Admin UI.
# Вход
curl -X POST https://proxy.mp-flow.ru/v1/admin/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "admin"}'
# Ответ: {"access_token": "eyJ...", "token_type": "bearer", "expires_in": 86400}- Начальные креды задаются через
ADMIN_BOOTSTRAP_USERNAME/ADMIN_BOOTSTRAP_PASSWORD - Время жизни токена: 24 часа (настраивается через
ADMIN_TOKEN_TTL_HOURS) - HMAC-подпись, не JWT
3. Logto JWT (OAuth/OIDC)
Используется MCP OAuth потоком (ChatGPT, внешние клиенты).
- Self-hosted Logto на
auth.mp-flow.ru - ES384 JWT-токены, валидируются через JWKS
- Audience:
https://proxy.mp-flow.ru/api
Определение типа токена
Прокси автоматически определяет метод:
if token.startswith("mpk_"): # → API-ключ
elif len(token.split(".")) == 3: # → JWT (Logto)
else: # → Legacy HMAC-токенCORS
- Корневое приложение:
*(требуется для MCP Streamable HTTP) - Admin API: дополнительные origins через
ADMIN_CORS_ORIGINS