2011-10-10 1 views
3

Je développe des services Web en utilisant la bibliothèque servicestack.net.Comment implémenter l'authentification client avec ServiceStack.Net

Dans mon scénario, les services Web seront appelés à partir d'une application WPF. J'ai besoin de pouvoir m'authentifier que seule une application cliente approuvée appelle mon service.

Est-ce aussi simple que de coder en dur un "nom d'utilisateur" et un "mot de passe" dans l'application cliente? Cela ne semble certainement pas la bonne approche. Y a-t-il un meilleur moyen?

EDIT En outre, sur la fin du client, les utilisateurs eux-mêmes seront en mesure de se connecter avec un nom d'utilisateur/mot de passe et lancer des requêtes au service (pas sûr si cela rien effets, donc je pensais que je voudrais mentionner) ,

Répondre

5

Pour plus d'informations sur l'authentification dans ServiceStack see this question.

Normalement, vous authentifieriez les utilisateurs et non les clients, ce que vous semblez faire en plus. Mais si vous essayez de verrouiller les services afin qu'ils soient uniquement accessibles via un ensemble spécifique de clients, vous devriez envisager d'utiliser une PKI dans votre client et votre serveur. Fondamentalement, quelque chose comme suit: le client envoie un jeton supplémentaire à la connexion avec une version cryptée de l'utilisateur: mot de passe avec une clé privée intégrée dans l'application. Le serveur a la clé publique du client et ferait donc une étape supplémentaire de validation sur Login pour décrypter l'utilisateur: passer le jeton et le comparer avec les informations d'identification de l'utilisateur validées. Si une solution PKI est trop lourde, une stratégie alternative sans cryptage pourrait être pour les clients d'être livrés avec un guide secret qui, lors de la connexion, enverra une version de hachage MD5 du Guid et de l'heure actuelle, ainsi que la version désenchantée de l'époque. Si l'heure est dans un seuil spécifié et que le hachage MD5 est valide, il faut alors utiliser un client authentifié.

+0

Merci. Pour l'instant, je pense que quelque chose dans le genre du guid hashed suffira. Love ServiceStack btw! – stephen776

Questions connexes