> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
> Эта спецификация описывает **базовый механизм аутентификации на уровне сервиса** для инструментов MCP. Это **НЕ** полное решение для аутентификации и **НЕ подходит** для:
> - Многопользовательских сред
> - Многоарендных развертываний
> - Федеративной аутентификации
> - Распространения контекста пользователя
> - Авторизации на уровне пользователя
>
> Эта функция предоставляет **один статический токен для каждого инструмента MCP**, который используется всеми пользователями и сеансами. Если вам требуется аутентификация на уровне пользователя или арендатора, это не подходящее решение.
## Обзор
**Название функции**: Поддержка аутентификации токенов Bearer для инструментов MCP
**Автор**: Claude Code Assistant
**Дата**: 2025-11-11
**Статус**: В разработке
### Краткое описание
Позволяет конфигурациям инструментов MCP указывать необязательные токены Bearer для аутентификации с защищенными серверами MCP. Это позволяет TrustGraph безопасно вызывать инструменты MCP, размещенные на серверах, требующих аутентификации, без изменения интерфейсов агента или вызова инструментов.
**ВАЖНО**: Это базовый механизм аутентификации, предназначенный для сценариев аутентификации от сервиса к сервису в одноарендной среде. Он **НЕ подходит** для:
Многопользовательских сред, где разные пользователи нуждаются в разных учетных данных
Многоарендных развертываний, требующих изоляции на уровне арендатора
Сценариев федеративной аутентификации
Аутентификации или авторизации на уровне пользователя
Динамического управления учетными данными или обновления токенов
Эта функция предоставляет статический, системный токен Bearer для каждой конфигурации инструмента MCP, который используется всеми пользователями и вызовами этого инструмента.
### Описание проблемы
В настоящее время инструменты MCP могут подключаться только к общедоступным серверам MCP. Многие производственные развертывания MCP требуют аутентификации с помощью токенов Bearer для обеспечения безопасности. Без поддержки аутентификации:
Инструменты MCP не могут подключаться к защищенным серверам MCP
Пользователям приходится либо предоставлять доступ к серверам MCP в общедоступном режиме, либо использовать обратные прокси
Нет стандартизированного способа передачи учетных данных для подключений MCP
Невозможно применять лучшие практики безопасности к конечным точкам MCP
Системы, требующие передачу контекста пользователя на серверы MCP.
Среды, требующие динамическое обновление токенов или короткоживущие токены.
Приложения, в которых разные пользователи должны иметь разные уровни разрешений.
Требования соответствия для аудиторских журналов на уровне пользователя.
**Пример подходящего сценария:**
Развертывание TrustGraph для одной организации, в котором все сотрудники используют один и тот же внутренний инструмент MCP (например, поиск информации в корпоративной базе данных). Сервер MCP требует аутентификации для предотвращения внешнего доступа, но все внутренние пользователи имеют одинаковый уровень доступа.
**Пример неподходящего сценария:**
Многопользовательская SaaS-платформа TrustGraph, в которой арендатор A и арендатор B должны получать доступ к своим собственным изолированным серверам MCP с отдельными учетными данными. Эта функция НЕ поддерживает управление токенами на уровне арендатора.
**trustgraph-cli/trustgraph/cli/set_mcp_tool.py**: Инструмент командной строки для создания/обновления конфигураций MCP.
**trustgraph-cli/trustgraph/cli/show_mcp_tools.py**: Инструмент командной строки для отображения конфигураций MCP.
**MCP Python SDK**: `streamablehttp_client` из `mcp.client.streamable_http`.
## Требования
### Функциональные требования
1.**Токен аутентификации для конфигурации MCP:** Конфигурации инструмента MCP ДОЛЖНЫ поддерживать необязательное поле `auth-token`.
2.**Использование токена Bearer:** Сервис инструмента MCP ДОЛЖЕН отправлять заголовок `Authorization: Bearer {token}` при настройке аутентификации.
3.**Поддержка CLI:**`tg-set-mcp-tool` ДОЛЖЕН принимать необязательный параметр `--auth-token`.
4.**Отображение токена:**`tg-show-mcp-tools` ДОЛЖЕН указывать, когда настроена аутентификация (маскируется для безопасности).
5.**Обратная совместимость:** Существующие конфигурации инструмента MCP без аутентификации ДОЛЖНЫ продолжать работать.
### Нефункциональные требования
1.**Обратная совместимость:** Отсутствие изменений, нарушающих работу существующих конфигураций инструмента MCP.
2.**Производительность:** Отсутствие значительного влияния на производительность вызова инструмента MCP.
3.**Безопасность:** Токены хранятся в конфигурации (учитывайте последствия для безопасности).
### Пользовательские истории
1. Как **инженеру DevOps**, я хочу настроить токены Bearer для инструментов MCP, чтобы я мог защитить конечные точки серверов MCP.
2. Как **пользователю CLI**, я хочу устанавливать токены аутентификации при создании инструментов MCP, чтобы я мог подключаться к защищенным серверам.
3. Как **системному администратору**, я хочу видеть, какие инструменты MCP имеют настроенную аутентификацию, чтобы я мог проверять настройки безопасности.
## Проектирование
### Архитектура высокого уровня
Расширение конфигурации и сервиса инструмента MCP для поддержки аутентификации с помощью токена Bearer:
1. Добавление необязательного поля `auth-token` в схему конфигурации инструмента MCP.
2. Изменение сервиса инструмента MCP для чтения токена аутентификации и передачи его в HTTP-клиент.
3. Обновление инструментов командной строки для поддержки установки и отображения токенов аутентификации.
4. Документирование соображений безопасности и лучших практик.
### Схема конфигурации
**Текущая схема:**
```json
{
"remote-name": "tool_name",
"url": "http://mcp-server:3000/api"
}
```
**Новая схема** (с необязательным токеном авторизации):
**Подключение без токена**: Проверить, что подключение к неаутентифицированному серверу по-прежнему работает
### Ручное тестирование
**Реальный сервер MCP**: Проверить с фактическим сервером MCP, требующим аутентификацию с использованием токена bearer
**Рабочий процесс командной строки**: Проверить полный рабочий процесс: настройка инструмента с auth → вызов инструмента → проверка успешного выполнения
**Маскировка отображения**: Убедиться, что статус аутентификации отображается, но значение токена не отображается
## Миграция и развертывание
### Стратегия миграции
Миграция не требуется - это чисто дополнительная функциональность:
Существующие конфигурации MCP tool без `auth-token` продолжают работать без изменений
Новые конфигурации могут опционально включать поле `auth-token`
Инструменты командной строки принимают, но не требуют параметр `--auth-token`
### План развертывания
1.**Фаза 1**: Развернуть основные изменения сервиса в среде разработки/тестирования