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:
- Der Client sendet eine HTTP-Anfrage an eine geschützte Ressource.
- Der Server antwortet mit dem Status
401 Unauthorizedund einem HeaderWWW-Authenticate: Basic realm="<realm>", wobei<realm>eine textuelle Beschreibung des geschützten Bereichs (Ressource) ist. - Der Browser oder die Client-Anwendung zeigt ein Dialogfenster zur Eingabe des Benutzernamens und Passworts.
- Der Client kodiert den Benutzernamen und das Passwort in eine Zeichenkette im Format
username:password. - Die resultierende Zeichenkette wird mit Base64 codiert.
- 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. - Der Server dekodiert die Base64-Zeichenkette, trennt den Benutzernamen und das Passwort und überprüft die Anmeldedaten.
- 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).