App Service 인증 을 사용하면 MCP 클라이언트가 ID 공급자를 사용하여 인증하도록 요구하여 MCP(모델 컨텍스트 프로토콜) 서버에 대한 액세스를 제어할 수 있습니다. 이 문서의 지침에 따라 앱이 MCP 서버 권한 부여 사양 을 준수하게 할 수 있습니다.
중요합니다
MCP 서버 권한 부여는 서버에 대한 액세스를 정의하며 개별 MCP 도구 또는 기타 구문에 대한 세부적인 제어를 제공하지 않습니다.
ID 공급자 구성
ID 공급자를 사용하여 App Service 인증을 구성합니다. ID 공급자 등록은 MCP 서버에 대해 고유해야 합니다. 다른 애플리케이션 구성 요소에서 기존 등록을 다시 사용하지 마세요.
등록을 만들 때 등록 또는 ID 공급자 설명서에 정의된 범위를 기록해 둡니다.
보호된 리소스 메타데이터 구성(미리 보기)
MCP 서버 권한 부여를 사용하려면 서버가 보호된 PRM(리소스 메타데이터)을 호스트해야 합니다. App Service 인증을 사용한 PRM에 대한 지원은 현재 미리 보기로 제공됩니다.
MCP 서버에 대한 PRM을 구성하려면 애플리케이션 설정을 애플리케이션에 대한 쉼표로 구분된 범위 목록으로 설정합니다 WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES . 필요한 범위는 앱 등록의 일부로 정의되거나 ID 공급자에 의해 문서화됩니다. 예를 들어 Microsoft Entra ID 공급자 를 사용하고 App Service에서 등록을 만들도록 하면 기본 범위 api://<client-id>/user_impersonation 가 생성됩니다.
WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES를 해당 값으로 설정합니다.
MCP 클라이언트 고려 사항
사용자를 로그인하려면 MCP 클라이언트를 ID 공급자에 등록해야 합니다. 일부 공급자는 DCR(동적 클라이언트 등록)을 지원하지만 Microsoft Entra ID를 비롯한 많은 공급자는 지원하지 않습니다. DCR을 사용할 수 없는 경우 클라이언트 ID를 사용하여 클라이언트를 미리 구성해야 합니다. 클라이언트 ID를 제공하는 방법을 이해하려면 클라이언트 또는 클라이언트 SDK에 대한 설명서를 참조하세요.
Entra ID 동의 작성
Microsoft Entra ID를 사용하는 경우 알려진 클라이언트 애플리케이션을 지정하고 액세스를 위해 사전 인증된 것으로 표시할 수 있습니다. 가능한 경우 사전 인증을 사용하는 것이 좋습니다. 사전 인증이 없으면 사용자 또는 관리자가 MCP 서버 등록 및 필요한 모든 권한에 동의해야 합니다.
사용자 동의 시나리오의 경우 동의 작성에는 MCP 클라이언트가 대화형 로그인을 사용하여 동의 프롬프트를 표시하는 작업이 포함됩니다. 일부 MCP 클라이언트는 대화형 로그인을 표시하지 않을 수 있습니다. 예를 들어 Visual Studio Code에서 GitHub Copilot에서 사용할 MCP 도구를 빌드하는 경우 클라이언트는 로그인한 사용자의 컨텍스트를 사용하려고 시도하고 동의 프롬프트를 표시하지 않습니다. 이러한 경우 동의 문제를 방지하려면 클라이언트 애플리케이션을 사전 인증해야 합니다.
개발/테스트를 위해 브라우저에서 직접 애플리케이션에 로그인하여 사용자 동의를 직접 작성할 수 있습니다.
<your-app-url>/.auth/login/aad로 이동하면 로그인 프로세스가 시작되며, 필요한 경우 동의 요청이 표시됩니다. 그런 다음 다른 클라이언트에서 로그인을 시도할 수 있습니다.
MCP 서버 고려 사항
App Service 인증은 MCP 클라이언트에서 제공하는 토큰의 유효성을 검사하고 MCP 초기화 요청에 응답하기 전에 구성된 권한 부여 정책을 적용합니다. MCP 시나리오에 대한 권한 부여 규칙을 업데이트해야 할 수도 있습니다. 예를 들어 Microsoft Entra ID 공급자를 사용하고 App Service에서 등록을 만들도록 하는 경우 기본 정책은 앱 자체에서 가져온 토큰만 허용합니다. 따라서 인증 구성의 허용된 애플리케이션 목록에 MCP 클라이언트를 추가합니다. 자세한 내용은 기본 제공 권한 부여 정책 사용을 참조하세요.
MCP 서버 프레임워크는 종종 전송을 추상화하지만 경우에 따라 기본 HTTP 컨텍스트를 노출할 수 있습니다. HTTP 컨텍스트를 사용할 수 있는 경우 App Service 인증에서 제공하는 사용자 클레임 및 기타 인증 정보에 액세스할 수 있습니다.
주의
MCP 서버 권한 부여에 사용되는 토큰은 다운스트림 리소스가 아니라 MCP 서버에 대한 액세스를 나타내기 위한 것입니다. 서버가 토큰을 전달하는 통과 시나리오는 보안 취약성을 생성하므로 이러한 패턴을 방지합니다. 다운스트림 리소스에 액세스해야 하는 경우 명시적 위임을 위한 대체 흐름이나 다른 메커니즘을 통해 새 토큰을 가져옵니다.