Editado en base a los comentarios. Anteriormente pensé que el OP se refería a la validación redirect_uri durante la solicitud de autorización, y lo vinculé a un ejemplo de un ataque aquí . He actualizado la respuesta a continuación.
TL; DR: si se requiere que se registre una URL de redireccionamiento estático y el proveedor la coincida estrictamente, no creo que se requiera redirect_uri durante la solicitud del token de acceso.
Los requisitos de registro (3.1.2.2) indican que se debe registrar el URI de redireccionamiento. Sin embargo, no todos los proveedores realizan coincidencias exactas del URI de redireccionamiento, aunque la especificación lo requiere. La especificación OAuth intenta múltiples contramedidas para protegerse contra estas posibilidades, con redirect_uri < - > requisito de enlace del código de autorización descrito en el modelo de amenaza y consideraciones de seguridad RFC (5.2.4.5) .
Por ejemplo, GitHub hizo coincidir los prefijos de URL, que llevaron al ataque descrito aquí por Egor Homakov. En particular, los errores 1 y 2 permitieron a un atacante usar un URI de redireccionamiento en lista blanca para obtener un código, y luego usar ese código para completar el flujo de devolución de llamada y obtener acceso a la cuenta de la víctima. En este caso, el cliente (Gist), envió el URI de redireccionamiento correcto al proveedor (GitHub), y GitHub no habría concedido el token de acceso si hubiera verificado que el URI de redireccionamiento era el mismo utilizado durante la solicitud de autorización:
Fue defectuoso: no importa qué redirect_uri envió el Cliente para obtener un token, el Proveedor respondió con access_token válido.
El atacante podría secuestrar el código de autorización emitido para un redirect_uri "con fugas", luego aplicar el código filtrado en la devolución de llamada del Cliente real para iniciar sesión en la cuenta de la Víctima.
Para resumir, se requiere redirect_uri al obtener un token de acceso para garantizar que un código filtrado de una redirección a una página en la que el atacante puede insertar código no comprometa de inmediato el flujo de OAuth. Una descripción más completa del vector de ataque se describe aquí por Egor también:
El ataque es sencillo: encuentre una página con filtraciones en el cliente
dominio, inserte una imagen de dominio cruzado o un enlace a su sitio web, luego use
Esta página como redirect_uri. Cuando tu víctima carga un URL creado
lo enviará a leaking_page? code = CODE y el agente de usuario de la víctima
expone el código en el encabezado del Referer.
Ahora puede reutilizar el código de autorización filtrado en el real
redirect_uri para iniciar sesión en la cuenta de la víctima.
Remediación: redirect_uri flexible es una mala práctica. Pero si necesitas
Guarde redirect_uri para cada código que emita y verifíquelo en
creación access_token.