2009-06-18 12 views
0

Je développe une application client/serveur personnalisée qui nécessite que le client se connecte avec son nom d'utilisateur et son mot de passe. Les comptes d'utilisateurs ne sont en aucun cas liés aux comptes Windows/AD. Après la connexion, l'application cliente demandera d'autres services du système serveur.Modèle d'authentification et de sécurité dans les applications client/serveur

Ma question est quelle est la meilleure façon de mettre en œuvre cela? Quel type d'architecture conviendrait le mieux ici? Je suppose qu'une sorte de système d'authentification de ticket/token doit être implémenté ???

Merci

Répondre

1

Vous peut en effet vouloir mettre en œuvre un système qui passe « tickets » le long entre les différentes parties (serveur de connexion, client, serveur d'applications). Ce ticket contiendra des informations de base telles que l'ID utilisateur (le nom d'utilisateur, l'identifiant de ligne, etc.). Ce ticket sera soit crypté avec une clé secrète partagée par les serveurs autorisés, soit marqué avec un hachage du contenu du ticket salé avec une clé secrète partagée par les serveurs. La première permet aux seuls serveurs autorisés de créer et de lire le ticket, et la deuxième permet aux serveurs autorisés de vérifier que seuls les serveurs autorisés ont pu créer le ticket mais autorise quiconque à lire le ticket. Tous les serveurs d'applications vérifieront le ticket (en essayant de le déchiffrer ou en vérifiant que le hash correspond) avant de procéder à toute action qui devrait être protégée. S'il s'agit d'une application Web, les cookies sont un bon endroit pour stocker le ticket.

+0

Avez-vous des exemples de code? La langue et la plateforme n'ont pas d'importance. –

0

Vous avez pas beaucoup parlé de votre architecture, autre que c'est client/serveur, donc je suppose que vous utilisez une sorte de formes comme concepteur Windows Forms VS. Dans ces cas, j'ai toujours utilisé une certaine forme d'authentification de table de base de données, car elle est facile, simple à configurer et raisonnablement sécurisée. Vous pouvez même configurer des groupes et des rôles de cette façon, sans trop de bruit.

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

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

Table: UserRoles 
Fields: UserID FK 
     RoleID FK 
Questions connexes