2011-12-11 5 views
1

J'ai besoin de services Restfull sécurisés dans le fournisseur. Je veux que l'utilisateur doit avoir l'autorisation d'utiliser le service REST et je peux générer une utilisation stadistique ou tout simplement ne pas permettre d'appeler les services REST si ce n'est pas un développeur de registre.Comment sécuriser les services Web RESTful (PROVIDER)

Je pensais à ce que l'utilisateur envoie l'email et le mot de passe dans l'URL (http://autor.derf.com/api/search/[email protected] & passwd = dasffsdf;) mais n'est pas très sûr.

J'ai aussi lu sur oauth 2.0 mais la documentation est très mauvaise pour Java.

Existe-t-il un autre moyen d'avoir une API RESTful avec autorisation?

Je veux un accès API Restfull par l'iPhone, Android, Windows Phone et web

Merci à l'avance;)

Répondre

1

Si vous prévoyez d'écrire tous les clients pour le service vous-même (iPhone, Android, etc.) L'envoi d'un courriel et d'un mot de passe est une bonne solution, à condition que le fournisseur communique sur une couche de transport sécurisée (p. ex. SSL/HTTPS).

Vous pouvez toujours ajouter la prise en charge de OAuth 1 ou 2 plus tard si vous pensez que vous souhaitez rendre vos API publiques. (L'idée avec OAUth est de protéger les mots de passe des utilisateurs, et d'obtenir un contrôle plus précis sur les API qu'un client peut utiliser, et pendant combien de temps).

Mais, dans votre cas, je au moins envisager d'utiliser l'authentification de base, dans laquelle une requête HTTP typique ressemble un peu à ceci:

GET /path/to/api HTTP/1.1 
Host: www.example.com 
Authorization: Basic aHR0cHdhdGNoOmY= 

Le hachage après est tout simplement base64 « Basic » codé "username:password", ou votre cas "email:password". Si quelqu'un l'intercepte, il est facile de simplement désencoder pour obtenir les informations d'identification de l'utilisateur en texte brut. Donc HTTPS est un must.

» More information on basic authentication at wikipedia.

+0

Merci beaucoup, et pour une API publique, connaissez-vous une implémentation pour le fournisseur Java de oauth 2.0? – Rom

+0

C'est une copie de cette question alors: http://stackoverflow.com/questions/2150801/implementing-oauth-provider-in-java –

Questions connexes