Aclaración sobre el secreto del cliente de OAuth

2

Tengo algunos problemas para entender cómo utilizar OAuth para asegurar una API. Así que desarrollé un servicio REST, que me gustaría asegurar a un acceso autenticado. Primero opté por HTTP Basic + TLS, pero luego decidí apoyar también OAuth. La biblioteca de Jersey soporta OAuth1. Una vez que haya funcionado, el primer consumidor de esa API será una aplicación web.

Así que necesito registrar un consumidor, para obtener una clave de cliente, junto con un secreto de cliente. Necesito estos dos para iniciar el flujo OAuth1. Por lo tanto el cliente (aplicación web) necesita tenerlos. Pero eso significa que todos los usuarios de esa aplicación web tienen ahora el secreto y la clave del cliente, y pueden suplantar mi identidad como desarrollador y atraer a los usuarios a las trampas de phishing. Esto también se aplica, posiblemente en menor medida, a otros clientes, lo que podría necesitar primero ser desmontado. Pero el problema final aún existe.

Pero debe haber un malentendido por mi parte, ya que tal problema habría sido estorboso en su adopción.

Una posibilidad que me viene a la mente es, como desarrollador de clientes, iniciar OAuth solo en el lado del servidor. ¿Es esta la solución o no existe tal problema?

    
pregunta Angelo.Hannes 13.11.2014 - 09:41
fuente

1 respuesta

2

OAuth se puede utilizar de muchas maneras diferentes. Si se está emitiendo un token de OAuth a su aplicación web usando su clave secreta (convirtiendo su aplicación web en el 'cliente'), entonces nadie debe acceder a este token , más bien, la función de su servicio web es para realizar acciones en nombre de otros clientes y su aplicación debe tener un control de acceso en su lugar.

Alternativamente, OAuth también se usa para autenticar navegadores. Entonces, si un navegador está atravesando un flujo OAuth de 3 patas y luego proporciona acceso a su aplicación a un recurso web de terceros. Básicamente, el navegador posee este token y le permite a su servicio web utilizar este token OAuth. El cliente confía en su servicio web para mantener este token de OAuth en secreto.

    
respondido por el rook 13.11.2014 - 16:26
fuente

Lea otras preguntas en las etiquetas