MCP session id — не авторизация пользователя

Не используйте идентификатор сессии как единственное доказательство прав на бизнес-данные. Состояние протокольного сеанса и авторизованный субъект должны связываться явно и проверяться по вашей модели доступа.

Пример из разработки

Сервер хранит выбранную организацию внутри MCP-сессии. Разработчик считает, что знание session id позволяет выполнять все последующие запросы без повторной проверки. После изменения прав пользователя старая сессия продолжает читать закрытые данные. В другом случае неправильно устроенный общий кэш подставляет контекст предыдущего пользователя. Проблема возникла потому, что техническое продолжение соединения превратили в постоянное полномочие.

Почему это работает

Отделите идентификатор сеанса, токен доступа и бизнес-контекст. Привязывайте состояние к проверенному субъекту и учитывайте истечение и отзыв доступа. Для Streamable HTTP спецификация 2025-06-18 описывает механизм сессии, но приложение всё равно отвечает за разрешённые действия. Не храните в общем объекте сервера «текущего пользователя», если параллельно обслуживаются разные клиенты. Завершение сессии должно освобождать ресурсы, не выдавая доступ к чужому состоянию.

Проверка перед использованием

ПроверкаОжидаемое поведение
Две параллельные сессии разных пользователейВыбранные организации, результаты и временные данные не смешиваются даже при совпадающих запросах.
Права отозваны при живом соединенииСледующее чувствительное действие проверяет актуальное разрешение в пределах принятой политики отзыва.
Устаревший или неизвестный session idСервер следует согласованному жизненному циклу, а не восстанавливает привилегии из непроверенного значения.

Проверьте фоновые задания, которые продолжаются после разрыва сессии. Им тоже нужен собственный проверяемый субъект и область доступа: хранение только технического session id не объясняет, чьи права использовать позже.

Частота повторной проверки зависит от архитектуры и требований отзыва. Важно документировать окно актуальности прав и не обещать немедленный отзыв, если его не обеспечивает реализация.

Разделение протокола и бизнес-авторизации необходимо для серверов MCP, которыми пользуется больше одного человека. В платном курсе AI Agent Integrations PRO: MCP можно продолжить изучение соответствующего инженерного направления. Перед покупкой сравните программу и открытые материалы со своей задачей.

Описанный протокольный контракт относится к версии 2025-06-18; для другой согласованной версии клиента и сервера сверьте соответствующую спецификацию.

Документация для проверки технических деталей: Транспорты MCP: спецификация 2025-06-18, OWASP: авторизация.

Следующий шаг: MCP-интеграции: контракты инструментов, ошибки и доступ. По смежным вопросам: Структурированный ответ MCP tool: как не потерять типы данных, MCP stdio не подключается из-за логов в stdout.