Tous les produits
Search
Centre de documentation

Function Compute:Configurer l'authentification JWT pour un déclencheur HTTP

Dernière mise à jour :Aug 12, 2026

Dans Function Compute, vous pouvez configurer l'authentification JSON Web Token (JWT) pour un déclencheur HTTP. Cette configuration garantit que seuls les clients disposant d'un JWT valide accèdent à votre fonction. Elle renforce ainsi la sécurité de votre service HTTP tout en prévenant les accès non autorisés et les attaques malveillantes.

Informations générales

Présentation

Function Compute permet d'activer l'authentification JWT pour un déclencheur HTTP. Défini dans la norme RFC 7519, le JWT est une méthode d'authentification des requêtes basée sur des jetons. Les informations d'état de l'utilisateur sont stockées dans un token fourni par le client, ce qui dispense la fonction (serveur) de conserver ces données. Il s'agit donc d'une méthode d'authentification adaptée aux architectures serverless. Function Compute utilise le jeu de clés JSON Web Key Set (JWKS) public configuré pour un déclencheur HTTP afin d'authentifier les requêtes HTTP via JWT. Selon la configuration du déclencheur, Function Compute peut transmettre les claims en tant que paramètres à la fonction. Votre fonction se concentre ainsi sur la logique métier plutôt que sur l'authentification des requêtes. Pour plus d'informations sur le processus et les principes fondamentaux de l'authentification par token JWT, consultez les rubriques Authentification par jeton basée sur JWT et Introduction au JWT.

Fonctionnement de l'authentification JWT

La figure précédente illustre le flux de travail d'authentification JWT pour un déclencheur HTTP dans Function Compute utilisant un algorithme de chiffrement asymétrique. Les étapes sont les suivantes :

  1. Le client envoie une requête d'authentification à un service d'autorisation personnalisé. Cette requête comprend généralement le nom d'utilisateur et le mot de passe de l'utilisateur final.

  2. Le service d'autorisation personnalisé valide les identifiants de la requête, tels que le nom d'utilisateur et le mot de passe. Après validation, il utilise une clé privée pour générer un jeton standard.

  3. Le service d'autorisation personnalisé renvoie une réponse contenant le jeton au client. Le client doit mettre en cache ce token localement.

  4. Le client adresse une requête métier incluant le jeton au déclencheur HTTP.

  5. Le déclencheur HTTP utilise la clé publique configurée pour vérifier le jeton présent dans la requête.

  6. Une fois le jeton vérifié, le déclencheur transmet la requête à la fonction protégée.

  7. La fonction protégée traite la requête métier et retourne une réponse.

  8. Le déclencheur HTTP transfère la réponse métier au client.

Prérequis

Créez une fonction et un déclencheur HTTP. Pour plus d'informations, consultez les rubriques Créer une fonction et Créer un déclencheur.

Limites

  • Vous pouvez utiliser n'importe quelle méthode pour générer et distribuer des JWT. Function Compute authentifie les JWT à l'aide du JWKS public configuré pour le déclencheur.

  • Function Compute prend en charge les JSON Web Key (JWK) sans kid (ID de clé).

  • Le déclencheur peut lire un jeton depuis un header de requête, un paramètre de Query (pour les requêtes GET), un paramètre de formulaire (pour les requêtes POST) ou un cookie.

  • Vous pouvez transférer les claims vers la fonction sous forme de header, de paramètre de formulaire (pour les requêtes POST) ou de cookie.

  • Function Compute permet de configurer un JWKS pour un déclencheur HTTP. Le système recherche dans le JWKS une JWK publique dont le kid correspond à celui du token. Il utilise ensuite cette clé publique pour vérifier la signature du token. Un JWKS associé à un déclencheur ne peut contenir qu'une seule JWK dont le kid est absent ou constitue une chaîne vide.

    Le JWT de Function Compute prend en charge les algorithmes suivants.

    Algorithme de signature

    Valeur Alg

    RSASSA-PKCS1-V1_5

    RS256, RS384, RS512

    RSASSA-PSS

    PS256, PS384, PS512

    Courbe elliptique (ECDSA)

    ES256, ES384, ES512

    HMAC

    HS256, HS384, HS512

    EdDSA

    EdDSA

    Important
    • L'algorithme de signature HMAC repose sur un chiffrement symétrique et offre un niveau de sécurité inférieur. Nous recommandons d'utiliser un algorithme de chiffrement asymétrique plus sûr.

    • Lorsque vous employez un algorithme de chiffrement asymétrique, votre JWT ne doit contenir que des informations relatives à la clé publique pour des raisons de sécurité. Évitez d'y inclure des informations sur la clé privée.

    • Nous conseillons d'utiliser HTTPS pour protéger les informations sensibles telles que le token dans les requêtes, afin d'éviter toute fuite de jeton.

