Aller au contenu principal

4.12. Authentification du client

4.12. Authentification du client

Les applications utilisant HTTP ont souvent besoin d'authentifier les clients. HTTP fournit plusieurs mécanismes d'authentification:

  • Authentification HTTP: Utilisation des champs d'en-tête WWW-Authenticate et Authorization, tels que définis dans [HTTP] Section 11. Les schémas courants incluent l'authentification Basic [RFC7617] et Digest [RFC7616].

  • Jetons de porteur: Utilisation de jetons (tels que les jetons OAuth 2.0) dans le champ d'en-tête Authorization avec le schéma Bearer.

  • Cookies: Utilisation de cookies [COOKIES] pour maintenir des sessions authentifiées.

  • Certificats client TLS: Utilisation de certificats au niveau de la couche TLS pour authentifier les clients.

  • Mécanismes spécifiques à l'application: Mécanismes d'authentification personnalisés définis par l'application.

Les applications DEVRAIENT utiliser des mécanismes d'authentification existants et bien compris dans la mesure du possible plutôt que d'en définir de nouveaux. Lorsque l'authentification est utilisée:

  • Les applications DOIVENT utiliser TLS pour protéger les informations d'authentification en transit.

  • Les applications DEVRAIENT utiliser des codes d'état HTTP appropriés (en particulier 401 Unauthorized et 403 Forbidden) pour indiquer les échecs d'authentification.

  • Les applications DEVRAIENT fournir des messages d'erreur clairs lorsque l'authentification échoue, mais NE DOIVENT PAS divulguer d'informations sensibles (comme l'existence d'un nom d'utilisateur).

  • Les applications DEVRAIENT tenir compte de la durée de vie et du renouvellement des informations d'authentification.

  • Les applications DEVRAIENT spécifier comment l'état d'authentification est maintenu entre les requêtes (par exemple, en utilisant des cookies ou en exigeant le champ d'en-tête Authorization pour chaque requête).

Les applications DEVRAIENT être conscientes que l'authentification est différente de l'autorisation. L'authentification établit l'identité du client, tandis que l'autorisation détermine ce que ce client est autorisé à faire.