web-dev-qa-db-fra.com

Authentification de base HTTP sur SSL pour REST API

Je suis nouveau sur le concept d'API Restful.

Je conçois une api reposante pour une boutique en ligne.

Je n'ai pas bien compris le concept de l'authentification HTTP de base sur SSL.

Cela signifie-t-il que, pour chaque demande, l'utilisateur devra entrer à nouveau son nom d'utilisateur et son mot de passe?

Quelqu'un peut-il expliquer en détail comment cela fonctionne et comment est-il censé être utilisé?

Merci d'avance.

42
Kanishk Dudeja

L'authentification de base est juste un en-tête HTTP standard avec l'utilisateur et passe en base64:

Autorisation: base QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

( http://en.wikipedia.org/wiki/Basic_access_authentication ) .Si vous authentifiez vos appels d'API restants par cet en-tête sur une connexion non ssl, le problème est que tout homme au milieu peut décoder votre nom d'utilisateur et mot de passe de votre en-tête d'authentification.

Pour vous assurer que votre mot de passe est envoyé de manière sécurisée, vous devez utiliser HTTPS au lieu d'une connexion HTTP normale. La seule différence entre HTTP et HTTPS est que HTTPS utilise le protocole de sécurité SSL/TSL sur TCP/IP au lieu de TCP/IP en clair.

Cela a maintenant l’inconvénient que l’établissement d’une connexion HTTPS est plus onéreux sur le processeur que la connexion HTTP normale. Il est très clair que si vous souhaitez authentifier vos appels restants à chaque requête avec cet en-tête, vous devez rendre votre API restante disponible uniquement pour les connexions HTTPS.

71
Ovidiu Buligan