Junior
Czym jest podstawowa autoryzacja (Basic Auth)?
sobes.tech AI
Odpowiedź od AI
Podstawowa autoryzacja to najprostszy sposób uwierzytelniania klienta HTTP, określony w standardzie RFC 7617.
Zasada działania:
- Klient wysyła żądanie HTTP do chronionego zasobu.
- Serwer odpowiada statusem
401 Unauthorizedi nagłówkiemWWW-Authenticate: Basic realm="<realm>", gdzie<realm>to tekstowy opis chronionej strefy (zasobu). - Przeglądarka lub aplikacja kliencka wyświetla okno dialogowe do wprowadzenia nazwy użytkownika i hasła.
- Klient koduje nazwę użytkownika i hasło w ciąg w formacie
username:password. - Uzyskany ciąg jest kodowany za pomocą Base64.
- Klient powtarza żądanie, dodając nagłówek
Authorization: Basic <zakodowany_base64>, gdzie<zakodowany_base64>to wynik kodowania Base64. - Serwer dekoduje ciąg Base64, rozdziela nazwę użytkownika i hasło i sprawdza dane uwierzytelniające.
- Jeśli dane są poprawne, serwer wysyła żądany zasób. W przeciwnym razie, ponownie zwraca
401 Unauthorized.
Przykład nagłówka Authorization:
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
gdzie YWxhZGRpbjpvcGVuc2VzYW1l jest ciągiem zakodowanym w Base64 z aladdin:opensesame.
Cechy:
- Prostota: Łatwo zaimplementować zarówno po stronie klienta, jak i serwera.
- Niezabezpieczenie: Dane uwierzytelniające są przesyłane, choć zakodowane w Base64, ale bez szyfrowania. Base64 to kodowanie, nie szyfrowanie. Podczas przechwytywania ruchu dane można łatwo odszyfrować. Tylko w połączeniu z HTTPS zapewnia minimalny poziom bezpieczeństwa.
- Bezstanowość: Nie przechowuje stanu na serwerze między żądaniami (bezstanowe). Każde żądanie wymaga nagłówka
Authorization. - Doświadczenie użytkownika: Okno dialogowe przeglądarki jest mniej elastyczne i mniej przyjazne w porównaniu do własnych formularzy uwierzytelniania.
Zastosowanie: Najczęściej stosowana do ochrony API, zasobów statycznych lub w prostych systemach wewnętrznych, gdzie bezpieczeństwo nie jest krytyczne, lub zawsze w połączeniu z SSL/TLS (HTTPS).