Acceso
Autenticación y permisos
Autentica con una clave de API en una cabecera o deja que el cliente inicie sesión con OAuth 2.1. En ambos casos los permisos deciden qué herramientas existen.
Clave u OAuth
Enlace a esta sección: Clave u OAuth| Clave de API | OAuth 2.1 | |
|---|---|---|
| Cómo | Authorization: Bearer <key> en cada petición | El cliente inicia sesión; un administrador da su consentimiento |
| Permisos (scopes) | Se elige al crear la clave; queda fijo | Se elige en la pantalla de consentimiento; queda fijo hasta que vuelvas a conectar |
| Como quién actúa | El administrador propietario de la clave | El administrador que dio su consentimiento |
| Vida útil | Hasta que se revoque o llegue su fecha de caducidad | Token de acceso de 1 hora; token de refresco de 30 días, rotado en cada uso |
| Revocar | En la página API y MCP de los ajustes | La misma página; la conexión es una entrada |
Ambos acaban siendo lo mismo: el token de acceso de una conexión OAuth es una clave de Filmo (fk_live_…), así que también funciona en la API REST. Autenticación REST trata las claves; una suscripción puede tener hasta 50 claves no revocadas, contando las claves caducadas y las conexiones OAuth; el límite te impide crear otra clave a mano.
Descubrimiento
Enlace a esta sección: DescubrimientoUna llamada sin credencial a https:// recibe un HTTP 401 con un cuerpo de problema y una cabecera WWW-Authenticate: Bearer realm="filmo-public-api", resource_metadata="…", scope="<the read scopes>". El cliente lee los metadatos del recurso protegido (RFC 9728) en https:// y los metadatos del servidor de autorización (RFC 8414) en https://. Los metadatos nombran https:// como emisor y https:// como recurso, y su resource_documentation apunta a esta página.
- El
scopedel 401 lista los permisos de lectura, así que los clientes que lo usan piden lectura por defecto. scopes_supportedenumera todos los permisos (scopes), incluidos los de escritura.- Se exige PKCE
S256;plainse rechaza. La única autenticación de cliente es ninguna (clientes públicos). - Cualquier otro host de producción responde con una redirección (308) al canónico y, para un cliente que no la sigue en un POST, con un error JSON-RPC que nombra la URL. Un cliente que la sigue descarta la cabecera
Authorizationcuando cambia el origen. - No anunciados: client ID metadata documents,
issen la respuesta de autorización,offline_accessy un endpoint de revocación. El parámetroresourcese ignora: el token no tiene audiencia.
GET /.·well-known /oauth-protected-resource GET /.well-known /oauth-authorization-server Descubrimiento (RFC 9728, RFC 8414). El 401 de
/apiya los señala en/v1 /mcp WWW-Authenticate.POST /api/v1 /oauth /register Registro dinámico (RFC 7591). Cliente público: recibes un
client_id, nunca unclient_secret.Abre
GET /oauthcon un desafío PKCE/authorize S256plainse rechaza.Consentimiento
El administrador elige la suscripción. Solo los permisos de lectura empiezan marcados (los que pide el cliente, o todos si no pide ninguno); las escrituras,
workflows:runyai:askempiezan siempre desmarcados, aunque el cliente los pida, y el administrador los marca a mano.Código de autorización
POST /apicon/v1 /oauth /token grant_type=authorization_codey el verificador PKCEToken de acceso (1 hora) y token de renovación, con el
scoperealmente concedidoAuthorization: Bearer <token>El token es una clave de API de vida corta. Para renovarlo,
grant_type=refresh_token: el token de renovación rota en cada uso.
Registrar un cliente
Enlace a esta sección: Registrar un clienteLos clientes se registran por sí mismos (RFC 7591) en https://. El registro es abierto y no necesita credencial, con hasta 10 URI de redirección por cliente; se aceptan las https, las de loopback (http en 127.0.0.1, localhost o [::1], con cualquier puerto) y el esquema personalizado de una app nativa (como myapp://); nunca se acepta un fragmento, y la URI de redirección de una petición tiene que coincidir exactamente con una de ellas. Está limitado a 5 registros por minuto y dirección.
La pantalla de consentimiento
Enlace a esta sección: La pantalla de consentimientoSolo un administrador de la cuenta de Filmo puede dar el consentimiento, y elige la suscripción a la que queda ligada la conexión. La pantalla ofrece todos los scopes y marca por defecto solo el mínimo:
- Se comprueban los permisos (scope)
*:readque pidió el cliente; si no pidió ninguno, se comprueban todos los permisos de lectura. - Las escrituras,
workflows:runyai:askempiezan sin marcar aunque el cliente los pida. Lo que pidió lleva “Requested by the integration”; lo que no pidió, “Not requested by the integration”. scopees opcional en la petición y los permisos (scopes) que Filmo no conoce (openid,offline_access, una errata) se ignoran.- La pantalla muestra el host de redirección y avisa cuando todas las redirecciones del cliente son loopback. No avisa de un esquema propio de la app.
- Puedes conceder un permiso que el cliente no pidió. La respuesta del token devuelve el scope realmente concedido, que puede ser menor que el solicitado.
Deja ai:ask sin marcar salvo que quieras que el asistente gaste los créditos de IA de la cuenta.
Antes de aprobar
Enlace a esta sección: Antes de aprobarCualquiera puede registrar un cliente con cualquier nombre, porque el registro es abierto y se aceptan redirecciones a loopback en cualquier puerto. Por eso una página web o un proceso de tu ordenador puede pedir consentimiento como «Claude» o como cualquier otro producto. Antes de aprobar:
- Comprueba el host de redirección que muestra la pantalla con la página del cliente en Conectar:
claude.para Claude,ai chatgpt.para ChatGPT.com - Desconfía de un cliente que solo redirige a tu propio ordenador, a menos que lo hayas iniciado tú mismo, desde una herramienta que instalaste.
- Una redirección que no es
httpsno tiene un host que comprobar. Un esquema de aplicación personalizado (myapp://) abre una aplicación instalada en este ordenador o teléfono; apruébalo solo si iniciaste el inicio de sesión desde esa aplicación.… - No apruebes nunca un consentimiento que no hayas iniciado.
- Revisa cada scope. Una escritura que no necesitas es una escritura que puede usar una instrucción inyectada.
- El código de autorización dura 60 segundos y sirve una sola vez.
- El token de acceso dura 1 hora. El token de refresco dura 30 días y se rota en cada intercambio: el token de acceso anterior deja de funcionar al instante.
- Un refresh token usado dos veces en 10 segundos por el mismo cliente devuelve el mismo par; si se usa de nuevo más tarde, se revoca toda la cadena y el cliente debe pedir consentimiento otra vez.
- Los errores de OAuth son
{ error, error_description }, no documentos de problema, y la descripción está en español. En un 429 sigueRetry-After, no el cuerpo.
Un permiso (scope) que falta
Enlace a esta sección: Un permiso (scope) que faltaUna herramienta para la que la conexión no tiene permiso (scope) devuelve insufficient_scope como error de herramienta con requiredScope; no hay petición para ampliar permisos. Para añadir un permiso, elimina el conector y vuelve a añadirlo.
Revocación
Enlace a esta sección: RevocaciónRevoca una conexión o una clave en la página API y MCP de los ajustes de la aplicación. El token de acceso falla con api_key_revoked al instante, y el token de refresco ya no se puede canjear.
Páginas relacionadas
Enlace a esta sección: Páginas relacionadasGuías
Permisos (scopes)
Una clave lleva permisos; cada operación exige exactamente uno. Concede los mínimos que necesites.
Guías
Para administradores
Un asistente actúa con el consentimiento de uno de tus administradores. Decide quién puede conectar, qué puede conceder y cómo retirarlo.
Introducción
Servidor MCP
Conecta un asistente de IA a tu cuenta de Filmo. Puede usar exactamente las herramientas que permita su clave o su conexión.
¿Te ha resultado útil esta página?