Tengo una placa integrada con un recurso de memoria y procesamiento muy limitado. Me gustaría controlar el tablero mediante una aplicación de Android.
Los usuarios se clasifican en 3 grupos:
-
propietario de la junta.
-
administradores de la pizarra.
-
usuario normal.
El propietario tiene el control total en el tablero y puede definir los administradores. Los administradores pueden invitar a los usuarios y otorgar algunos permisos a los usuarios normales para que trabajen con la junta. Todo tiene un tiempo, lo que significa que el permiso dado tiene una fecha de inicio y una fecha de finalización, más allá del período en que los permisos no funcionarán.
Dijo el problema, estoy buscando una autorización y técnicas de autenticación de bajo costo.
Algunas preguntas importantes:
-
¿Las claves / tokens deben generarse dentro de la aplicación móvil o por el tablero? por alguna razón, prefiero generar los tokens dentro de la aplicación móvil ... ¿cuáles son las ventajas y desventajas de este enfoque?
-
Por tiempo: debería incluirse en el token (por ejemplo, JWT) o debería guardarse en la pizarra?
-
¿Necesitamos un tipo de base de datos para los usuarios y su función en el foro o no? debido a los recursos limitados, me gustaría almacenar solo los tokens en lugar de la información del usuario como ID, token, etc. ¿Es posible o no?
-
Para el cifrado de la línea, cada par de (placa, administrador / usuario / propietario), necesitamos tener una clave pública / privada diferente o no?
-
Para la generación de token en la aplicación móvil, necesitamos una clave. Esta clave debería ser común entre los administradores o no?
-
Si la clave (para la generación de token), es común entre los administradores, en caso de que el propietario quiera eliminarla, ¿qué sucede? ¿Cómo puedo recuperar la clave del administrador?
-
Para evitar la repetición, ¿cómo puedo implementar la técnica de desafío y respuesta?