Estoy diseñando un método de autenticación para mi sistema cliente / servidor que consiste en:
- una aplicación cliente de escritorio de Windows (.NET)
- servidores windows / linux (C ++)
- un "servidor de seguridad" que autoriza a los usuarios y los pasa algunos tokens para el inicio de sesión único en los otros servidores
Un usuario iniciaría sesión proporcionando un nombre de usuario y una contraseña al servidor de seguridad con una contraseña de hashing simple + sal o algún algoritmo de respuesta-desafío. Al iniciar sesión correctamente, el token de autenticación devuelto que el usuario podría presentar al servidor lo autenticaría automáticamente.
Nota: Sé que solo podría usar SSL, pero me gustaría (por algunas razones) Nota 2: la comunicación no necesita estar cifrada de forma predeterminada (estaría en "medio" entorno de confianza)
Lo que encontré es que Kerberos parece bastante similar y parece que mi servidor de seguridad sería un servidor Kerberos simplificado.
Creo que necesitaría:
- protocolo de autenticación (servidor de seguridad del cliente)
- algoritmo para la generación de tokens y su verificación
¿Alguna sugerencia? ¿Donde empezar?