Pregunta

Estoy desarrollando una aplicación cliente / servidor personalizada que requiere que el cliente inicie sesión con su nombre de usuario y contraseña. Las cuentas de usuario no están relacionadas con las cuentas de Windows / AD de ninguna manera. Después de iniciar sesión, la aplicación cliente solicitará otros servicios del sistema del servidor.

Mi pregunta es ¿cuál es la mejor manera de implementar esto? ¿Qué tipo de arquitectura encajaría mejor aquí? Supongo que hay que implementar algún tipo de sistema de autenticación de ticket / token ???

Gracias

¿Fue útil?

Solución

De hecho, es posible que desee implementar un sistema que pasa " tickets " entre las diferentes partes (servidor de inicio de sesión, cliente, servidor de aplicaciones). Este ticket contendrá información básica como la identificación del usuario (el nombre de usuario, la identificación de la fila, etc.). Este ticket será encriptado con una clave secreta que comparten los servidores autorizados, o se estampará con un hash del contenido del ticket salado con una clave secreta que los servidores comparten. La primera forma hace posible que solo los servidores autorizados creen y lean el boleto, y la segunda permite que los servidores autorizados verifiquen que solo los servidores autorizados podrían haber creado el boleto, pero permite que cualquiera pueda leer el boleto. Todos los servidores de aplicaciones verificarán el ticket (al intentar descifrarlo o al verificar que el hash coincida) antes de proceder con cualquier acción que deba protegerse. Si se trata de una aplicación web, las cookies son un buen lugar para almacenar el ticket.

Otros consejos

No ha dicho mucho sobre su arquitectura, aparte de que es Cliente / Servidor, por lo que supongo que está utilizando algún tipo de diseñador de formularios como Windows Forms en VS. En estos casos, siempre he usado alguna forma de autenticación de tabla de base de datos, ya que es fácil, simple de configurar y razonablemente segura. Incluso puede configurar grupos y roles de esta manera, sin mucho alboroto.

Table:  Users
Fields: UserID   PK
        Login    Text
        Password Text
        ...

Table:  Roles
Fields: RoleID   PK
        Role     Text
        ...

Table:  UserRoles
Fields: UserID    FK
        RoleID    FK
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top