Authentification basique HTTP

Présentation

Pour l'instant, cette fonctionnalité n'est offerte qu'avec le handler Apache.

Extrait de l'article Wikipedia:

Dans le contexte d'une transaction HTTP, l'authentification basique est une méthode qui permet au navigateur ou un autre programme client de fournir des éléments d'authentification – sous la forme d'un nom et d'un mot de passe – à chaque requête.

Avant la transmission, le nom et le mot de passe sont encodés en base-64. Par exemple, le nom Aladdin et le mot-de-passe "open sesame" vont être assemblés en "Aladdin:open sesame" – dont l'équivalent est QWxhZGRpbjpvcGVuIHNlc2FtZQ== en Base64. Un petit effort est requis pour décoder ces chaînes et de nombreux outils de sécurité les décodent à la volée.

Ainsi l'authentification basique HTTP est gérée par des en-têtes HTTP (Autorisation), qui peut être générée par LL::NG, avec les précautions suivantes :

Configuration

L'authentification basique est portée par un en-tête HTTP spécifique, tel que décrit ci-dessous. Il suffit donc de déclarer cet en-tête pour l'hôte virtuel dans le manager.

Par exemple, pour exporter l'identifiant ($uid) et le mot-de-passe ($_password si le mot-de-passe est stocké dans la session):

Authorization => "Basic ".encode_base64("$uid:$_password")

LL::NG fournit une fonction spéciale nommée basic pour construire cet en-tête.

Ainsi l'exemple ci-dessous peut être écrit simplement :

Authorization => basic($uid,$_password)
La fonction basic force la conversion des caractères UTF-8 en ISO-8859-1, qui peut être accepté par la plupart des serveurs HTTP.