Gobernanza del conector MCP a través de una puerta de enlace API de IA: tokens OAuth, alcances de herramientas y atribución por usuario
Los servidores MCP remotos y los conectores de servicios hacen que los flujos de trabajo de los agentes sean útiles, pero también trasladan la autorización, la retención y la respuesta a incidentes fuera de la llamada modelo. Trate la autorización del conector como un objeto del plano de control de la puerta de enlace: ciclo de vida del token, política de alcance, comprobaciones de aprobación, estado de revocación y registros de auditoría unidos.
Cuando un agente llama a Gmail, Drive, Stripe, un sistema interno o un MCP servidor remoto, la solicitud del modelo es solo una parte del evento de seguridad. La verdadera pregunta operativa es: ¿quién autorizó el conector, qué OAuth alcances se otorgaron, qué herramienta se invocó, qué datos abandonaron los límites del proveedor del modelo y cómo se puede revocar el acceso durante un incidente?
Una puerta de enlace de IA API que solo representa llamadas de modelos no puede responder esas preguntas. Puede conocer el inquilino, el modelo, la clave API, el tamaño del pedido y el costo. Es posible que no sepa que el modelo delegó el trabajo a un conector que opera bajo el token OAuth de un usuario humano. Esa brecha debilita la atribución, la política de aprobación, la revocación y la respuesta de auditoría.
El patrón práctico es tratar la autorización del conector MCP como un objeto de plano de control de puerta de enlace de primera clase. No reduzca la gobernanza del conector a una lista permitida de nombres de herramientas. Administre la inscripción del conector, OAuth procedencia del token, clasificación del alcance de la herramienta, política de aprobación, estado de revocación y registro de auditoría como parte de la misma capa de gobernanza que ya maneja API administración de claves, acceso al modelo, política de inquilinos y análisis de uso.
Hechos, recomendaciones y predicciones
Hechos: OpenAI documenta el MCP remoto como una categoría de herramienta de Respuestas API y permite que las aplicaciones proporcionen un OAuth token de acceso para un MCP servidor remoto. OpenAI también identifica conectores de servicios alojados como Gmail, Google Drive, Google Calendar, Dropbox y Microsoft Teams. La documentación de control de datos de OpenAI dice que los servidores MCP utilizados con la herramienta de servidor remoto MCP son servicios de terceros y los datos que se les envían están sujetos a las políticas de retención de esos servicios. La documentación del conector de Anthropic describe conectores personalizados que utilizan servidores MCP remotos y señala que los usuarios comúnmente autorizan los conectores a través de OAuth, con permisos que luego pueden revocarse. La especificación de autorización MCP utiliza autorización de estilo OAuth para transportes MCP basados en HTTP. OAuth la guía de seguridad en RFC 9700 es relevante para el manejo de tokens, los flujos de códigos de autorización y la seguridad del cliente.
Recomendaciones: Una puerta de enlace debe registrar conectores antes de su uso en producción, vincular cada llamada de conector al inquilino, la clave, el usuario, el sujeto del token y la identidad del servidor, clasificar las herramientas por riesgo de lectura/escritura, aplicar la política de aprobación antes del envío y mantener el estado de revocación de forma centralizada.
Predicciones: La adopción remota MCP impulsará las puertas de enlace de IA más allá del enrutamiento de modelos y la medición de tokens. Las puertas de enlace que no pueden ver la identidad del conector, OAuth el alcance, las decisiones de aprobación y los límites de retención descendentes serán más difíciles de usar en entornos regulados, empresariales y operados por socios.
El problema de la gobernanza es la división de identidades
Las llamadas de conector implican al menos tres identidades y no deben fusionarse en registros ni comprobaciones de políticas.
- Llamante de puerta de enlace: la clave API, cuenta de servicio, carga de trabajo o aplicación de socio que envió la solicitud de modelo.
- Usuario delegado: la persona o usuario final que autorizó el acceso a Gmail, Drive, CRM, calendario, pagos, datos internos u otro recurso protegido.
- Destino del conector: el servidor MCP remoto o el conector de servicio alojado que recibe la llamada de la herramienta y puede reenviarla a otro sistema.
Si esas identidades se agrupan en un campo llamado user, el registro de auditoría se vuelve ambiguo. Una cuenta de servicio de producción puede enviar una solicitud en nombre de 20.000 usuarios finales. Un solo humano puede autorizar varios conectores con diferentes alcances. Un servidor MCP remoto puede exponer herramientas respaldadas por múltiples servicios descendentes. La puerta de enlace necesita campos separados para los tres.
Un modelo de evento útil comienza con campos como:
{
"request_id": "req_01J...",
"tenant_id": "tenant_acme",
"gateway_key_id": "key_support_bot_prod",
"workload_id": "support_agent",
"end_user_id": "user_7421",
"connector_id": "conn_google_drive_support",
"mcp_server_url_hash": "sha256:...",
"oauth_subject": "google-oauth-sub:...",
"tool_name": "drive.files.search",
"tool_action_class": "read",
"approval_decision": "auto_allowed",
"retention_class": "third_party_standard",
"downstream_request_id": "optional_provider_or_connector_id"
}
Esta estructura permite que los equipos de seguridad, finanzas y plataforma respondan diferentes preguntas del mismo registro. ¿Qué inquilino invocó la herramienta? ¿Qué clave de aplicación lo hizo? ¿Qué usuario final delegó el acceso? ¿Qué conector recibió datos? ¿La acción fue de solo lectura o destructiva? ¿Se requirió aprobación?
Modelar conectores como recursos de puerta de enlace
Se debe registrar un conector antes de utilizarlo en producción. La inscripción no tiene por qué ser lenta, pero debe producir un objeto duradero al que la política pueda hacer referencia.
Un recurso de conector mínimo puede incluir:
tenant_id: el inquilino u organización autorizado a utilizar el conector.connector_id: un identificador interno estable, independiente de los nombres para mostrar del servidor.server_url: la URL del servidor MCP remoto o el identificador del conector alojado.owner_user_id: el administrador o usuario que lo registró.authorization_server: metadatos del emisor o del servidor de autorización, cuando estén disponibles.allowed_tools: nombres y versiones de herramientas revisadas o huellas digitales.tool_classes: leer, escribir, exportar, administrar, pago, mensajería o desconocido.approved_scopes: OAuth ámbitos aprobados para el conector.retention_class: estándar interno, del proveedor del modelo, de terceros o prohibido para cargas de trabajo confidenciales.revocation_status: activo, user_revoked, tenant_disabled, caducado, en cuarentena o denegado.
Esto es similar en espíritu a un perfil de modelo o un registro de credenciales de proveedor, pero la autorización del conector no es el mismo objeto que una clave de modelo ascendente. Las credenciales de tiempo de ejecución del proveedor permiten que la puerta de enlace llame a las API del modelo. Los tokens de conector representan autoridad delegada en sistemas internos o de terceros. Merecen una política de auditoría, controles de almacenamiento y procedencia independientes.
Broker o validar OAuth tokens deliberadamente
Hay dos patrones de implementación comunes.
Pasarela intermediada OAuth
En este modelo, la puerta de enlace inicia o coordina el flujo OAuth, almacena tokens de actualización o material de token de acceso en una bóveda, genera sesiones de conector de corta duración y adjunta tokens de acceso al enviar llamadas MCP remotas. Esto le da a la puerta de enlace un control sólido sobre el consentimiento, la duración del token, la revocación y las uniones de auditoría.
La contrapartida es la complejidad. La puerta de enlace debe gestionar las pantallas de consentimiento, la seguridad del flujo de códigos de autorización, la actualización de tokens, la rotación de tokens, el almacenamiento cifrado, la gestión de URI de redireccionamiento, la validación del emisor y la configuración de la aplicación OAuth específica del inquilino. RFC 9700 es importante aquí porque este patrón coloca la puerta de enlace cerca de OAuth responsabilidades del cliente.
Administrado por la aplicación OAuth
En este modelo, la aplicación obtiene el token OAuth y lo pasa a través del modelo o ruta de puerta de enlace al invocar un conector remoto MCP. Esto puede ser más rápido de enviar porque es posible que los productos existentes ya tengan flujos de autorización de conector.
La contrapartida es una gobernanza fragmentada. Si la puerta de enlace solo ve un token opaco, es posible que no conozca el asunto del token, los alcances, el emisor, la actualidad, el estado de revocación o la procedencia del consentimiento. Una versión más segura de este patrón requiere que la aplicación proporcione metadatos del conector firmados con cada llamada, y la puerta de enlace debe validar el emisor, la audiencia, la caducidad, la inscripción del conector, el enlace del usuario y el alcance aprobado antes del envío.
Para conectores de datos de usuario, como correo electrónico, calendario, almacenamiento, CRM y pagos, prefiera tokens OAuth por usuario. Los tokens de portador compartidos de larga duración deben limitarse a flujos de trabajo explícitos de cuentas de servicio dirigidos a un inquilino y revisados como recursos de mayor riesgo.
Normalizar los alcances de las herramientas antes del envío
Los servidoresMCP pueden exponer nombres de herramientas y metadatos, y algunos ecosistemas proporcionan sugerencias, como anotaciones de solo lectura. Utilice esas señales, pero no trate los metadatos proporcionados por el servidor como de plena confianza. Los metadatos de las herramientas pueden ser erróneos, obsoletos, ambiguos o contradictorios. La guía MCP de OWASP destaca los privilegios mínimos, las listas de permitidos, la autenticación, la autorización y la supervisión; MCP Los 10 trabajos principales también llaman la atención sobre los riesgos de intoxicación por herramientas.
Una puerta de enlace debe mantener sus propias clases de acción normalizadas:
- Leer: buscar, enumerar, obtener, recuperar, resumir contenido existente.
- Escribir: crear, actualizar, editar, etiquetar, mover, comentar, programar.
- Enviar: correo electrónico, mensaje de chat, webhook, respuesta al ticket, notificación.
- Eliminar: eliminar, purgar, archivar, revocar.
- Exportar: descarga masiva, transferencia de archivos, extracción de conjuntos de datos.
- Financiero: cargo, reembolso, factura, pago, cambio de suscripción.
- Administrador: cambio de permiso, invitación de usuario, actualización de función, edición de política.
- Desconocido: cualquier cosa no revisada o no clasificada con seguridad.
Luego aplique la política a las clases normalizadas en lugar de a los nombres de herramientas sin formato. Por ejemplo:
policy connector_default {
allow read when tenant.connector_risk in ["low", "medium"]
and user.authorization_age_days <= 90
and connector.retention_class != "prohibited";
require_approval send, write when connector.risk != "low";
require_approval export, delete, financial, admin;
deny unknown;
}
Esto mantiene la política estable cuando un conector cambia el nombre de gmail.search a mail.messages.query. La herramienta sin procesar aún necesita revisión, pero el sistema de aprobación puede razonar en categorías operativas.
Ejecutar una comprobación del conector previa al envío
Antes de que la puerta de enlace permita una llamada de conector iniciada por el modelo, debe ejecutar una decisión compacta previa al envío. Aquí es donde se unen el análisis de uso de IA, la política de seguridad, el flujo de trabajo de aprobación y la política de retención.
Una secuencia práctica es:
- Resolver inquilino y clave: identifique la clave de puerta de enlace, el inquilino, la carga de trabajo, el entorno y la solicitud de modelo.
- Resolver usuario final: requiere un ID de usuario final estable para los conectores delegados. Rechace llamadas delegadas anónimas a menos que se permitan explícitamente.
- Resolver conector: haga coincidir la URL del servidor o el ID del conector alojado con un recurso de conector inscrito.
- Validar token: verifique el emisor, la audiencia cuando corresponda, el vencimiento, el asunto, el vínculo del inquilino, el estado de revocación y los alcances requeridos.
- Clasificar acción: nombre de la herramienta de mapa y metadatos para leer, escribir, enviar, eliminar, exportar, financiero, administrativo o desconocido.
- Verificar el límite de retención: determinar si la carga de trabajo permite el procesamiento y el registro del servidor MCP de terceros.
- Aplicar política de aprobación: permitir automáticamente, requerir aprobación del usuario, requerir aprobación del administrador, bloquear o poner en cuarentena.
- Reservar presupuesto si es facturable: si la ejecución del conector tiene cargos directos o indirectos, reserve el presupuesto antes del envío.
- Escribe la decisión: persiste la decisión antes de llamar al conector, no solo después del éxito.
Lo primero que importa es escribir la decisión. Si el conector agota el tiempo de espera, transmite una salida parcial o desencadena un error descendente, el registro de auditoría aún debería mostrar que la puerta de enlace permitió o denegó un intento de acción específico.
La aprobación debe tener en cuenta el flujo de trabajo
Es fácil razonar sobre la aprobación por llamada y, a menudo, no se puede utilizar en la práctica. Un agente de atención al cliente que necesita leer un ticket, buscar en Drive, redactar un correo electrónico y actualizar un registro de CRM no debe obligar al usuario a realizar un modal para cada operación de lectura inofensiva. Al mismo tiempo, enviar un correo electrónico, eliminar un archivo, reembolsar un pago o exportar una carpeta no debe delegarse silenciosamente porque un modelo seleccionó una herramienta.
Una política viable está en capas:
- Permitir automáticamente herramientas de solo lectura revisadas para inquilinos de bajo riesgo y nueva autorización de usuario.
- Requerir aprobación para enviar, crear, actualizar, eliminar, exportar, acciones financieras y administrativas.
- Permitir aprobaciones agrupadas para un flujo de trabajo, alcance y ventana de tiempo con nombre.
- Requerir nueva aprobación cuando los alcances se amplían, las definiciones de herramientas cambian materialmente o el conector pasa a una clase de mayor riesgo.
- Bloquear herramientas desconocidas hasta que se revisen.
Las aprobaciones agrupadas deben ser explícitas. Un usuario puede aprobar: "Durante los próximos 30 minutos, permita que este flujo de trabajo de soporte busque en Drive y redacte respuestas, pero requerirá confirmación antes de enviarlas". Esto es más útil que un interruptor de permitir/denegar conector binario.
Los límites de retención necesitan su propio campo
Las llamadas remotas MCP pueden mover datos fuera de los límites de retención y procesamiento del proveedor del modelo. Esto no es automáticamente incorrecto, pero debe ser visible. Una carga de trabajo a la que se le permite utilizar un punto final modelo bajo una configuración de retención de datos aún puede tener prohibido enviar el mismo contenido a un servidor MCP de terceros con términos de retención diferentes.
Agregar clasificación de retención tanto a cargas de trabajo como a conectores. Clases de ejemplo:
internal_only: no se permiten llamadas de conector de terceros.approved_processors_only: el conector debe estar en una lista de proveedores aprobados.third_party_standard_allowed: se permite el procesamiento del conector SaaS estándar.no_argument_logging: se permiten llamadas al conector, pero los argumentos se deben redactar o aplicar hash.export_blocked: lectura/búsqueda permitida, exportación masiva denegada.
Aquí es donde la puerta de enlace protege a los equipos de un error sutil: asumir que los controles de datos del proveedor del modelo se aplican automáticamente a cada herramienta que utiliza el agente. No se aplican necesariamente una vez que los datos se envían a un MCP servidor remoto o a un conector de servicio externo.
Crear un libro mayor de auditoría de conectores
Un libro de auditoría de conectores debe unir solicitudes de modelo, autorización de puerta de enlace, envío de conectores y resultados posteriores. No confíe únicamente en los seguimientos sin procesar del proveedor, ya que cada proveedor puede exponer los eventos de la herramienta de manera diferente y los registros de la aplicación pueden omitir el token o el contexto de aprobación.
Los campos de libro mayor recomendados incluyen:
model_request_ide ID de seguimiento.tenant_id,gateway_key_id, carga de trabajo, entorno e ID de usuario final.connector_id, hash de URL del servidor, identificador del conector alojado y clase de riesgo.tool_name, versión de la herramienta o huella digital de metadatos y clase de acción normalizada.- OAuth emisor, asunto del token, hash del conjunto de alcance, depósito de vencimiento y procedencia del token.
- Hash de argumentos, argumentos redactados, clase de sensibilidad y clase de retención.
- Decisión de aprobación, aprobador, alcance de aprobación y vencimiento de la aprobación.
- Estado de envío, estado de respuesta, clase de error, latencia e ID de solicitud descendente, cuando estén disponibles.
El registro de argumentos completos puede ayudar a responder a incidentes, pero también aumenta el riesgo de privacidad y retención. Prefiere campos estructurados, hash, redacción selectiva y etiquetas de confidencialidad de forma predeterminada. Permitir la captura completa solo bajo un incidente explícito o una política de depuración con vencimiento.
La revocación y la cuarentena son requisitos del producto
La revocación no puede ser una edición manual de la base de datos. Los usuarios y administradores necesitan flujos de trabajo que se conviertan en un estado de política inmediato.
Implementar al menos estas acciones:
- Desconexión de usuario: revoca o marca como inactivos todos los tokens para la autorización del conector de un usuario.
- Desactivación de inquilinos: bloquea un conector para un inquilino completo sin deshabilitar el tráfico de modelos no relacionados.
- Manejo de caducidad de token: no se puede cerrar o volver a autorizar cuando falla la actualización o la actualización de la autorización excede la política.
- Cuarentena de conector: bloquea un conector conservando su configuración y registros para su investigación.
- Lista de denegaciones de emergencia: bloquear mediante hash de URL del servidor, ID de conector, emisor o huella digital de herramienta.
- Reducción de alcance: volver a autorizar con menos alcances cuando un flujo de trabajo ya no necesita un acceso amplio.
El detalle importante de la implementación es que el estado de revocación debe verificarse en el momento del envío. Una sincronización nocturna es útil para la conciliación, pero no es suficiente para responder a incidentes.
Sondas de conformidad para MCP conectores remotos
Antes de que un conector esté disponible para los inquilinos de producción, pruébelo como una dependencia gobernada. Un breve conjunto de sondas detecta muchos errores de integración y políticas.
- El descubrimiento de metadatos devuelve una identidad de servidor estable y las definiciones de herramientas esperadas.
- Los metadatos de recursos protegidos y el comportamiento de autorización coinciden con los supuestos documentados cuando corresponda.
- Los requisitos de registro de cliente dinámico se entienden, se admiten o se inhabilitan explícitamente.
- Las solicitudes sin tokens fallan de forma segura.
- Los tokens caducados fallan de forma predecible y no activan reintentos incontrolados.
- La clasificación de lectura/escritura coincide con el comportamiento observado, no solo con las descripciones.
- Los metadatos de herramientas con formato incorrecto se rechazan o se marcan como desconocidos.
- Los cambios en la lista de herramientas activan la revisión cuando cambian los nombres, alcances, descripciones o clases de riesgo.
- Los errores del conector se registran sin filtrar argumentos confidenciales en campos de error genéricos.
Estas sondas no reemplazan la revisión de seguridad, pero brindan a la puerta de enlace una forma repetible de detectar desviaciones. Los servidores MCP remotos pueden cambiar independientemente del proveedor del modelo y del ciclo de lanzamiento de su aplicación.
Lista de verificación de implementación
- Cree un registro de conector con los campos inquilino, servidor, autorización, alcance, herramienta, riesgo, retención y revocación.
- Identidad de clave de puerta de enlace separada, identidad de usuario final delegada e identidad de conector en cada decisión política.
- Almacene tokens de conector en una bóveda de credenciales, pero manténgalos distintos de las credenciales de tiempo de ejecución del proveedor de modelos.
- Prefiera por usuario OAuth para conectores de datos de usuario; limite los tokens de servicios compartidos a flujos de trabajo explícitos de cuentas de servicios.
- Normalizar las acciones de la herramienta en lectura, escritura, envío, eliminación, exportación, financiera, administración y desconocida.
- Ejecute comprobaciones previas al envío para la inscripción del conector, la validez del token, la coincidencia del alcance, la compatibilidad de retención, el estado de aprobación y la reserva del presupuesto.
- Registrar las decisiones del conector antes del envío y establecer el estado final después de una respuesta o un error.
- Crear flujos de trabajo de desconexión de usuarios, inhabilitación de inquilinos, cuarentena de conectores y lista de denegación de emergencia.
- Metadatos del conector de la sonda, comportamiento del token, desviación de la herramienta y metadatos con formato incorrecto antes del uso en producción.
Conclusión práctica
MCP y los conectores de servicios hacen que los agentes sean útiles porque permiten que los modelos actúen en sistemas reales. Esa misma utilidad convierte la autorización del conector en una preocupación del plano de control, no en un detalle de ingeniería inmediata.
La puerta de enlace debe saber más que el modelo, el número de tokens y la clave API. Debe saber a qué conector se llamó, qué usuario lo autorizó, qué alcances se otorgaron, qué clase de acción de herramienta se solicitó, si se requirió aprobación, si el límite de retención fue compatible y cómo se puede revocar el acceso. Comience con un registro de conectores, una verificación de políticas previa al envío y un libro de auditoría unido. Luego agregue OAuth intermediación, aprobaciones agrupadas, sondeos de conformidad y cuarentena de emergencia a medida que crezca el uso del conector.
El objetivo no es bloquear la adopción MCP remota. El objetivo es hacer que el acceso al conector sea atribuible, revocable, revisable y compatible con las mismas expectativas de gobernanza que los equipos ya aplican al acceso al modelo y a una puerta de enlace OpenAI compatible con API.