Autenticación y seguridad de iOS / Android

2

Esto es lo que estoy tratando de hacer y ¿alguien puede proporcionar algunos consejos de mejores prácticas para la autenticación y la seguridad?

Cada usuario tendrá su propia base de datos privada en la nube. Tendrá su couchdb local en iOS / Android. Mi aplicación iOS / Android se replicará entre el móvil y la nube. Los usuarios también pueden acceder a sus datos en la nube desde la web. Estoy usando la autenticación CouchDB y no hay nivel intermedio. Cuando un usuario se registre para obtener una nueva cuenta, crearé una nueva base de datos en la nube con su nombre de cuenta. Comparé a Iris Couch y Cloudant y elegí a Iris Couch porque Cloudant no me da privilegios de administrador para lograr esto.

Mis preguntas:

  1. ¿Es una buena idea o es posible que el cliente iOS / Android / Web tenga privilegios de administrador para crear una nueva base de datos cuando se registre para obtener una nueva cuenta de usuario? Podría codificar el nombre de usuario y la contraseña del administrador en los clientes de iOS / Android, pero eso se siente muy mal. Para el cliente web, no tendré la opción de codificar la contraseña del administrador. Alternativamente, puedo configurar una nueva máquina en la nube para monitorear los cambios en la base de datos de los usuarios y crear nuevas bases de datos en consecuencia.
  2. ¿Debo usar la credencial del usuario para replicar entre dispositivos móviles y la nube?
  3. Estoy usando Iris Couch para hospedar. ¿Cuál es la mejor manera de integrar la autenticación de Facebook en mi modelo de autenticación? Vi este complemento, pero ¿requiere mi propio alojamiento y hacer cambios en el servidor?

enlace

Por curiosidad, también veo el alojamiento de Cloudant. Pero no parece que pueda crear usuarios de CouchDB y admitir mi modelo de base de datos por usuario. No tengo acceso de administrador a la base de datos de usuarios.

    
pregunta AviD 07.07.2011 - 20:51
fuente

1 respuesta

4
  1. No. No debe incluir las credenciales de administrador en el código del cliente. ¿Ha considerado ejecutar un servidor cuya interfaz pública tenga exactamente una operación que admita (create_new_user)? ¿O implementar un procedimiento almacenado en la base de datos para admitir esta operación (si CouchDB admite procedimientos almacenados)?

  2. No entiendo lo que estás preguntando aquí. Tal vez se necesita más explicación?

  3. No lo sé.

P.S. Ya que tienes 3 preguntas, te sugiero hacerlas por separado. Creo que es más probable que obtengas respuestas útiles de esa manera.

    
respondido por el D.W. 08.07.2011 - 17:57
fuente

Lea otras preguntas en las etiquetas