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?