it-swarm.com.de

HTTP-Basisauthentifizierung über SSL für REST API

Ich bin neu im Konzept der Restful APIs.

Ich entwerfe eine erholsame API für einen Online-Shop.

Ich habe das Konzept der grundlegenden HTTP-Authentifizierung über SSL nicht richtig verstanden.

Bedeutet das, dass der Benutzer bei jeder Anfrage seinen Benutzernamen und sein Passwort erneut eingeben muss?

Kann jemand bitte im Detail erklären, wie es funktioniert und wie es verwendet werden soll?

Danke im Voraus.

42
Kanishk Dudeja

Die Standardauthentifizierung ist nur ein Standard-HTTP-Header für den Benutzer und wird in base64 codiert:

Berechtigung: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

( http://en.wikipedia.org/wiki/Basic_access_authentication ). Wenn Sie Ihre Rest-API-Aufrufe über diesen Header über eine Nicht-SSL-Verbindung authentifizieren, besteht das Problem darin, dass jeder Mann in der Mitte dekodieren kann Ihren Benutzernamen und Ihr Passwort aus Ihrem Auth-Header.

Um sicherzustellen, dass Ihr Kennwort sicher gesendet wird, müssen Sie anstelle einer normalen HTTP-Verbindung HTTPS verwenden. Der einzige Unterschied zwischen HTTP und HTTPS besteht darin, dass HTTPS das SSL/TSL-Sicherheitsprotokoll über TCP/IP anstelle von einfachem TCP/IP verwendet.

Dies hat den Nachteil, dass der Aufbau einer HTTPS-Verbindung auf der CPU teurer ist als eine normale HTTP-Verbindung. Es ist sehr klar, dass Sie, wenn Sie Ihre Rest-Aufrufe bei jeder Anforderung mit diesem Header authentifizieren möchten, Ihre Rest-API nur für HTTPS-Verbindungen verfügbar machen sollten.

71
Ovidiu Buligan