REST API d'Authentification

Je suis en train de construire une application qui sera hébergé sur un serveur. Je veux construire une API pour l'application de faciliter l'interaction avec à partir de n'importe quelle plateforme (Web App, Application Mobile). Ce que je ne comprends pas c'est que lors de l'utilisation de l'API REST, comment faire pour authentifier l'utilisateur.

Par exemple, lorsqu'un utilisateur a ouvert une session, puis veut créer un sujet sur le forum. Comment vais-je savoir que l'utilisateur est déjà connecté?

  • Vous devriez probablement de la recherche pour "RESTE authentification" ici. Il a été couvert dans de nombreuses autres questions.
  • En un mot, laissez-le client envoie un nom d'utilisateur et le mot de passe à chaque requête à l'aide de HTTP Basic Auth (sur SSL!), ou authentifier une fois que le client a une session authentifiée, qui viendront à échéance après une période d'inactivité (ou ce que vous choisissez de remplacer votre framework web " de gestion de sessions). Cette session peut alors être stocké dans un cookie, ou être un paramètre passé avec chaque requête (par exemple: JSESSIONID en Java terre).
  • Voir aussi Comment contrôler qui utilise mon widget web.
  • du point de vue sécurité, il n'est pas vraiment une bonne idée d'avoir la session gérée à l'aide de cookies dans une API REST cas, puisque les attaquants peuvent envoyer des demandes sans le consentement de l'utilisateur. Il est préférable d'inclure une session de hachage ou un jeton dans un en-tête HTTP (telles que l'Autorisation).
  • Corrigez-moi si je me trompe, mais les deux de vous et de mes suggestions sont juste des façons différentes d'utiliser un en-tête + local de stockage de liste déroulante pour effet la même chose. C'est Authorization en-tête + par ex. navigateur localStorage VS Cookie en-tête + standard cookie du navigateur de stockage.
  • Il dépend de domaine sur lequel le cookie est stocké. Si l'API envoyer le Set-Cookie et il est sauvegardé sur l'API de domaine - c'est le cas je le vois comme une vulnérabilité potentielle que toute demande sera authentifié (même les méchants). Si la demande est servi à partir d'un autre domaine (site web statique, CA, etc) et le cookie est défini sur ce domaine -, elle doit être fine.
  • Ma recommandation pour ceux qui regarde ce post, - ne pas rouler votre propre utilisation de ce qui est déjà là

InformationsquelleAutor Noor | 2011-11-03