Аутентификация и scope
API-ключи, OAuth, принципал и модель scope.
Публичный API принимает два вида credential. API-ключи (Authorization: Bearer slv_live_…)
работают сегодня и в REST, и в MCP. OAuth 2.1 (authorization code + PKCE) — только для MCP, для
хостед-коннекторов вроде Claude.ai и ChatGPT, и появится в волне 2 — до этого такие клиенты не
поддерживаются, а клиенты на API-ключах (Claude Code, Cursor, клиенты с кастомным заголовком) работают
уже сейчас.
Любой credential приводится к одной идентичности аккаунта (GCID) и набору scope вида
<продукт>:<ресурс>.<read|write> — например, link:links.write, artqr:qr.read, либо <продукт>:*
на весь продукт. write включает удаление. Scope управления аккаунтом (выпуск своих ключей) ключу
никогда не выдаётся — только сессии: утёкший ключ не может выпустить себе новые ключи.
Вызов без нужного scope отклоняется до выполнения:
Чувствительные действия требуют свежей сессии. Создание или ротация API-ключа, выдача согласия
OAuth требуют сессию не старше 10 минут. Вошли раньше? Увидите step_up_required (401) и необходимость
войти заново. Это намеренно: захваченная старая сессия сама по себе не может выпустить новые ключи.