Autenticació d'accés bàsica

mètode usat per un agent HTTP per incloure el nom d'usuari i contrasenya a una petició

En el context d'una transacció HTTP, l'autenticació d'accés bàsica és un mètode que permet que el client HTTP pugui incloure el nom d'usuari i la contrasenya corresponent a la petició HTTP.

De forma abreviada, l'autenticació d'accés bàsica es coneix per les sigles BA, de l'anglès Basic Authentication.

Característiques modifica

La implementació BA és el mecanisme més senzill per reforçar el control d'accés a recursos web, ja que no ha de menester cookies, identificadors de sessió ni pàgines d'inici de sessió. En lloc de tot això, BA inclou l'usuari i la contrasenya a la capçalera HTTP sense cap negociació prèvia.

Seguretat modifica

El mecanisme BA no proporciona confidencialitat en l'enviament de les credencials (nom d'usuari i contrasenya). El que es fa és aplicar-los la codificació Base64 en l'enviament, sense fer ús de mètodes d'encriptació ni funcions de hash. Per aquest motiu, l'autenticació d'accés bàsica es fa servir sobre HTTPS, que sí que garanteix la confidencialitat.

Com que la capçalera BA s'ha d'enviar en cada petició HTTP, el client HTTP guarda temporalment les credencials durant un temps prudencial per, així, no haver de demanar a l'usuari que les proporcioni cada vegada. El període en què es guarda les credencials difereix entre navegadors web.

HTTP no proporciona cap mètode perquè el servidor web permeti al client tancar la sessió. Ha de ser el mateix navegador el que oblidi les credencials, cosa que es pot aconseguir eliminant les dades temporals (catxe) de forma manual.

Protocol modifica

Costat del servidor modifica

Quan el client fa una petició sense credencials sobre un URL que en requereix, el servidor respon amb un missatge HTTP on la capçalera conté el codi d'estat HTTP 401 Not Authorized[1] i un camp WWW-Authenticate.[2]

El camp WWW-Authenticate per a autenticació d'accés bàsica té la forma següent:[3]

WWW-Authenticate: Basic realm="nmrs_m7VKmomQ2YM3:"

Costat del client modifica

Quan el client vol incloure les credencials a la petició HTTP, pot utilitzar el camp d'autenticació.[4]

El camp d'autenticació es compon de la següent manera:[4][1][3]

  1. Nom d'usuari i contrasenya, separats per dos punts, tal com "usuari:contrasenya" i codificats en la variant RFC2045-MIME de Base64, sense limitar-la a 76 caràcters per línia.[1]
  2. Abans de la cadena codificada, s'hi posa el nom del mecanisme d'autenticació i un espai en blanc. Això és: "Basic "

Per exemple, si el nom d'usuari és 'Aladdin' i la contrasenya és 'open sesame' la capçalera té la forma següent:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

Referències modifica