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.
