2010-08-22 6 views
0

Je crée une API avec un tas de méthodes publiques à publier sur le web et j'ai besoin de les sécuriser. Dans ce cas, il ne s'agit pas de cryptage mais d'authentification. L'idée est que celui qui consomme les services Web est un utilisateur enregistré sur la base de données afin que nous puissions empêcher les personnes extérieures. Je suis en train de lire sur les clés API, mais je ne sais pas si elles sont la bonne approche pour mon problème ni comment les implémenter. Donc, la question est: comment empêcher des personnes inconnues de consommer les services Web? Remarques: Des journaux sont susceptibles d'être créés à la demande des utilisateurs connus pour suivre ce qu'ils font et terminer les connexions pour des activités suspectes. J'utilise aussi ASP.NET.Sécuriser les services Web

Répondre

0

Je suis revenu pour expliquer comment j'ai fini par le faire. D'abord, j'ai utilisé une clé d'API (implémentation personnalisée) par application, donc pour chaque application qui consommerait mes services Web, je les ai créés et je leur ai donné une clé. Une telle clé doit être fournie avec certaines données d'application nécessaires pour régénérer la clé et correspondre à ce qui a été fourni par l'application. Deuxièmement, j'ai utilisé SoapHeader et une variation de this méthode afin d'atteindre mon objectif. Fondamentalement, la clé et les données de l'application viennent avec le message dans le cadre de l'en-tête pour chaque appel à une méthode. Ainsi, le processus de validation se produit chaque fois qu'une application appelle une méthode publique. J'apprécie les réponses qui m'ont été données et les réponses sont vraiment intéressantes, la raison pour laquelle je me suis décidé de cette façon était parce que les services web étaient déjà opérationnels et étaient .NET 3.5 ... donc ni WCF ni ASP. WSE pourrait me fournir la solution la meilleure et la plus facile à mettre en œuvre.

Merci.

+0

PedroC88 - possible pour vous de fournir un exemple de code votre implémentation? –

1

ASP.net Web Service Extensions prendre en charge l'authentification basée sur le certificat côté client. L'équivalent le plus à jour est WCF qui prend également en charge les certificats client.

+0

Les deux liens pointent vers la même URL. J'ai été googling et puisque WSE ne semble pas être une bonne approche, et puisque je pense qu'il n'est pas compatible avec VS 2010 et ASP .NET 3.5 je vais aller pour WCF. – PedroC88

+0

Je viens de lire à propos de WCF et je ne pense pas que ce soit la voie à suivre soit parce que mes services sont prêts et, pour ce que je lis, WCF est une approche distincte des services Web – PedroC88

1

Les clés API sont une bonne idée. L'idée est juste que vous assigniez à chaque utilisateur une clé privée qu'il doit fournir (ou, mieux encore, donner une preuve de possession via une challenge-réponse) afin d'effectuer un appel API.

Questions connexes