Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Los flujos de OAuth 2.0 y cuál corresponde a cada aplicación

5 tareas · 40 min · Principiante

Casi ninguna aplicación de una empresa guarda ya contraseñas: las delega en un proveedor de identidad y recibe de vuelta un permiso. OAuth 2.0 define varias maneras de conseguir ese permiso, y la primera revisión de un evaluador no es buscar un fallo exótico, sino comprobar algo mucho más aburrido y mucho más rentable: que cada aplicación use el flujo que le corresponde por el sitio donde corre. Trabajas con el inventario de aplicaciones federadas de Alimentos Apulo y con la configuración que su proveedor interno tiene registrada para cada una. Todo es lectura de lo que el cliente entregó: nadie inicia sesión ni se conecta a ningún servicio.

0 de 5 · 0%

Objetivo de la sala

Casi ninguna aplicación de una empresa guarda ya contraseñas: las delega en un proveedor de identidad y recibe de vuelta un permiso. OAuth 2.0 define varias maneras de conseguir ese permiso, y la primera revisión de un evaluador no es buscar un fallo exótico, sino comprobar algo mucho más aburrido y mucho más rentable: que cada aplicación use el flujo que le corresponde por el sitio donde corre. Trabajas con el inventario de aplicaciones federadas de Alimentos Apulo y con la configuración que su proveedor interno tiene registrada para cada una. Todo es lectura de lo que el cliente entregó: nadie inicia sesión ni se conecta a ningún servicio.

OAuth 2.0 (RFC 6749) separa a quien pide el permiso en dos familias según una sola pregunta: ¿puede guardar un secreto donde el usuario no llegue? Un servicio que corre en una máquina de la empresa sí puede, y se llama cliente confidencial. Una aplicación que corre dentro del navegador o dentro de un teléfono, no: todo lo que lleva dentro está al alcance de quien tenga el dispositivo, y se llama cliente público.

De esa pregunta sale el flujo. El flujo de código de autorización devuelve al navegador un código de un solo uso que después se cambia por el token en una llamada aparte. Para los clientes públicos se le añade PKCE (RFC 7636, septiembre de 2015), que hace que ese código solo sirva a quien lo pidió: la aplicación inventa un valor al empezar y lo demuestra al canjear. La práctica vigente de seguridad de OAuth 2.0, publicada por la IETF como RFC 9700 en enero de 2025, recomienda el código con PKCE como camino general.

Lo que el evaluador compara, entonces, son dos columnas del inventario: dónde corre la aplicación y qué flujo tiene configurada.

Responde para continuar

¿Qué distingue a un cliente público de uno confidencial?

Ver pista de ayuda

La palabra «público» no habla de quién lo usa, sino de dónde vive el programa.

Uno de los flujos originales entregaba el token de acceso directamente en la dirección a la que el navegador vuelve. Era cómodo para las aplicaciones que viven en una página, y es justo lo que hoy se desaconseja: lo que viaja en la dirección queda en el historial, en el encabezado que el navegador manda al enlace siguiente y en los registros de cualquier intermediario. La práctica vigente desaconseja ese flujo y empuja a todas las aplicaciones de navegador al código con PKCE.

Abre el laboratorio y cruza el inventario con la tabla de flujos.

Responde para continuar

Escribe el nombre de la aplicación cuyo flujo configurado entrega el token de acceso en la dirección a la que vuelve el navegador.

Ver pista de ayuda

Ejecuta `SELECT * FROM flujos` para ver qué llega al navegador en cada uno, y después `SELECT aplicacion, flujo_configurado FROM aplicaciones`.

Un cliente público con flujo de código y sin PKCE recibe un código que cualquiera que lo intercepte puede canjear: no hay nada que ate ese código a quien lo pidió. En un teléfono eso importa porque el sistema operativo entrega la respuesta a la aplicación registrada para ese destino, y el registro no siempre es exclusivo. PKCE cierra ese hueco sin añadir ningún secreto guardado.

Vuelve al laboratorio y mira las columnas de tipo de cliente y de PKCE.

Responde para continuar

Escribe el nombre de la aplicación de cliente público que usa el flujo de código de autorización y no tiene PKCE.

Ver pista de ayuda

Ejecuta `SELECT aplicacion, tipo_de_cliente, pkce FROM aplicaciones` y descarta la que ya identificaste en la tarea anterior.

Antes de escribir hace falta una cifra. En el informe no se dice «hay flujos antiguos»: se dice cuántas aplicaciones del inventario están configuradas con un flujo que la práctica vigente desaconseja, y se nombran. La tabla de flujos trae la columna que lo decide.

Responde para continuar

¿Cuántas aplicaciones del inventario tienen configurado un flujo desaconsejado?

Ver pista de ayuda

Ejecuta `SELECT * FROM flujos`, quédate con los que la última columna desaconseja y cuenta cuántas aplicaciones los usan.

Ya tienes la aplicación del teléfono sin la prueba de posesión del código. Falta decidir cómo se redacta: qué se vio en la evidencia, qué tendría que ocurrir para que hiciera daño y cuál es la corrección. Lo que no se vio no se escribe.

Responde para continuar

¿Qué redacción describe bien lo encontrado en la aplicación del teléfono?

Ver pista de ayuda

Hay tres maneras de contarlo: afirmar lo que nadie comprobó, no contarlo, o contar lo que la configuración demuestra.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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