Поделиться через


Настройка встроенной авторизации сервера MCP (предварительная версия)

Проверка подлинности службы приложений позволяет управлять доступом к серверу протокола контекста модели (MCP), требуя, чтобы клиенты MCP проверяли подлинность с помощью поставщика удостоверений. Приложение может соответствовать спецификации авторизации сервера MCP , следуя инструкциям в этой статье.

Это важно

Авторизация сервера MCP определяет доступ к серверу и не предоставляет детализированный контроль отдельным средствам MCP или другим конструкциям.

Настройка поставщика удостоверений

Настройте аутентификацию службы приложений с помощью поставщика удостоверений. Регистрация поставщика удостоверений должна быть уникальной для сервера MCP. Не используйте существующую регистрацию из другого компонента приложения.

При создании регистрации обратите внимание на то, какие области определены в регистрации или в документации поставщика удостоверений.

Настройка защищенных метаданных ресурсов (предварительная версия)

Для авторизации сервера MCP требуется, чтобы сервер размещал защищенные метаданные ресурса (PRM). Поддержка PRM с проверкой подлинности службы приложений в настоящее время доступна в предварительной версии.

Чтобы настроить PRM для сервера MCP, задайте WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES для параметра приложения список областей, разделенных запятыми. Необходимые права доступа либо определяются как часть регистрации вашего приложения, либо документируются вашим поставщиком удостоверений. Например, если вы использовали поставщик удостоверений Microsoft Entra и позволили службе приложений App Service создать регистрацию для вас, область api://<client-id>/user_impersonation по умолчанию была создана. Установите WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES на это значение.

Рекомендации по работе с клиентом MCP

Для входа пользователей клиент MCP должен быть зарегистрирован в поставщике удостоверений. Некоторые поставщики поддерживают динамическую регистрацию клиентов (DCR), но многие, включая Microsoft Entra ID, ее не поддерживают. Если DCR недоступен, клиент должен быть предварительно настроен с идентификатором клиента. Ознакомьтесь с документацией для SDK клиента или самого клиента, чтобы понять, как указать идентификатор клиента.

Если вы используете идентификатор Microsoft Entra, можно указать известные клиентские приложения и пометить их как предварительно несанкционированные для доступа. По возможности рекомендуется предварительной проверки подлинности. Без предварительной проверки подлинности пользователи или администратор должны предоставить согласие на регистрацию сервера MCP и все необходимые разрешения.

Для сценариев согласия пользователя авторизация согласия предполагает использование клиента MCP для интерактивного входа и отображения запроса согласия. Некоторые клиенты MCP могут не отображать интерактивную авторизацию. Например, если вы создаете средство MCP для использования GitHub Copilot в Visual Studio Code, клиент пытается использовать контекст пользователя, вошедшего в систему, и не отображает запрос на согласие. В этих случаях для предотвращения проблем с согласием требуется предварительная проверка подлинности клиентского приложения.

Для разработки и тестирования вы можете самостоятельно создать согласие пользователя, войдите в приложение непосредственно в браузере. Переход к <your-app-url>/.auth/login/aad инициирует поток входа и запрашивает у вас согласие, если потребуется. Затем вы можете выполнить вход из другого клиентского приложения.

Рекомендации по серверу MCP

Проверка подлинности службы приложений проверяет маркеры, предоставляемые клиентами MCP, и применяет все настроенные политики авторизации перед ответом на запрос инициализации MCP. Возможно, потребуется обновить правила авторизации для сценария MCP. Например, если вы использовали поставщик идентификаторов Microsoft Entra и позволили службе приложений создать регистрацию для вас, политика по умолчанию разрешает только токены, полученные самим приложением. Поэтому вы добавите клиент MCP в список разрешенных приложений в конфигурации проверки подлинности. Дополнительные сведения см. в статье "Использование встроенной политики авторизации".

Платформы серверов MCP часто абстрагируют транспорт, но в некоторых случаях они могут предоставлять базовый контекст HTTP. Если контекст HTTP доступен, вы можете получить доступ к утверждениям пользователей и другим сведениям проверки подлинности , предоставляемым проверкой подлинности службы приложений.

Caution

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