🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAutenticación y autorización por endpoint, leída
5 tareas · 40 min · Principiante
En un contrato OpenAPI la seguridad se declara en dos niveles: una regla global y la que cada operación escribe para sí misma. Leer el contrato operación por operación es la forma más barata de encontrar un endpoint que quedó abierto o con un permiso menor del que merece. En Mayoristas Boquerón lees el contrato de la API de clientes y las reglas de acceso del equipo, y las comparas. Todo es lectura de archivos ficticios; no se llama a ninguna API.
Objetivo de la sala
En un contrato OpenAPI la seguridad se declara en dos niveles: una regla global y la que cada operación escribe para sí misma. Leer el contrato operación por operación es la forma más barata de encontrar un endpoint que quedó abierto o con un permiso menor del que merece. En Mayoristas Boquerón lees el contrato de la API de clientes y las reglas de acceso del equipo, y las comparas. Todo es lectura de archivos ficticios; no se llama a ninguna API.Un contrato define esquemas de seguridad (securitySchemes: OAuth 2.0 con sus alcances, clave de API, etc.) y luego los exige. La clave security en la raíz es el requisito por defecto de todas las operaciones. Una operación que escribe su propia security sustituye al requisito global. Si la operación escribe una lista vacía, security: [], no exige nada.
Por eso, para saber qué pide de verdad una operación hay que mirar dos sitios: si ella declara su seguridad, vale esa; si no la declara, hereda la global.
Responde para continuar
Una operación del contrato escribe su propia clave security. ¿Qué requisito se aplica a esa operación?
Ver pista de ayuda
Una lista vacía en la operación es la señal más clara de que sustituye al global.
Un servicio de estado que responde «ok» puede ser público sin riesgo: no devuelve datos. Pero una operación abierta que devuelve información de cuentas es una puerta sin cerradura. En el contrato de clientes, el equipo escribió una regla: solo el servicio de estado puede quedar sin autenticación.
Busca las operaciones sin credencial y descarta la que la regla permite.
Responde para continuar
Escribe el operationId de la operación sin credencial que la regla del equipo no permite.
Ver pista de ayuda
Busca `security: []` en `contratos/clientes.yaml` y lee `notas/reglas-de-acceso.txt`.
Las operaciones que no escriben security heredan el requisito global; aquí, el alcance de lectura. Es correcto para consultas, pero una herencia silenciosa en una operación que modifica datos sería un fallo. Contar las que heredan permite revisar si la herencia tiene sentido en cada una.
Responde para continuar
¿Cuántas operaciones del contrato de clientes no declaran security y heredan el requisito global?
Ver pista de ayuda
Cuenta las operaciones de `contratos/clientes.yaml` que no tienen la clave `security`.
Los alcances (scopes) de OAuth 2.0 limitan lo que un token puede hacer. Una operación destructiva con un alcance de lectura permite que un token que solo debía consultar borre datos. Esto es un fallo de autorización a nivel de función: el contrato lo hace visible si se compara con la regla del equipo, que dice qué alcance corresponde a cada acción.
Responde para continuar
Escribe el operationId de la operación que borra clientes y exige solo el alcance de lectura.
Ver pista de ayuda
Compara cada operación de `contratos/clientes.yaml` con las reglas de `notas/reglas-de-acceso.txt`.
El contrato declara qué credencial se exige y con qué alcance. No puede expresar «solo los clientes de tu propia cuenta»: esa comprobación vive en el código del servicio. Es la autorización a nivel de objeto, la primera categoría de la lista OWASP API Security Top 10 de 2023 (API1:2023). El contrato más perfecto del mundo no la garantiza.
Por eso la lectura del contrato se complementa con pruebas que usan dos cuentas distintas, y con la revisión del código que consulta el recurso.
Responde para continuar
Un contrato exige OAuth con el alcance correcto en verCliente. ¿Qué falta para saber que un usuario no ve clientes de otra cuenta?
Ver pista de ayuda
La regla sobre a quién pertenece cada cliente está anotada en el laboratorio como parte del código.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.