Pregunta

El otro minuto leí un artículo sobre OAuth.Describió especialmente los tokens que se intercambian entre el cliente y el proveedor de servicios durante una serie de solicitudes.

El artículo también menciona que OAuth gana una popularidad significativa en las API RESTful como capa de autorización.Según tengo entendido, REST debe mantenerse completamente sin estado.

La pregunta:¿Este repetido intercambio de tokens no torpedea el principio de "ser apátrida" de REST?En mi humilde opinión, los tokens pueden verse como una especie de ID de sesión, ¿no?

¿Fue útil?

Solución

Los tokens de OAuth son explícitamente un identificador de sesión, la interacción no tiene estado entre las peticiones en el protocolo de negociación token de OAuth como las solicitudes deben realizarse en una secuencia específica, y que no se requiere el almacenamiento por cliente en el servidor como sea necesario para realizar el seguimiento cosas como cuando se emitieron. Así que sí, OAuth no viola los principios estrictos de una arquitectura REST.

Por desgracia, no es el mundo real TM para lidiar con el lugar donde tenemos que hacer cosas como permiten las aplicaciones autenticarse en el nombre de las personas sin solicitar su contraseña, que OAuth hace bastante bien. Sería imposible implementar un esquema de autenticación de manera similar segura sin este tipo de estado. De hecho, uno de los cambios requeridos por OAuth (1.0a) fue añadir más estado para el protocolo de negociación de contadores a mitigar un riesgo de seguridad.

Por lo tanto, no se torpedo principio sin estado de reposo? Si. ¿Eso importa? No menos que viva en una torre de marfil: -)

Otros consejos

La autenticación es un estado que se debe rastrear de alguna manera cuando se trata de interacciones web.En última instancia, si su aplicación es tranquila o no, el servidor debe poder rastrear el "estado autenticado" de cada usuario y desafortunadamente eso requiere algún tipo de elusión de la naturaleza subyacente sin estado de HTTP y cualquier transporte/técnica adicional (como REST) ​​además de él.

Por lo tanto, para desarrollar cualquier tipo de aplicación autenticada, se debe implementar un principio de estado en alguna parte, y si resulta que es OAuth además de REST, ¡así debe ser!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top