2012-03-10 19 views
10

Tengo una aplicación de rieles con la que quiero empezar a habilitar la integración con iOS. Tengo un sistema de autenticación básico construido principalmente desde cero con un poco de ayuda de Sorcery.Rieles: autenticación de tokens desde cero

Según tengo entendido, hay básicamente dos opciones para la integración móvil: HTTP Basic Auth o Token Auth. De lo que he podido encontrar hasta ahora, parece que la autenticación Token es el método preferido.

No estoy familiarizado con lo que es la autenticación de tokens o cómo se supone que funciona, y realmente no he podido encontrar ninguna guía decente sobre esto, excepto algunos tutoriales sobre cómo usar el módulo relevante en el Diseñar biblioteca.

Entonces, mi pregunta es, ¿cuál es la teoría básica de la Autenticación de Token, y cómo sería un sistema token auth de token en los rieles? Entiendo que compartir el código de todo el sistema puede ser excesivo para una respuesta SO, pero estaría muy agradecido si alguien puede ayudarme a comprender un esquema básico de cómo se supone que funciona un sistema así. También me complacería aceptar enlaces desde cualquier punto sobre cualquier material existente sobre cómo hacerlo, ya que el principal problema es que no he podido encontrar nada parecido.

Gracias!

Respuesta

3

Creo que hay tres dificultades aquí.

  1. Hay muy pocos libros centrados en técnica de autenticación
  2. La palabra clave "token de autenticación" es confuso para usar en el campo/autenticación de seguridad.
  3. La documentación relacionada con los rieles tiende a ser "cómo".

Por lo tanto, Google no revelará buenos recursos para este propósito. Conozco bien este campo, pero es difícil, especialmente debido a la razón 2.

En mi entender, "token" aquí funciona como una identidad autenticada en el sistema y proporciona un puente entre el sistema de autenticación y el sistema de autorización. Pero para entender esto, debes entender el sistema general.

Déjame proporcionar algunos punteros con respecto a los libros de técnicas de autenticación y algunos documentos aquí.

  1. Butler Lampson hizo muchos trabajos relacionados con la autenticación, y algunos de los artículos son muy buenos materiales para comprender el marco de autenticación/autorización. eso podría ser útil. Uno de los ejemplos es Computer security in the real world(2004).
  2. El libro escrito para infraestructura de clave pública (PKI) podría ser útil. hay varios de tales. Como Understanding PKI: Concepts, Standards, and Deployment Considerations, 2nd edition

Espero que esto ayude.

10

Devise y Authlogic tienen una buena solución de autenticación de tokens. Puede usar una de estas gemas o implementar su propio código fuente para inspirarse.

A continuación es mi comprensión de cómo funciona testigo de autenticación:

  1. el usuario inicia sesión utilizando un nombre de usuario/contraseña a través de una solicitud puesto.
  2. Usted autentica al usuario y genera un token único y lo almacena en el db.
  3. Usted envía este token de vuelta al dispositivo iOS.
  4. El dispositivo almacena este token en la memoria.
  5. Cualquier llamada posterior a la API necesita este token pasado como un parámetro adicional para autenticar al usuario.
  6. Para que este proceso sea seguro, este token debe tener una fecha de caducidad y la comunicación entre el dispositivo iOS y el servidor debe cifrarse a través de SSL.
  7. Para mayor comodidad, puede almacenar las credenciales del usuario en el dispositivo utilizando el llavero iOS.

Espero que esto ayude.

Cuestiones relacionadas