Jeton dautorisation de base

Dans

le contexte d’une transaction HTTP, l’authentification d’accès de base est une méthode permettant à un agent utilisateur HTTP (par exemple un navigateur Web) de fournir un nom d’utilisateur et un mot de passe lors de l’exécution d’une demande. Dans l’authentification HTTP de base, une requête contient un champ d’en-tête sous la forme , où est l’encodage Base64 de l’ID et du mot de passe reliés par un seul deux-points .

Il a été mis en œuvre à l’origine par Ari Luotonen au CERN en 1993 [1] et défini dans la spécification HTTP 1.0 en 1996. [2] Il est spécifié dans la RFC 7617 de 2015, qui rend obsolète la RFC 2617 de 1999.

L’implémentation

de l’authentification HTTP Basic (BA) est la technique la plus simple pour faire respecter l’accès contrôles des ressources Web car il ne nécessite pas d’identificateurs de session ou de pages de connexion ; l’authentification HTTP Basic utilise plutôt des champs standard dans l’en-tête HTTP.

Sécurité

Le mécanisme BA n’offre pas de protection de la confidentialité des identifiants transmis. Ils sont simplement encodés avec Base64 en transit et ne sont en aucun cas chiffrés ou hachés. Par conséquent, l’authentification de base est généralement utilisée conjointement avec HTTPS pour assurer la confidentialité.

Étant donné que le champ BA doit être envoyé dans l’en-tête de chaque requête HTTP, le navigateur Web doit mettre en cache les informations d’identification pendant une période raisonnable pour éviter de demander constamment à l’utilisateur son nom d’utilisateur et son mot de passe. La politique de mise en cache diffère d’un navigateur à l’autre.

HTTP ne fournit pas de méthode permettant à un serveur Web d’ordonner au client de « déconnecter » l’utilisateur. Cependant, il existe un certain nombre de méthodes pour effacer le cache identifiants dans certains navigateurs Web. L’une d’entre elles consiste à rediriger l’utilisateur vers une URL sur le même domaine, en utilisant des informations d’identification intentionnellement incorrectes. Cependant, ce comportement n’est pas cohérent entre les différents navigateurs et versions de navigateur. [3] Microsoft Internet Explorer [4]

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

Dans les navigateurs modernes, les informations d’identification mises en cache pour l’authentification de base sont généralement effacées lors de l’effacement de l’historique de navigation. La plupart des navigateurs permettent aux utilisateurs d’effacer spécifiquement uniquement les informations d’identification, bien que l’option puisse être difficile à trouver, et efface généralement les informations d’identification de tous les sites visités. [5] [6]

Les informations d’identification par force brute ne sont pas activement empêchées ou détectées (à moins qu’un mécanisme côté serveur ne soit utilisé).

protocole

Lorsque le serveur souhaite que l’agent utilisateur s’authentifie auprès du serveur après avoir reçu une requête non authentifiée, il doit envoyer une réponse avec une ligne d’état HTTP 401 Non autorisé [7] et un champ d’en-tête WWW-Authenticate. [8]

Le champ d’en-tête WWW-Authenticate pour l’authentification de base est construit comme suit :

Le serveur peut choisir d’inclure le paramètre charset de la RFC 7617 : [3]

Ce paramètre indique que le serveur s’attend à ce que le client utilise UTF-8 pour l’encodage du nom d’utilisateur et du mot de passe (voir ci-dessous).

Lorsque l’agent utilisateur souhaite envoyer des informations d’authentification au serveur, il peut utiliser le champ d’en-tête Autorisation.

Le champ d’en-tête Authorization est construit comme suit : [9]

  1. Le nom d’utilisateur et le mot de passe sont combinés avec un seul deux-points (). Cela signifie que le nom d’utilisateur lui-même ne peut pas contenir de deux-points.
  2. La chaîne résultante est encodée dans une séquence d’octets. Le jeu de caractères à utiliser pour cet encodage n’est par défaut pas spécifié, tant qu’il est compatible avec US-ASCII, mais le serveur peut suggérer l’utilisation de UTF-8 en envoyant le paramètre charset. [9]
  3. La chaîne résultante est encodée à l’aide d’une variante de Base64 (+/ et avec padding).
  4. La méthode d’autorisation et un caractère d’espace (par exemple « Basic ») sont ensuite ajoutés à la chaîne codée.

Par exemple, si le navigateur utilise Aladdin comme nom d’utilisateur et open sesame comme mot de passe, la valeur du champ est l’encodage Base64 d’Aladdin :open sesame , ou QWxhZGRpbjpvcGVuIHNlc2FtZQ== . Ensuite, le champ d’en-tête Autorisation apparaîtra comme suit :

Voir aussi

Références et notes

Liens externes