Procédure

Étape 1 : Configurer l'authentification JWT

  1. Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez Function Management > Functions.

  2. Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.

  3. Sur la page de détails de la fonction, cliquez sur l'onglet Trigger. Repérez le déclencheur HTTP et cliquez sur Modify dans la colonne Actions.

  4. Dans le panneau Edit Trigger, configurez les paramètres suivants, puis cliquez sur OK.

    1. Pour Authentication Method, sélectionnez JWT Authentication.

    2. Configurez le paramètre JWKS.

      Pour configurer l'authentification JWT pour un déclencheur HTTP, fournissez un JWKS valide. Vous pouvez générer votre propre JWKS ou recourir à un outil en ligne en recherchant « JSON Web Key Generator », comme mkjwk.org. Si vous possédez une clé au format PEM, utilisez un outil tel que jwx pour la convertir au format JWKS.

      Cette rubrique prend pour exemple la génération d'un JWKS via mkjwk.org. Comme illustré dans la figure suivante, définissez Key Use sur Signature, Algorithm sur RS256 et Show X.509 sur Yes, puis cliquez sur Generate. Utilisez la clé privée (① dans la figure) dans votre code pour émettre le jeton JWT ; conservez-la donc en lieu sûr. Copiez le contenu de la clé publique (② dans la figure) et collez-le dans le tableau keys de la configuration JWKS dans la console.

      image.png

      image

      Le code suivant fournit un exemple de configuration JWKS.

      {
          "keys": [
              {
                  "alg": "RS256",
                  "e": "AQAB",
                  "kty": "RSA",
                  "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ",
                  "use": "sig"
              }
          ]
      }
    3. Dans la section JWT Token Configuration, spécifiez l'emplacement du Token ainsi que son nom Token.

      L'emplacement du Token peut être Header, Cookie, les paramètres de requête (GET) ou les paramètres de formulaire (POST). Si l'emplacement du Token est défini sur Header, spécifiez également le Parameter Name et le paramètre Remove Prefix. Function Compute supprime le préfixe indiqué dans Remove Prefix lors de la récupération du jeton.

      image

    4. Dans la section JWT Claim Conversion, indiquez l'emplacement de transmission du paramètre, le nom du paramètre d'origine et le nouveau nom de paramètre pour la fonction.

      Vous pouvez mapper les claims vers un paramètre Header, Cookie ou Form (POST).

      image

    5. Définissez le mode de correspondance des requêtes.

      • Match All : toutes les requêtes HTTP nécessitent une authentification JWT.

      • Whitelist Mode : les requêtes HTTP correspondant aux chemins spécifiés dans la Whitelist of Request Paths ne nécessitent pas d'authentification JWT. Toutes les autres requêtes y sont soumises.

      • Blacklist Mode : les requêtes HTTP correspondant aux chemins spécifiés dans la Blacklist of Request Paths nécessitent une authentification JWT. Toutes les autres requêtes en sont dispensées.

      Les modes Whitelist Mode et Blacklist Mode prennent en charge les deux types de correspondance suivants :

      • Correspondance exacte

        Un chemin de requête ne correspond que s'il est strictement identique au chemin configuré. Par exemple, si vous définissez la Blacklist of Request Paths sur /a, les requêtes vers /a nécessitent une authentification JWT, contrairement aux requêtes vers /a/.

      • Correspondance approximative

        Vous pouvez utiliser un caractère générique (*) dans un chemin, mais celui-ci doit impérativement se trouver à la fin du chemin. Par exemple, si vous définissez la Blacklist of Request Paths sur /login/*, toutes les requêtes vers des chemins ayant le préfixe /login/, telles que /login/a et /login/b/c/d, nécessitent une authentification JWT.

Étape 2 : Vérifier la configuration

Utilisez un outil de test, tel que Postman, pour vérifier l'accès au service HTTP conformément à la configuration JWT du déclencheur HTTP, en fournissant un endpoint, un jeton et d'autres informations.

  1. Utilisez la clé privée au format X.509 PEM générée à l'étape 1 pour émettre un jeton JWT. Les étapes suivantes montrent comment générer un jeton à l'aide d'un script Python local.

    1. Installez le module PyJWT.

      pip install 'PyJWT>=2.0'
    2. Exécutez localement l'exemple de script Python suivant pour générer un jeton JWT.

      import jwt
      import time
      
      private_key = """
      -----BEGIN PRIVATE KEY-----
      <The X.509 PEM-format private key generated in Step 1>
      -----END PRIVATE KEY-----
      """
      
      headers = {
          "alg": "RS256",
          "typ": "JWT"
      }
      
      payload = {
          "sub": "1234567890",
          "name": "John Snow",
          "iat": int(time.time()),   # The time when the token was issued.
          "exp": int(time.time()) + 60 * 60,   # Set the token to be valid for 1 hour.
      }
      
      encoded = jwt.encode(payload=payload, key=private_key.encode(), headers=headers)
      print("Generated token: %s" % encoded)
      
  2. Utilisez Postman pour vérifier l'accessibilité du service HTTP.

    1. Dans l'onglet Trigger de la page de détails de la fonction, récupérez l'endpoint public du déclencheur HTTP et saisissez-le dans le champ URL de Postman.

    2. Dans Postman, configurez le paramètre du jeton dans les en-têtes et cliquez sur Send. Le tableau suivant fournit un exemple de configuration du jeton.

      Paramètre

      Valeur

      Description

      Clé

      Authentication

      Nom du paramètre spécifié dans la section JWT Token Configuration.

      Valeur

      Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9uIFNub3ciLCJhZG1pbiI6dHJ1ZSwiZXhwIjo0ODI5NTk3NjQxfQ.eRcobbpjAd3OSMxcWbmbicOTLjO2vuLR9F2QZMK4rz1JqfSRHgwQVqNxcfOIO9ckDMNlF_3jtdfCfvXfka-phJZpHmnaQJxmnOA8zA3R4wF4GUQdz5zkt74cK9jLAXpokwrviz2ROehwxTCwa0naRd_N9eFhvTRnP3u7L0xn3ll4iOf8Q4jS0mVLpjyTa5WiBkN5xi9hkFxd__p98Pah_Yf0hVQ2ldGSyTtAMmdM1Bvzad-kdZ_wW0jcctIla9bLnOo-Enr14EsGvziMh_QTZ3HQtJuToSKZ11xkNgaz7an5de6PuF5ISXQzxigpFVIkG765aEDVtEnFkMO0xyPGLg

      Valeur du paramètre Remove Prefix spécifiée dans la section JWT Token Configuration, concaténée avec le jeton JWT. L'exemple suppose que Remove Prefix est défini sur Bearer .

      Important

      Le préfixe et l'espace du paramètre JWT dans l'en-tête de la requête doivent correspondre exactement à la valeur de Remove Prefix spécifiée dans la section JWT Token Configuration. Dans le cas contraire, le déclencheur ne parvient pas à analyser le jeton et retourne une erreur invalid or expired jwt.

FAQ

Pourquoi l'erreur « invalid or expired jwt » s'affiche-t-elle ?

Function Compute a reçu le jeton mais l'a rejeté lors de la validation. Les causes possibles sont les suivantes :

  • La signature ou le format de votre jeton est invalide.

  • Votre jeton a expiré. Générez un nouveau jeton.

  • L'ID de clé (kid) du jeton ne correspond pas au JWKS configuré pour votre nom de domaine personnalisé, ou la JWK correspondante est incorrecte.

Pourquoi l'erreur « the jwt token is missing » s'affiche-t-elle ?

Function Compute n'a pas trouvé le jeton dans la requête. Vérifiez que le jeton est bien présent dans la requête et que la Read Position ainsi que le nom du paramètre dans la section JWT Token Configuration correspondent exactement à l'emplacement où vous envoyez le jeton. Si Read Position est défini sur Header, la valeur de l'en-tête doit inclure la valeur de Remove Prefix suivie d'un espace avant le jeton.

L'authentification JWT est-elle facturée séparément ?

Non. L'authentification JWT n'entraîne aucun coût supplémentaire. La facturation de Function Compute repose sur le nombre d'invocations de fonctions, que l'authentification JWT soit activée ou non.