Comprensión de los servidores OAuth 2.1 para MCP (protocolo de contexto modelo): descubrimiento, autorización y fases de acceso

OAuth 2.1 es el estándar de autorización oficialmente obligatorio en las especificaciones del Protocolo de contexto del modelo (MCP). Según la documentación oficial, los servidores de autorización deben implementar OAuth 2.1 con medidas de seguridad adecuadas para clientes confidenciales y públicos.

MCP proporciona autorización a nivel de transporte, lo que permite a los clientes acceder a los servidores restringidos de forma segura en nombre de los propietarios de recursos. OAuth 2.1 fue elegido como el marco para MCP porque ofrece un enfoque moderno, seguro y estandarizado para gestionar la autorización.

Cómo funciona el flujo de autorización

El flujo de autorización de MCP está diseñado para garantizar un acceso seguro y controlado a servidores protegidos. Ocurre en tres fases principales:

Fase de descubrimiento

Cuando un cliente de MCP intenta conectarse a un protegido servidorel servidor responde con un estado 401 no autorizado junto con un encabezado de autenticación www que apunta a su servidor de autorización. Luego, el cliente usa los metadatos proporcionados por el servidor de autorización para descubrir sus capacidades y comprender cómo proceder con la autenticación.

Fase de autorización

Una vez que el cliente comprende cómo el servidor maneja la autorización, comienza el proceso de registro y autorización.

Si Registro dinámico del cliente es compatible, el cliente puede registrarse automáticamente con el servidor de autorización sin necesidad de configuración manual. Durante este paso, el cliente proporciona detalles básicos como su nombre, tipo, redirige las URL y los ámbitos deseados. En respuesta, el servidor de autorización emite credenciales del cliente, generalmente un client_id y client_secret, que el cliente usará en solicitudes posteriores. Este proceso hace que la incorporación de nuevos clientes sea más rápido y escalable, especialmente en entornos grandes o automatizados.

Después del registro, el cliente inicia el flujo OAuth apropiado:

  • Flujo del código de autorización: se utiliza al actuar en nombre de un usuario humano.
  • Flujo de credenciales del cliente: se utiliza para la comunicación segura de máquina a máquina.

En el flujo del código de autorización, se le pide al usuario que otorgue el consentimiento. Una vez aprobado, el servidor de autorización emite un token de acceso con los alcances apropiados para que el cliente lo use.

Fase de acceso

Con el token de acceso en la mano, el cliente lo envía junto con sus solicitudes al servidor MCP. El servidor valida el token, verifica los ámbitos y solo entonces procesa la solicitud y devuelve la respuesta. Cada interacción durante este proceso se registra para la auditoría y el cumplimiento, asegurando la seguridad y la trazabilidad.

Fuente: https://modelcontextprotocol.io/specification/draft/basic/authorization

Mejoras de seguridad clave en MCP OAuth 2.1

La especificación de autorización de MCP incluye varias actualizaciones de seguridad importantes para que el proceso sea más seguro y confiable:

PKCE obligatorio

Todos los clientes de MCP deben usar Pkce (Clave de prueba para el intercambio de código) como se define en OAuth 2.1. PKCE agrega una capa de protección creando un par de “verificador-quallenge” secreto, asegurando que solo el cliente original que inició la solicitud pueda intercambiar el código de autorización por tokens. Esto evita ataques como la intercepción o inyección del código.

Validación de URI de redirección estricta

Los clientes tienen que registrar previamente sus URI de redirección exactos con el servidor de autorización. Cuando ocurre la autorización, el servidor verifica una coincidencia exacta. Esto evita que los atacantes redirigan tokens a lugares no autorizados.

Fichas de corta duración

Se alienta a los servidores de autorización a emitir tokens de acceso de corta duración. Si un token es expuesto o robado accidentalmente, su breve vida útil reduce el riesgo de mal uso.

Modelo de alcance granular

MCP OAuth 2.1 permite permisos de grano fino utilizando ámbitos, por lo que los clientes solo tienen acceso a lo que necesitan. Los ejemplos incluyen:

MCP: Herramientas: clima – Acceso solo a herramientas meteorológicas.

MCP: Recursos: Data de cliente: Leer -Acceso de solo lectura a los datos del cliente.

MCP: EXEC: Flujos de trabajo:* – Permiso para ejecutar cualquier flujo de trabajo.

Registro dinámico del cliente

Los clientes y servidores de MCP pueden admitir el registro automático del cliente. Esto permite que los nuevos clientes obtengan sus credenciales (como ID de cliente) sin configuración manual, lo que hace que sea más rápido y más fácil incorporar a los nuevos agentes de IA de forma segura.

Cómo implementar OAuth 2.1 para los servidores MCP

En la siguiente sección del artículo, profundizaremos en cómo implementar OAuth 2.1 para los servidores MCP. Crearemos un servidor de análisis de sentimientos de finanzas simples e implementaremos autorización utilizando Scalekit que simplifica todo el proceso.


Soy un graduado de ingeniería civil (2022) de Jamia Millia Islamia, Nueva Delhi, y tengo un gran interés en la ciencia de datos, especialmente las redes neuronales y su aplicación en varias áreas.