2009-07-17 7 views
5

Je souhaite créer mes services Web qui diffusent des données JSON à l'aide de l'architecture RESTful.Sécurisation de REST et JSON

Mais je veux seulement mes propres applications client qui peuvent demander de mes services Web. Fondamentalement, mes services Web contiennent des données sensibles qui ne sont pas destinées à la consommation publique, mais je voulais le construire de telle sorte que je puisse créer de nombreuses applications clientes différentes qui se connectent à mon service Web.

J'apprécierais des idées pour cela, merci.

Répondre

5

Le fait qu'il soit RESTful ou utilise JSON n'est pas un facteur important lorsqu'il s'agit de sécuriser un service Web. Tout service Web doit être sécurisé de la même manière. Vous devez effectuer les opérations suivantes:

  1. Si possible, n'hébergez pas votre service Web sur Internet. Si le service Web est hébergé sur le réseau local de votre entreprise, par exemple, il ne sera pas exposé à la consommation publique sauf si vous l'avez spécifiquement exposé via votre routeur.
  2. Configurez les règles d'authentification et d'autorisation. Si vous hébergez votre service Web dans un domaine Windows, vous pouvez simplement utiliser l'authentification Windows et définir des règles basées sur les utilisateurs et les groupes Active Directory. Les autres options sont d'utiliser l'authentification HTTP, l'authentification par certificat client ou, si vous développez en .NET, l'authentification par formulaire.
  3. Utilisez le cryptage (HTTPS), en particulier si votre site Web est hébergé sur Internet.
1

Vous avez juste besoin de deux choses en place pour le faire. Tout d'abord, le client du service devra s'authentifier auprès de votre service (via HTTPS) pour faire une demande. Une fois le client authentifié, vous pouvez renvoyer un jeton privé que le client doit inclure avec ce jeton. Tant que le jeton expire après un laps de temps raisonnable, et qu'un algorithme sécurisé est utilisé pour le générer, cela devrait faire ce que vous voulez.

Si vous avez des exigences de sécurité plus strictes, vous pouvez suivre la suggestion de Jakob ou demander au client de démarrer une session VPN avant de faire des demandes.