Аутентификация
Формат API-ключа, заголовок Authorization, ротация ключей и лучшие практики безопасности при работе с Codex Key.
Формат ключа
Все ключи Codex Key имеют префикс sk-clb- и длину 43 символа после префикса:
sk-clb-AbCdEfGhIjKlMnOpQrStUvWxYz0123456789
Ключи зашифрованы при хранении (AES-GCM) и видны полностью только один раз — в момент создания. В личном кабинете сохраняется только последние 4 символа и метаданные (имя, дата создания, последнее использование).
HTTP-заголовок
Передавайте ключ в заголовке Authorization по схеме Bearer:
Authorization: Bearer sk-clb-...
Пример с curl:
curl https://codexkey.ru/v1/models \
-H "Authorization: Bearer sk-clb-..."
Пример с Python и SDK OpenAI:
from openai import OpenAI
client = OpenAI(
api_key="sk-clb-...",
base_url="https://codexkey.ru/v1",
)
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Привет"}],
)
print(resp.choices[0].message.content)
Ротация ключей
Рекомендуемая частота — не реже раза в 90 дней. Алгоритм безопасной ротации:
- Создайте новый ключ в кабинете (имя:
prod-v2). - Разверните его в продакшн (через переменную окружения, секрет в CI/CD, vault).
- Убедитесь, что новый ключ работает (проверьте по логам в
/cabinet/logs). - Удалите старый ключ кнопкой Отозвать в кабинете.
При компрометации удаляйте ключ немедленно — отзыв применяется в течение нескольких секунд.
Хранение секретов
- Никогда не коммитьте ключ в репозиторий. Используйте
.env+.gitignoreили secret manager (Vault, AWS Secrets Manager, GitHub Secrets). - На фронтенде ключ держать запрещено — он попадёт в bundle и будет виден любому пользователю. Делайте запросы через свой backend.
- Для CLI-инструментов используйте
keychain(macOS),secret-tool(Linux) или зашифрованный конфиг.
Скоупы (planned)
В текущей версии каждый ключ имеет полные права на свой аккаунт. В дорожной карте — раздельные скоупы:
chat:write— доступ к/v1/chat/completions.responses:write— доступ к/v1/responses.models:read— доступ к/v1/models.billing:read— чтение лимитов и баланса.
Аудит и мониторинг
Все запросы логируются в /cabinet/logs с указанием:
- timestamp,
- модели,
- количества токенов (prompt / completion / reasoning),
- стоимости в рублях,
- HTTP-кода ответа,
- ID ключа (последние 4 символа).
Аномальные всплески (например, +500% запросов за час) автоматически отправляют уведомление на email владельца аккаунта.
Коды ошибок аутентификации
| Код | Причина |
|---|---|
| 401 | Ключ отсутствует, неверный, отозван или с неверным префиксом. |
| 402 | Ключ валиден, но баланс аккаунта равен нулю. |
| 403 | Ключ валиден, но действие запрещено (например, заблокирован). |
| 429 | Превышен rate limit (RPM/TPM) — повторите запрос с backoff. |
Подробности — в API-справочнике.