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.
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.
