OAuth 2 Credenciales de cliente dentro de la aplicación móvil

0

Actualmente estoy desarrollando una aplicación móvil que se comunica con un servidor OAuth. El servidor al que estoy tratando de acceder proporciona dos concesiones: el Código de autorización y la concesión de un PIN del dispositivo (no estoy seguro de que sea parte de la especificación oficial de OAuth). Sin embargo, ambas subvenciones requieren pasar un secreto de cliente como parte de la solicitud.

Incrustar secretos de clientes en una idea móvil es una mala práctica debido a la posibilidad de ingeniería inversa.

Algunas ideas que tuve que superar esto:

Proxy OAuth a través de una API personalizada.

Para que esto funcione, la solicitud para obtener el access_token se envía a mi api, que luego adjunta el client_secret y lo reenvía al punto final real. Esto permite que el secreto permanezca en secreto, pero ¿un atacante puede usar mis puntos finales para obtener el token?

Utilice la variable state con cifrado y descifrado

Para que esto funcione, la solicitud para obtener access_token incluye una variable de estado que se puede descifrar asimétricamente usando una clave privada. Sin embargo, esto implica exponer una clave pública que se puede realizar ingeniería inversa de la misma manera que un secreto de cliente. Esto lo hace en su mayoría inútil también.

¿Cuál es la mejor manera de implementar esto? O debería simplemente aceptar los riesgos y continuar.

    
pregunta Eliott Robson 05.10.2018 - 15:31
fuente

0 respuestas

Lea otras preguntas en las etiquetas