Authentification basique HTTP

Présentation

Extrait de l'article Wikipedia:

In the context of an HTTP transaction, the basic access authentication is a method designed to allow a web browser, or other client program, to provide credentials – in the form of a user name and password – when making a request.

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.

So HTTP Basic Autentication is managed trough an HTTP header (Authorization), that can be forged by LL::NG, with this precautions:

Configuration

The Basic Authentication relies on a specific HTTP header, as described above. 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)

The basic function will also force conversion from UTF-8 to ISO-8859-1, which should be accepted by most of HTTP servers.