Peruskäyttöoikeuksien todennus - Basic access authentication

Yhteydessä sellaisen HTTP liiketoimen perus pääsytodentaminen on menetelmä varten HTTP-käyttäjäagentin (esim verkkoselaimen ) antamaan käyttäjänimi ja salasana pyynnön tehdessään. Perus-HTTP-todennuksessa pyyntö sisältää otsikkokentän muodossa Authorization: Basic <credentials>, jossa tunnistetiedot ovat Base64- koodaus tunnukselle ja salasanalle, johon on liitetty yksi kaksoispiste :.

Se on määritelty RFC  7617: ssä vuodesta 2015, joka poistaa RFC  2617: n vuodesta 1999.

ominaisuudet

HTTP-perustodennuksen (BA) toteutus on yksinkertaisin tekniikka verkkoresurssien käyttöoikeuksien valvonnassa , koska se ei vaadi evästeitä , istuntotunnisteita tai kirjautumissivuja; pikemminkin HTTP Basic -todennus käyttää HTTP-otsikossa vakiokenttiä .

Turvallisuus

BA-mekanismi ei tarjoa lähetettyjen tunnistetietojen luottamuksellisuuden suojaa. Ne on vain koodattu Base64 : llä kuljetuksen aikana, eikä niitä ole salattu tai hajautettu millään tavalla. Siksi perustodennusta käytetään tyypillisesti yhdessä HTTPS: n kanssa luottamuksellisuuden takaamiseksi .

Koska BA-kenttä on lähetettävä jokaisen HTTP-pyynnön otsikossa, web-selaimen on tallennettava tunnistetiedot välimuistiin kohtuullisen ajan, jotta vältetään jatkuvasti pyytämästä käyttäjää antamaan käyttäjänimeä ja salasanaa. Välimuistikäytäntö vaihtelee selainten välillä.

HTTP ei tarjoa tapaa Web-palvelimelle ohjeistaa asiakasta "kirjautumaan ulos" käyttäjältä. Välimuistissa olevien tunnistetietojen tyhjentäminen tietyissä selaimissa on kuitenkin useita tapoja. Yksi heistä ohjaa käyttäjän uudelleen saman verkkotunnuksen URL-osoitteeseen tarkoituksellisesti virheellisten tunnistetietojen avulla. Tämä käyttäytyminen on kuitenkin epäjohdonmukaista eri selainten ja selainversioiden välillä. Microsoft Internet Explorer tarjoaa erillisen JavaScript-menetelmän välimuistissa olevien tunnistetietojen tyhjentämiseksi:

<script>document.execCommand('ClearAuthenticationCache');</script>

Nykyaikaisissa selaimissa välitetyt tunnistetiedot perustodennukselle poistetaan tyypillisesti selaushistorian tyhjentämisen yhteydessä. Suurin osa selaimista sallii käyttäjien tyhjentää vain tunnistetiedot, vaikka vaihtoehtoa voi olla vaikea löytää, ja yleensä se tyhjentää kaikkien vierailtujen sivustojen kirjautumistiedot.

Pöytäkirja

Palvelimen puolella

Kun palvelin haluaa käyttäjäagentin todentavan itsensä palvelimelle saatuaan valtuuttamattoman pyynnön, sen on lähetettävä vastaus HTTP 401 luvattomalla tilarivillä ja WWW-todennus -otsikkokentällä.

WWW-Authenticate otsakekentän perustodennuksen on konstruoitu seuraavasti:

WWW-Authenticate: Basic realm="User Visible Realm"

Palvelin voi halutessaan sisällyttää charset parametri RFC  7617 :

WWW-Authenticate: Basic realm="User Visible Realm", charset="UTF-8"

Tämä parametri osoittaa, että palvelin odottaa asiakkaan käyttävän UTF-8: ta käyttäjänimen ja salasanan koodaamiseen (katso alla).

Asiakkaan puolella

Kun käyttäjäagentti haluaa lähettää todennustiedot palvelimelle, se voi käyttää Valtuutus- otsikkokenttää.

Authorization otsikkokenttä on rakennettu seuraavasti:

  1. Käyttäjätunnus ja salasana yhdistetään yhteen kaksoispisteeseen (:). Tämä tarkoittaa, että käyttäjänimi itsessään ei voi sisältää kaksoispistettä.
  2. Tuloksena oleva merkkijono koodataan oktettisekvenssiin. Tähän koodaukseen käytettävä merkistö on oletusarvoisesti määrittelemätön, kunhan se on yhteensopiva US-ASCII: n kanssa, mutta palvelin voi ehdottaa UTF-8: n käyttöä lähettämällä charset- parametrin.
  3. Tuloksena oleva merkkijono koodataan käyttämällä Base64-muunnosta (+ / ja täytteellä).
  4. Valtuutusmenetelmä ja välilyönti (esim. "Basic") lisätään sitten koodattuun merkkijonoon.

Esimerkiksi, jos selain käyttää käyttäjätunnuksena Aladdinia ja salasanana avointa seesamia , kentän arvo on Aladdinin Base64-koodaus : avoin seesami tai QWxhZGRpbjpvcGVuIHNlc2FtZQ == . Sitten Valtuutus- otsikkokenttä näkyy muodossa:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Katso myös

Viitteet ja huomautukset

Ulkoiset linkit