La idea detrás de OAuth es que, como servicio, no necesita conocer las credenciales (una vez más) para autenticar y personalizar el servicio.
Tiene razón en que los tokens del portador (parte de OAuth 2 en de hecho) son tan sensibles como el nombre de usuario / contraseña. Pero también lo es.
La idea es que con OAuth 2 usted se autentique con el proveedor del servidor OAuth 2, el servidor que le entrega (o, de hecho, la aplicación con la que se autentica) un conjunto de tokens para usar.
- Token de portador, token de corta duración para usar directamente para solicitudes autenticadas.
- Actualizar token, token de larga duración para obtener un nuevo token de portador.
La aplicación OAuth los utiliza junto con sus propios secretos previamente registrados (ID de aplicación y clave de aplicación) y una conexión TLS (https) para mantener las cosas seguras y secretas.
El resultado final es un esquema que es al menos tan seguro como el esquema de inicio de sesión del proveedor de servicios OAuth,
sin tener que mantener un nuevo conjunto de credenciales y sin tener que revelar las credenciales a la posible tercera parte que es el servicio de cliente OAuth.
Como beneficio adicional, no hay ningún requisito para que el cliente use TLS y aún tenga un inicio de sesión seguro
(aunque yo recomiendo TLS para cualquier aplicación web).
Y cuando se usan 'subvenciones' es posible limitar la información para la que se pueden usar los tokens,
como facebook, google y github muestran usuarios que se autentican con oauth.
La siguiente imagen tomada de Wikipedia ilustra cómo auth funciona de manera diferente a los esquemas de nombre de usuario / contraseña y por qué puede ser ventajoso.