2008-11-27 7 views
1

Je travaille sur une interface webservice + AJAX, et je m'inquiète pour l'authentification. Ce moment je passe le nom d'utilisateur et le mot de passe au webservice comme arguments, mais je crains que cette approche ne soit pas très sûre. On m'a dit que SSL pourrait résoudre mon problème, mais je veux plus d'alternatives.Webservice Authentication

Mon webservice est écrit en php et mon interface est en php + AJAX. Le webservice reçoit des arguments de POST ou GET et retreives xml (dans un futur peut-être je vais utiliser JSON)

Répondre

1

Les requêtes AJAX ne sont pas différentes de la demande normale.

Puisque vous avez une interface AJAX, je suppose que vous pouvez avoir une page où les utilisateurs se connectent. Quand ils se connectent, stockez un cookie dans le navigateur. Ce cookie peut ensuite être renvoyé avec chaque requête AJAX.

Votre script PHP peut "authentifier" la requête AJAX en utilisant le cookie exactement comme avec les requêtes normales.

+0

soyez prudent. Certaines versions IE "sandbox" AJAX demande à partir de la page principale. Alors les cookies ne sont pas disponibles ... –

+0

@ Pierre-YvesGillier il semble que le problème que vous mentionnez ne se produise que si le site se trouve dans un iframe. Et [il existe une solution de contournement] (http://adamyoung.net/IE-Blocking-iFrame-Cookies). – stivlo

0

Si je comprends bien la question, vous avez 1) les messages AJAX à PHP, 2) PHP appelle le service Web. Vous devez posséder un certificat SSL pour l'étape 1. Pour l'étape 2, un certificat SSL sur la machine de service Web est également sécurisé. Une alternative serait de configurer un VPN sécurisé entre le serveur Web et le serveur du service Web.

2

Il existe différentes normes comme ws-trust, ws-security, ws-fédération, etc. sur lesquelles vous pouvez compter pour sécuriser vos services Web.

Vous pouvez également signer vos en-têtes de savon contenant des informations de sécurité.

Le blog suivant présente différents mécanismes d'authentification pour les services Web utilisant php. http://phpwebservices.blogspot.com/

0

SSL avec les informations d'identification de l'utilisateur est à peu près aussi sûr que vous pouvez l'obtenir. Vous devez définir votre problème de sécurité. Que le paquet de l'utilisateur sera reniflé? C'est ce que SSL est pour. Qu'un utilisateur non autorisé aura accès? Cela dépendra de la sécurité du mot de passe. Une chose que vous pouvez faire est de mettre en place un système de location où vous distribuez un identifiant unique crypté qui doit être transmis par la poste et qui expire après la transaction ou après une courte période de temps. Ce code de bail peut être récupéré dans un div caché dans la page (pour éviter l'inquiétude du bac à sable ci-dessus), puis inséré dans chaque requête Ajax ultérieure.