Sobes.tech
Junior

Was ist die Basic Authentication (Basic Auth)?

sobes.tech KI

Antwort von AI

Die Basis-Authentifizierung ist die einfachste Methode, einen HTTP-Client zu authentifizieren, wie in der RFC 7617-Standard festgelegt.

Funktionsprinzip:

  1. Der Client sendet eine HTTP-Anfrage an eine geschützte Ressource.
  2. Der Server antwortet mit dem Status 401 Unauthorized und einem Header WWW-Authenticate: Basic realm="<realm>", wobei <realm> eine textuelle Beschreibung des geschützten Bereichs (Ressource) ist.
  3. Der Browser oder die Client-Anwendung zeigt ein Dialogfenster zur Eingabe des Benutzernamens und Passworts.
  4. Der Client kodiert den Benutzernamen und das Passwort in eine Zeichenkette im Format username:password.
  5. Die resultierende Zeichenkette wird mit Base64 codiert.
  6. Der Client wiederholt die Anfrage, indem er den Header Authorization: Basic <base64-kodierte Zeichenkette> hinzufügt, wobei <base64-kodierte Zeichenkette> das Ergebnis der Base64-Codierung ist.
  7. Der Server dekodiert die Base64-Zeichenkette, trennt den Benutzernamen und das Passwort und überprüft die Anmeldedaten.
  8. Sind die Anmeldedaten korrekt, sendet der Server die angeforderte Ressource. Andernfalls antwortet er erneut mit 401 Unauthorized.

Beispiel für den Authorization-Header:

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

wobei YWxhZGRpbjpvcGVuc2VzYW1l eine Base64-codierte Zeichenkette von aladdin:opensesame ist.

Eigenschaften:

  • Einfachheit: Leicht sowohl auf Client- als auch auf Serverseite implementierbar.
  • Unsicherheit: Die Anmeldedaten werden übertragen, wenn auch in Base64, aber unverschlüsselt. Base64 ist eine Kodierung, kein Verschlüsselungsverfahren. Bei Abfangen des Traffics können die Daten leicht decodiert werden. Nur in Verbindung mit HTTPS bietet sie ein minimales Sicherheitsniveau.
  • Zustandlosigkeit: Speichert keinen Zustand auf dem Server zwischen Anfragen (stateless). Jede Anfrage benötigt den Authorization-Header.
  • Benutzererfahrung: Das Browser-Dialogfenster ist weniger flexibel und benutzerfreundlich im Vergleich zu benutzerdefinierten Authentifizierungsformularen.

Verwendung: Wird hauptsächlich zum Schutz von APIs, statischen Ressourcen oder in einfachen internen Systemen eingesetzt, bei denen Sicherheit keine kritische Rolle spielt, oder immer in Verbindung mit SSL/TLS (HTTPS).