Перейти к содержимому

Аутентификация

Аутентификация всех запросов Model Gate API одним рабочим API-ключом.

Рабочие ключи Model Gate начинаются с mg_live_. Один ключ подходит для OpenAI- и Anthropic-совместимых запросов.

OpenAI-совместимый заголовок

Authorization: Bearer mg_live_...
Content-Type: application/json

Используйте этот вариант для /v1/chat/completions, /v1/responses, /v1/embeddings, /v1/images/generations, /v1/models и /v1/balance.

Anthropic-совместимый заголовок

x-api-key: mg_live_...
anthropic-version: 2023-06-01
content-type: application/json

Используйте этот вариант для /v1/messages и /v1/messages/count_tokens. Аутентификация Bearer также поддерживается.

Пример запроса

curl https://api.model-gate.com/v1/models \
  -H "Authorization: Bearer mg_live_..."

Пример ответа

{
  "object": "list",
  "data": []
}

Эндпоинты без аутентификации

Без аутентификации доступны только эндпоинты состояния сервиса:

GET /health
GET /health/live
GET /health/ready

Интерактивные браузерные сеансы

Личный кабинет Model Gate использует серверный браузерный сеанс, отдельный от ключей Model API. По умолчанию аутентифицированный сеанс истекает после 12 часов без аутентифицированной активности или через 7 дней с начала, в зависимости от того, что наступит раньше. Сам cookie остаётся сеансовым, поэтому закрытие браузера может завершить сеанс раньше в зависимости от поведения браузера.

Если страница кабинета осталась открыта после истечения аутентификации, AJAX-действия возвращают HTTP 401 с JSON-кодом authentication_required, а кабинет показывает сообщение Сеанс завершён, вместо попытки разобрать страницу входа как JSON. Устаревший токен защиты страницы вызывает HTTP 419 с JSON-кодом csrf_expired и просьбой обновить страницу. Неуспешные изменяющие действия, включая начало оплаты, никогда автоматически не повторяются после входа или обновления страницы.

Безопасность аккаунта и IP

В профиле можно включить двухфакторную аутентификацию TOTP через WinAuth или другое совместимое приложение. Business-организация может требовать TOTP у каждого участника; для Business-организаций это требование включено по умолчанию. Успешное прохождение второго фактора отмечается в текущем браузерном сеансе. Важные действия, например создание, просмотр или перевыпуск ключей, изменение политики безопасности и обновление секретов, при включённом TOTP требуют недавнего подтверждения вторым фактором; стандартное окно подтверждения — 60 минут. Оно не меняет 30-секундный период кода аутентификатора.

Включение TOTP создаёт десять одноразовых кодов восстановления. Полные значения показываются только при создании; Model Gate хранит только хеши и атомарно помечает код использованным. Повторное создание кодов делает прежние неиспользованные коды недействительными. Настройка TOTP требует текущего пароля, если он задан, либо недавнего основного входа через OAuth/Telegram для аккаунтов без пароля. Изменение пароля, включение, отключение или сброс TOTP и изменение политики безопасности входа отзывают устаревшие браузерные сеансы. Если восстановить доступ не удаётся, обратитесь в поддержку. Владельцы и администраторы Business могут сбросить TOTP управляемого сотрудника при наличии прав; это завершает браузерные сеансы сотрудника, но не отзывает ключи Model API.

В профиле Приложение-аутентификатор (TOTP) и Списки разрешённых IP-адресов представлены отдельными настройками. Первичная настройка аутентификатора открывает модальное окно и выполняет настройку и подтверждение через AJAX, сохраняя обычный серверный POST как запасной вариант. Списки для входа и API редактируются в отдельном окне и сохраняются через AJAX с той же политикой недавнего подтверждения 2FA.

Профиль также поддерживает отдельные списки разрешённых IP для входа и API. Правила — точные адреса IPv4/IPv6 или префиксы CIDR. Пустой список означает отсутствие ограничения. Владельцы и администраторы Business могут дополнительно задать списки входа и API для всей организации. Если заданы и личные, и организационные правила API, источник запроса должен соответствовать обоим. Запрос, отклонённый политикой IP API, получает HTTP 403 с кодом ip_not_allowed, если совместимый формат ответа предусматривает код ошибки.

