¿Debo enviar el secreto con el token de actualización en OAuth 2.0?

1

Estoy trabajando para implementar un servidor OAuth 2.0 y, al leer la especificación RFC6749, me di cuenta de que sección 6 en Página 47 sobre "Actualización de un token de acceso". Explica que solo necesitamos usar el token de actualización que tenemos para obtener un token nuevo.

Pero, por ejemplo, además del token de actualización, Google requiere la ID de usuario y el secreto para hacerlo.

Esto me confunde, porque por un lado tenemos a Google que procesa un gran volumen de solicitudes todos los días, y tenemos una especificación escrita probablemente con un alcance menor en mente.

¿Es bueno enviar el Secreto cada hora con el token de actualización?

Personalmente creo que no: porque la ID de usuario y el Secreto deben usarse solo para revisar todo el proceso de OAuth 2.0.

Básicamente

  1. Utiliza el token en cada solicitud para demostrar que eres quien eres.
  2. El token de actualización se usa solo una vez por hora (y se puede cambiar en cada actualización)
  3. El secreto y la identificación del usuario van a Internet tan raramente como sea posible. Solo cuando las opciones 1 y 2 se ven comprometidas.

Personalmente, creo que enviar el Secreto con el token de actualización es menos seguro. Pero tal vez me esté perdiendo algo.

Si tienes otro punto de vista, compártelo :)

    
pregunta David Gatti 07.11.2016 - 12:50
fuente

1 respuesta

1

En realidad, si sigues leyendo, también dice

  

El servidor de autorización DEBE:

     

o requiere autenticación de cliente para clientes confidenciales o para cualquier        cliente que se emitió credenciales de cliente (o con otros        requisitos de autenticación),

     

o autenticar el cliente si se incluye la autenticación del cliente y       Asegúrese de que el token de actualización se haya emitido al autenticado.       cliente, y

     

o validar el token de actualización.

Lo que significa bastante eso: pase su ID de cliente y su secreto con la solicitud de token de actualización.

La especificación no es muy explícita a este respecto, pero dice que has demostrado quién eres (o qué aplicación eres) para poder realizar una actualización. Tenga en cuenta que se dice "clientes confidenciales", lo que significa que esto está destinado principalmente a ocurrir en el lado del servidor.

Entonces, además de pasar el token de actualización, también debe pasar la autenticación del cliente al punto final del token, lo que significa que un atacante debe controlar varios valores para poder usar un token de actualización que ha recibido. las manos en. Esto implica que posiblemente también debas almacenar estas cosas en lugares separados y simplemente reunir los datos necesarios cuando necesites actualizar tu token.

    
respondido por el donmartin 01.12.2016 - 16:48
fuente

Lea otras preguntas en las etiquetas