Grundläggande åtkomstautentisering
I samband med en HTTP- transaktion är grundläggande åtkomstautentisering en metod för en HTTP-användaragent (t.ex. en webbläsare ) för att tillhandahålla ett användarnamn och lösenord när en begäran görs. I grundläggande HTTP-autentisering innehåller en begäran ett rubrikfält i form av Authorization: Basic <credentials>
, där referenser är Base64-kodningen av ID och lösenord sammanfogade av ett enda kolon :
.
Den implementerades ursprungligen av Ari Luotonen på CERN 1993 och definierades i HTTP 1.0-specifikationen 1996. Den specificeras i från 2015, som är föråldrad från 1999.
Funktioner
Implementering av HTTP Basic-autentisering (BA) är den enklaste tekniken för att genomdriva åtkomstkontroller till webbresurser eftersom den inte kräver cookies , sessionsidentifierare eller inloggningssidor; i stället använder HTTP Basic-autentisering standardfält i HTTP-huvudet .
säkerhet
BA-mekanismen ger inte sekretessskydd för de överförda referenserna. De är bara kodade med Base64 under överföring och inte krypterade eller hashade på något sätt. Därför används vanligtvis grundläggande autentisering tillsammans med HTTPS för att tillhandahålla konfidentialitet.
Eftersom BA-fältet måste skickas i rubriken för varje HTTP-förfrågan, måste webbläsaren cache-referenser under en rimlig tidsperiod för att undvika att ständigt fråga användaren om sitt användarnamn och lösenord. Cachingpolicy skiljer sig mellan webbläsare.
HTTP tillhandahåller inte en metod för en webbserver att instruera klienten att "logga ut" användaren. Det finns dock ett antal metoder för att rensa cachade autentiseringsuppgifter i vissa webbläsare. En av dem är att omdirigera användaren till en URL på samma domän, med hjälp av inloggningsuppgifter som är avsiktligt felaktiga. Detta beteende är dock inkonsekvent mellan olika webbläsare och webbläsarversioner. Microsoft Internet Explorer erbjuder en dedikerad JavaScript-metod för att rensa cachade autentiseringsuppgifter:
< script > dokument . execCommand ( 'ClearAuthenticationCache' );</ script >
I moderna webbläsare rensas vanligtvis cachade autentiseringsuppgifter för grundläggande autentisering när du rensar webbhistorik. De flesta webbläsare tillåter användare att specifikt rensa autentiseringsuppgifter, även om alternativet kan vara svårt att hitta, och rensar vanligtvis autentiseringsuppgifter för alla besökta webbplatser.
Protokoll
Serversidan
När servern vill att användaragenten ska autentisera sig mot servern efter att ha tagit emot en oautentiserad begäran måste den skicka ett svar med en HTTP 401 Unauthorized statusrad och ett WWW-Authenticate- huvudfält.
Rubrikfältet WWW-Authenticate för grundläggande autentisering är konstruerat enligt följande:
WWW-Authenticate: Basic realm="User Visible Realm"
Servern kan välja att inkludera teckenuppsättningsparametern från:
WWW-Authenticate: Basic realm="User Visible Realm", charset="UTF-8"
Denna parameter indikerar att servern förväntar sig att klienten ska använda UTF-8 för att koda användarnamn och lösenord (se nedan).
Klientsidan
När användaragenten vill skicka autentiseringsuppgifter till servern kan den använda fältet Authorization header.
Auktoriseringshuvud är konstruerat enligt följande :
- Användarnamnet och lösenordet kombineras med ett enda kolon (:). Det betyder att användarnamnet i sig inte kan innehålla kolon.
- Den resulterande strängen kodas till en oktettsekvens. Teckenuppsättningen som ska användas för denna kodning är som standard ospecificerad, så länge den är kompatibel med US-ASCII, men servern kan föreslå användning av UTF-8 genom att skicka parametern charset .
vcG
- .
- ^ Luotonen, Ari (10 september 2022). "Meddelande dokumentation om åtkomstbehörighet" . [email protected] (e-postlista) . Hämtad 7 februari 2022 .
- ^ "Hypertext Transfer Protocol - HTTP/1.0" . www.w3.org . W3C. 19 februari 1996 . Hämtad 7 februari 2022 .
- ^ a b "Finns det en webbläsare som motsvarar IE:s ClearAuthenticationCache?" . StackOverflow . Hämtad 15 mars 2013 .
-
^
"
IDM_CLEARAUTHENTICATIONCACHE
kommandoidentifierare" . Microsoft . Hämtad 15 mars 2013 . -
^
"540516 - Användbarhet: Tillåt användare att rensa HTTP Basic-autentiseringsdetaljer ('Logga ut')" . bugzilla.mozilla.org . Hämtad 2020-08-06 .
Rensa senaste historik->Aktiva inloggningar (i detaljerna) används för att rensa autentiseringen.
-
^
"Rensa webbinformation - Dator - Google Chrome Hjälp" . support.google.com . Hämtad 2020-08-06 .
Data som kan raderas[...]Lösenord: Register över lösenord som du sparat raderas.
- ^ "RFC 1945 avsnitt 11. Åtkomstautentisering" . IETF. maj 1996. sid. 46 . Hämtad 3 februari 2017 .
- ^ Fielding, Roy T. ; Berners-Lee, Tim ; Henrik, Frystyk. "Hypertext Transfer Protocol - HTTP/1.0" . tools.ietf.org .
- ^ a b Reschke, Julian. "Det 'grundläggande' HTTP-autentiseringsschemat" . tools.ietf.org .