/ / Autenticación de usuarios cuando se utiliza REST: api, resto, autorización, api-key, restler

Autenticando usuarios al usar REST - api, rest, authorization, api-key, restler

No estoy seguro de si el título de la pregunta expresa bien mi problema, así que voy a hacer mi mejor esfuerzo para explicarlo aquí:

Estoy escribiendo una api RESTful usando php y Restler. Ahora viene el problema:

  • Hay algunos servicios que me gustaría proteger, es decir, saber si el usuario que solicita ese servicio tiene suficientes privilegios.

  • Todos los servicios que estoy implementando deben ser consumidos usando javascript, por lo que el método tradicional de usuario / contraseña no funcionará porque todos lo verán.

  • También me gustaría limitar la cantidad de solicitudes que puede hacer un usuario anónimo, como lo hace Twitter con el servicio de búsqueda.

¿Qué puedo hacer para exponer mi api a todos, pero solo permitir que los usuarios con privilegios completen sus solicitudes?

Me tropiezo con este post: Autenticación REST y exponiendo la clave API pero al final, no se proporcionó ninguna solución.

Estoy muy abierto a cualquier alternativa: como OAuth. Me gustaría usar algo que se integre bien con el restler, pero si eso no es lo posible, entonces está bien.

He visto mucha información, diciendo que una clave api haría el trabajo, pero como estoy usando javascript, ¿cómo puedo proteger esas claves para que no las usen otros usuarios?

Respuestas

1 para la respuesta № 1

Actualizar: Restler 3 se lanza con hybrid acceso a la ayuda usando @access hybrid comenta y esta disponible aquí!


Justo a tiempo con la pregunta correcta :)

Tu pregunta tiene dos partes.

1. como hago hybrid acceso (ambos public y protected acceso) con Restler

Restler 2 no admite el acceso híbrido, pero Restler 3, que se lanzará en agosto de 2012 (esta semana), admitirá el acceso híbrido, creado exactamente para su caso de uso

Puedes seguir el desarrollo en gorjeo y / o Facebook

2. ¿Cómo puedo proteger mi API cuando el consumidor principal es JavaScript?

Por simplicidad puedes usar HTTPS con Autenticación básica o HTTP con Autenticación Digest

Otra alternativa se describe en Este artículo. No está escrito específicamente para Restler, pero es fácil de adaptar a Restler. Háganos saber si necesita ayuda en eso