Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как защитить сервер Протокола контекста модели (MCP), размещенный в Службе приложений Azure, с помощью проверки подлинности Microsoft Entra. Включив проверку подлинности, убедитесь, что только пользователи, прошедшие проверку подлинности с помощью Microsoft Entra, могут получить доступ к серверу MCP через режим агента Copilot в Visual Studio Code.
Сведения о других методах проверки подлинности и общих концепциях безопасности сервера MCP см. в статье "Защита сервера контекста модели" в Службе приложений Azure.
Предпосылки
Приложение службы приложений, на котором размещен сервер MCP. Если вам нужно создать его, ознакомьтесь со следующими руководствами.
- Интегрируйте приложение App Service в качестве сервера MCP для GitHub Copilot Chat (.NET)
- Интегрировать приложение службы приложений в качестве сервера MCP для GitHub Copilot Chat (Java)
- Интеграция приложения Службы приложений в качестве СЕРВЕРА MCP для GitHub Copilot Chat (Python)
- Интеграция приложения Службы приложений в качестве сервера MCP для чата GitHub Copilot (Node.js)
Включение проверки подлинности Microsoft Entra
На портале Azure перейдите к приложению службы приложений.
В меню слева выберите "Параметры>" и выберите "Добавить поставщика удостоверений".
На странице "Добавление поставщика удостоверений" выберите Майкрософт в качестве поставщика удостоверений.
В разделе "Параметры проверки подлинности службы приложений" для срока действия секрета клиента выберите срок действия (например, 6 месяцев).
Примите все остальные значения по умолчанию и нажмите кнопку "Добавить ", чтобы создать поставщика удостоверений.
Это создает новую регистрацию приложения в идентификаторе Microsoft Entra с секретом клиента и настраивает приложение службы приложений для его использования для проверки подлинности.
Авторизация Visual Studio Code в проверке подлинности службы приложений
После включения проверки подлинности необходимо авторизовать Visual Studio Code для доступа к серверу MCP.
На странице проверки подлинности приложения Службы приложений в разделе "Поставщик удостоверений" выберите "Изменить " (значок карандаша) рядом с созданным поставщиком Майкрософт.
На странице "Изменение поставщика удостоверений " в разделе "Дополнительные проверки>требования к клиентскому приложению" выберите "Разрешить запросы из определенных клиентских приложений".
Выберите виджет карандаша, чтобы отредактировать список разрешенных приложений.
В поле "Разрешенные клиентские приложения" добавьте идентификатор клиента Visual Studio Code:
aebc6443-996d-45c2-90f0-388ff96faa56.Нажмите кнопку "ОК", а затем нажмите кнопку "Сохранить".
Разрешите использование Visual Studio Code в регистрации приложения
Затем необходимо настроить регистрацию приложения, чтобы открыть доступ к API для Visual Studio Code.
Вернитесь на страницу проверки подлинности приложения службы приложений.
Выберите провайдера Microsoft в столбце поставщика удостоверений, чтобы открыть страницу регистрации приложения.
На странице регистрации приложения выберите "Управление>предоставлением API" в меню слева.
В разделе Авторизованные клиентские приложения выберите Добавить клиентское приложение.
В поле идентификатора клиента введите идентификатор клиента Visual Studio Code:
aebc6443-996d-45c2-90f0-388ff96faa56.Установите флажок рядом с областью user_impersonation , чтобы авторизовать эту область.
Выберите Добавить приложение.
В разделе "Области", определенные этим API, найдите и скопируйте значение полной области. Оно должно выглядеть так:
api://<app-registration-app-id>/user_impersonation.Это значение области необходимо в следующем разделе.
Включение защищенных метаданных ресурсов путем задания области авторизации
Чтобы включить авторизацию сервера MCP, необходимо настроить защищенные метаданные ресурсов (PRM), задав область авторизации в параметре приложения. Это позволяет клиентам MCP обнаруживать требования к проверке подлинности через конечную точку /.well-known/oauth-protected-resource .
На портале Azure вернитесь на страницу приложения службы приложений.
В меню слева выберите Параметры>Переменные среды.
Нажмите кнопку "Добавить ", чтобы создать новый параметр приложения.
Для параметра Имя введите
WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES.В поле "Значение" вставьте область, скопированную из регистрации приложения:
api://<app-registration-app-id>/user_impersonationНажмите кнопку "Применить", а затем нажмите кнопку "Применить ", чтобы подтвердить и перезапустить приложение.
Этот параметр настраивает PRM для включения требуемой области для авторизации сервера MCP.
Подключитесь из Visual Studio Code
Теперь вы можете подключиться к защищенному серверу MCP из Visual Studio Code.
Откройте Visual Studio Code на локальном компьютере.
Откройте или создайте файл конфигурации MCP (
mcp.json). Для конфигурации MCP в области рабочей области создайте ее в каталоге .vscode вашей рабочей области.Добавьте конфигурацию сервера MCP:
{ "servers": { "my-app-service-mcp": { "type": "http", "url": "https://<your-app-url>.azurewebsites.net/api/mcp" } } }Замените
<your-app-url>фактическим URL-адресом приложения службы приложений. Домен вашего приложения по умолчанию можно найти на странице обзора на портале Azure. В этом примере путь указан как/api/mcp, но фактический путь зависит от кода MCP.В Visual Studio Code откройте палитру команд (
Ctrl+Shift+PилиCmd+Shift+Pв macOS).Введите MCP: List Servers и нажмите Enter.
Выберите сервер MCP из списка и выберите "Пуск сервера".
Visual Studio Code автоматически запрашивает вход с помощью идентификатора Microsoft Entra. Следуйте инструкциям по проверке подлинности.
Расширение MCP обрабатывает поток OAuth, используя настроенную область, и Visual Studio Code получает необходимый маркер доступа для вызова сервера MCP.
Подсказка
Если отображается непредвиденная запрос на проверку подлинности или возникают ошибки, см. статью "Устранение неполадок".
После проверки подлинности сервер MCP подключен и готов к использованию в режиме агента чата GitHub Copilot или других клиентах MCP.
Проверка подключения
Чтобы убедиться, что сервер MCP правильно защищен и доступен:
Откройте GitHub Copilot Chat в Visual Studio Code (
Ctrl+Alt+IилиCmd+Option+Iв macOS).Попробуйте использовать функцию с сервера MCP. Например, если вы используете пример Todos:
Show me all my tasksGitHub Copilot должен успешно вызвать сервер MCP, и вы увидите результаты в чате. Если возникли проблемы, см. статью "Устранение неполадок".
Устранение неполадок
При запуске сервера MCP в Visual Studio Code отображается запрос проверки подлинности, указывающий правильность конфигурации:
Правильная конфигурация: Visual Studio Code запрашивает проверку подлинности в Корпорации Майкрософт. Это означает, что защищенные метаданные ресурсов (PRM) настроены правильно, и Visual Studio Code успешно обнаружил сервер авторизации и область из конечной
/.well-known/oauth-protected-resourceточки.Неправильная конфигурация: Visual Studio Code требует аутентификации с конечной
/authorizeточкой в вашем приложении службы приложений (например,https://<your-app-url>.azurewebsites.net/authorize). Это означает, что PRM настроен неправильно. Visual Studio Code не может найти сервер авторизации и область авторизации, поэтому он возвращается к использованию URL-адреса приложения в качестве конечной точки авторизации, которая не существует.
Если появится неверный запрос проверки подлинности, убедитесь, что:
- Параметр
WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPESприложения правильно настроен со значением полной областиapi://<app-registration-app-id>/user_impersonation. - Приложение службы приложений полностью перезагрузилось после добавления параметра приложения. Для завершения перезапуска может потребоваться несколько минут.
Если после входа возникают ошибки проверки подлинности, убедитесь, что:
- Идентификатор клиента Visual Studio Code (
aebc6443-996d-45c2-90f0-388ff96faa56) добавляется как в конфигурацию аутентификации App Service (разрешенные клиентские приложения), так и в регистрацию приложений (авторизованные клиентские приложения в Expose an API). - Значение области в параметре приложения точно соответствует тому, что определено в регистрации приложения.
Связанный контент
- Защитите сервер протокола контекста модели в службе приложений Azure
- Настройте сервис приложений или приложение Функции Azure для использования входа в Microsoft Entra
- Настройте поставщика Microsoft Entra с использованием управляемого удостоверения вместо секрета
- Что такое протокол контекста модели?