12 KiB
Модель машинной аутентификации и уровней защиты операций
1. Назначение документа
Этот документ фиксирует целевую модель машинного доступа к опубликованным инструментам платформы. Модель строится вокруг двух принципов:
- длинноживущий машинный доступ принадлежит конкретному AI-агенту, а не рабочей области в целом;
- требуемый уровень защиты определяется характером данных конкретной операции.
Именно поэтому в системе должны быть одновременно:
- ключ AI-агента как базовый машинный credential;
- режимы выдачи токенов разной строгости;
- обязательная политика защиты на уровне операции.
2. Базовая идея
Внутри платформы нужно различать:
- чем клиент подтверждает право подключиться к агенту;
- какой уровень защиты требует операция;
- достаточно ли текущего машинного доступа для вызова этой операции.
Следовательно, решение нельзя строить только вокруг одного универсального токена. Оно должно учитывать и тип credential, и чувствительность самой ручки.
3. Уровни защиты операции
Каждая операция получает обязательный уровень защиты.
3.1. standard
Используется для обычных данных и типовых интеграционных вызовов.
Разрешенный доступ:
- статический ключ AI-агента;
- короткоживущий токен;
- одноразовый токен.
3.2. elevated
Используется для чувствительных внутренних данных, для которых постоянного ключа уже недостаточно.
Разрешенный доступ:
- короткоживущий токен;
- одноразовый токен.
Статический ключ AI-агента для такого уровня уже недостаточен.
3.3. strict
Используется для максимально чувствительных данных, например содержащих коммерческую тайну, персональные данные высокой категории риска или иные критичные сведения.
Разрешенный доступ:
- только одноразовый токен на вызов.
Ни статический ключ, ни обычный короткоживущий токен для такого вызова не должны считаться достаточными.
4. Виды машинного доступа
4.1. Статический ключ AI-агента
Это длинноживущий ключ, принадлежащий одному агенту.
Свойства:
- привязан к одному
workspace; - привязан к одному
agent; - не используется для административных действий;
- может быть отозван и перевыпущен;
- в открытой редакции является основным механизмом подключения.
4.2. Короткоживущий токен
Это временный токен, выдаваемый на ограниченный срок.
Свойства:
- небольшой срок жизни;
- ограниченная область действия;
- может обновляться через стандартный поток OAuth 2.0;
- подходит для платформенного размещения, где важен баланс удобства и безопасности.
4.3. Одноразовый токен
Это токен, который разрешает один вызов конкретной операции или одной логической единицы доступа.
Свойства:
- очень короткий срок жизни;
- один допустимый вызов;
- после первого использования считается исчерпанным;
- предназначен для максимально чувствительных операций.
5. Правило сопоставления
Для вызова операции сервер сравнивает:
- уровень машинного доступа клиента;
- обязательный уровень защиты операции.
Правило простое:
- если уровень доступа ниже, чем требует операция, вызов запрещается;
- если уровень доступа равен или выше, вызов разрешается.
Именно это правило делает политику защиты независимой от того, в каком агенте опубликована операция.
6. Роль AI-агента
AI-агент:
- группирует операции;
- формирует MCP-поверхность;
- имеет собственный ключ подключения.
AI-агент не должен:
- ослаблять уровень защиты операции;
- переопределять критичность данных;
- разрешать более слабый способ вызова, чем требует сама операция.
Если в одном агенте опубликованы и обычные, и критичные операции, правила доступа к ним все равно различаются по уровню защиты самих операций.
7. Поддержка по редакциям продукта
7.1. Community
Открытая редакция должна поддерживать только один режим:
- статический ключ AI-агента.
Соответственно, в Community допустимы только операции уровня:
standard.
7.2. Cloud или управляемая платформа
Для платформенного размещения должны поддерживаться:
- статический ключ AI-агента как режим совместимости;
- короткоживущие токены по OAuth 2.0 как рекомендуемый режим.
Соответственно, платформа может обслуживать операции уровня:
standard;elevated.
7.3. Enterprise
Для корпоративной редакции должны поддерживаться все три режима:
- статический ключ AI-агента;
- короткоживущий токен;
- одноразовый токен.
Соответственно, допускаются операции уровня:
standard;elevated;strict.
8. Потоки аутентификации
8.1. Community
- Пользователь создает AI-агента.
- Платформа выдает статический ключ AI-агента.
- Клиент
Codex,Claude Codeили другой MCP-клиент использует этот ключ как bearer token при подключении к MCP endpoint.
Это самый простой и совместимый вариант.
8.2. Cloud или управляемая платформа
- Пользователь или клиент проходит машинную аутентификацию.
- Сервер авторизации выдает короткоживущий токен доступа.
- Клиент использует его при работе с MCP endpoint.
- По истечении срока действия токен обновляется через стандартный механизм обновления.
Этот вариант должен опираться на OAuth 2.0 и обычный механизм refresh.
8.3. Enterprise
- Клиент получает разрешение на вызов чувствительной операции.
- Сервер выдает одноразовый токен.
- Клиент выполняет один вызов.
- Токен становится недействительным.
Этот режим должен использоваться только там, где характер данных действительно требует такого уровня защиты.
9. Опорные стандарты
Для реализации расширенных режимов разумно опираться на готовые стандарты.
OAuth 2.0
Используется как основа для короткоживущих токенов и их обновления.
RFC 8693
Может использоваться как ориентир для схемы обмена одного вида machine credential на другой токен доступа.
RFC 9449
Может использоваться как ориентир для будущей привязки токена к ключевой паре клиента, если потребуется дополнительная защита от повторного использования перехваченного токена.
10. Модель данных
Для этой схемы достаточно следующих базовых сущностей.
AgentKey
Поля:
idworkspace_idagent_idnameprefixsecret_hashstatuscreated_atlast_used_atexpires_at
IssuedAgentToken
Поля:
idworkspace_idagent_idtoken_kindstatusexpires_atused_atmax_usesused_countcreated_at
Поля операции
На уровне операции должна появиться обязательная политика:
security_level
Допустимые значения:
standardelevatedstrict
11. Административный интерфейс
Настройка должна быть максимально простой.
На этапе создания или редактирования операции пользователь выбирает:
ОбычныйПовышенная защитаМаксимальная защита
Смысл вариантов:
Обычный— стандартный уровень для обычных данных;Повышенная защита— короткоживущий токен;Максимальная защита— одноразовый токен.
Пользователь не должен вручную настраивать детали OAuth или внутреннюю механику выдачи токенов на уровне операции.
12. Практический итог
Целевая модель машинного доступа для Crank должна строиться так:
- в Community — статический ключ AI-агента;
- в управляемой платформе — короткоживущие токены;
- в Enterprise — при необходимости одноразовые токены;
- уровень защиты определяется операцией, а не агентом;
- агент никогда не ослабляет обязательную защиту опубликованной операции.