OAuth 2.0: ¿Los tokens de actualización aún son beneficiosos cuando todos los clientes son públicos?

1

Estoy diseñando una nueva API REST para un servicio de aplicaciones móviles, que es algo que aún no he tenido que hacer desde cero. Decidí usar OAuth 2.0 con la concesión de Credenciales de contraseña del propietario del recurso.

Idealmente, los usuarios deben iniciar sesión una vez y permanecer autenticados para siempre, hasta que se desconecten o se revoque el acceso. He leído que debo usar tokens de acceso de corta duración y un token de actualización a largo plazo, con el beneficio de que incluso si el token de actualización es robado, necesita el secreto del cliente para solicitar un nuevo token de acceso, que a su vez podría ser revocado.

Pero las aplicaciones móviles se consideran clientes públicos, por lo que no deberían usar los secretos de los clientes, ¿por lo tanto, en realidad, es beneficioso usar tokens de actualización en esta situación, en lugar de usar tokens de acceso de larga vida?     

pregunta soren121 14.06.2017 - 09:21
fuente

1 respuesta

1

Lo has hecho bien: no hay beneficio real. Se puede encontrar fácilmente un secreto de cliente dentro de un binario ejecutable público. Ya sea mediante el análisis del tráfico binario o de red. Puedes hacerlo muy difícil pero no imposible.

Sin embargo, recomendaría encarecidamente los tokens de acceso de larga duración. Si uno de estos es robado, no puedes revocarlo. Está ahí y es válido por años. Sin embargo, si usa tokens de actualización y los tokens de acceso que viven durante horas como máximo, puede evitar que un atacante obtenga un token de acceso nuevo incluso si logran robar el token de actualización.

    
respondido por el marstato 14.06.2017 - 09:55
fuente

Lea otras preguntas en las etiquetas