Для ключей Business владелец компании остаётся владельцем списания, а в каждом ключе указан пользователь ключа — инициатор. К ключу применяются активность инициатора, его личный список IP API и пользовательские лимиты RPM/одновременных запросов; баланс, тарифы и организационная политика IP API остаются на уровне компании. Ключ сотрудника должен быть назначен активной группе и требует права Business, разрешающего выполнение (admin или developer; полномочия владельца или администратора организации также принимаются). Групповые права billing и viewer не разрешают трафик Model API.

Администратор группы может управлять её ключами, но не может просматривать или перевыпускать секрет, выданный другому пользователю ключа; сам пользователь ключа и владелец или администратор организации могут получить доступ к этому секрету. Если до 9.6.2 сотрудники использовали общий секрет владельца, перевыпустите его и выдайте отдельные ключи с сотрудниками-инициаторами для корректного индивидуального отзыва и ограничений IP.

TOTP защищает интерактивный вход и важные действия человека в аккаунте. Вход по паролю, OAuth и Telegram использует одну политику второго фактора. Одноразовый код восстановления можно использовать вместо TOTP для входа или дополнительного подтверждения. Важные команды Telegram при настроенном TOTP требуют второго фактора; введённые коды удаляются из долговременного хранения обновлений и диалогов Telegram. Запросы Model API не запрашивают и не проверяют TOTP: уже выданный ключ авторизуется по его состоянию, активности и правам пользователя ключа, действующим спискам IP и рабочим/финансовым лимитам.

  • Храните ключи в переменных окружения или менеджере секретов.
  • Никогда не добавляйте ключ в Git.
  • Используйте отдельный ключ для каждого проекта или внешнего пользователя.
  • Немедленно замораживайте или перевыпускайте скомпрометированный ключ.
  • Секреты ключей Model API показываются только при создании или перевыпуске.
  • Токены Bearer Partner API также показываются только при создании или перевыпуске; Model Gate хранит только их хеши.
  • Секреты подписи обратных вызовов показываются только при создании или обновлении и хранятся в зашифрованном виде; сохраните свою копию в менеджере секретов.
  • При включении списка IP API добавьте все внешние адреса NAT/выхода, с которых возможны запросы к Model Gate.

Общие ключи проекта в Playground

Разработчики и администраторы Business-проектов могут выбирать ключи проекта в Playground, даже если ключ создал другой участник. Временные браузерные учётные данные используют вошедшего сотрудника как исполнителя: применяются его текущие права группы, личная политика IP API и пользовательские лимиты. Использование ключа и группы и фактические списания остаются за компанией. При этом не раскрывается постоянный секрет другого участника и разработчик не получает доступ к кошельку компании. Браузерные сеансы не могут отправлять отложенные async- или пакетные задания; для таких интеграций используйте отдельный долговременный ключ.

Как читать настройки использования

API Keys и Key Groups показывают Usage Limit, USD относительно обнуляемого счётчика, а не расходов за весь период. Одновременно действуют ограничения ключа и группы; ноль снимает ограничение только соответствующего объекта. RPM и одновременность — отдельные ограничения числа запросов, а наличие средств на балансе — ещё одно предварительное условие.

Владелец группы может выбрать Reset usage в Groups после обычного подтверждения безопасности. Это очищает только счётчик группы; сброс в развёрнутой строке API Keys очищает только счётчик этого ключа. Ни одно действие не возвращает платёж, не изменяет расходы за весь период и не удаляет запросы. Рядом показаны оставшаяся квота и время последнего сброса.

Для расчётного использования база цены и коэффициент наследуются от группы к ключу независимо. Это не дополнительное списание с кошелька. Расчёты выполняются периодически, поэтому уже выполняющиеся запросы могут пересечь квоту или завершиться после сброса; это ограничения допуска, а не точное резервирование будущих расходов.

Отдельное разрешение Images

Playground Images предоставляет временное разрешение на выбранную операцию, не раскрывая постоянный секрет API-ключа. Действуют текущий вход, ключ и правила доступа. Принятая работа с изображением может продолжаться после истечения короткого разрешения; обновление страницы читает существующий статус, а не создаёт новое задание. Для внешних интеграций используйте обычный API-ключ. Общие async/Batch недоступны через обычные браузерные ключи Playground.