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.
So HTTP Basic Authentication is managed trough an HTTP header (Authorization
), that can be forged by LL::NG, with this precautions:
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)
basic
force la conversion des caractères UTF-8 en ISO-8859-1, qui peut être accepté par la plupart des serveurs HTTP.