Estoy creando un sistema de registro de información (basado en WCF) para una empresa a la que el personal puede acceder a través de Internet. Este software no se distribuirá y solo habrá un puñado de usuarios con la aplicación cliente instalada.
Debido al hecho de que la información almacenada es altamente sensible, obviamente me gustaría autenticar y autorizar cualquier solicitud de servicio. Por lo tanto, habrá alrededor de 4 puntos finales de servicio dedicados al manejo de una variedad de solicitudes. Para proteger estos servicios, pensaba autenticar cualquier solicitud con un sistema basado en token (que en realidad es solo un GUID). Esto significaría que, a menos que el cliente compile sus solicitudes con este token, ¡no podrán acceder a esos servicios! ¿Derecha? Ahora, para recuperar un token válido, el cliente debe conectarse al servicio de token de seguridad, que comienza con la autenticación SSL mutua (para evitar ataques de intermediarios), luego el usuario debe proporcionar sus datos de inicio de sesión (cifrados). por supuesto), luego, si los detalles son válidos, se les proporciona un token. El token se registra, junto con los detalles de los usuarios. Ahora el cliente puede enviar solicitudes válidas a los otros servicios. Cuando uno de los otros servicios recibe una solicitud, el token y las credenciales de usuario se comparan con el "almacén de usuarios actual" y se recupera su función. Si el rol del usuario permite esa solicitud, se procesa.
Lo siento si todo esto es un poco largo sinuoso! Pero básicamente, lo que les estoy preguntando a los gurús de la seguridad es: ¿esto suena como una arquitectura decente para este sistema? ¿Debo hacer alguna mejora? ¿O debería desechar toda esta arquitectura e ir por algo más? (Si es así, cualquier orientación sería apreciada!)
Respeto el hecho de que no soy un asistente de seguridad, ¡sin embargo estoy dispuesto a aprender! Así que por favor sea amable;)