Tous les produits
Search
Centre de documentation

Function Compute:Configurer l'authentification JWT pour un nom de domaine personnalisé

Dernière mise à jour :Sep 09, 2026

L'authentification JWT permet à Function Compute de vérifier les requêtes entrantes au niveau de la passerelle, avant qu'elles n'atteignent votre fonction. Configurez un ensemble public de clés Web JSON (JWKS) sur un nom de domaine personnalisé : Function Compute l'utilise pour valider le jeton présent dans chaque requête et transmettre directement les revendications vérifiées à votre fonction. Votre fonction se concentre uniquement sur la logique métier, sans nécessiter de code d'authentification.

Pour configurer l'authentification JWT de bout en bout :

  1. Générez une paire de clés JWKS et conservez la clé privée en toute confidentialité.

  2. Activez l'authentification JWT sur un nom de domaine personnalisé et collez la clé publique dans la console.

  3. Configurez l'emplacement où Function Compute doit lire le jeton dans chaque requête.

  4. (Facultatif) Mappez les revendications JWT aux paramètres de la fonction.

  5. Générez un jeton de test et vérifiez la configuration avec Postman.

Fonctionnement

L'authentification JWT pour les noms de domaine personnalisés suit le même flux que l'authentification JWT pour les déclencheurs HTTP. Le processus utilise un chiffrement asymétrique : une clé privée signe le jeton et une clé publique le vérifie.

image

Le flux est le suivant :

  1. Le client envoie une requête d'authentification à un authorizer personnalisé, généralement avec un nom d'utilisateur et un mot de passe.

  2. L'authorizer vérifie les identifiants, puis utilise une clé privée pour générer un jeton JWT standard.

  3. L'authorizer renvoie le jeton au client. Le client le met en cache localement.

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

  5. Function Compute utilise la clé publique configurée pour valider le jeton présent dans la requête.

  6. Si la validation réussit, Function Compute transmet la requête à votre fonction, en incluant toutes les revendications mappées.

  7. La fonction traite la requête et renvoie une réponse.

  8. Function Compute transmet la réponse au client.

Pour plus d'informations sur JWT et l'authentification par jeton, consultez Authentification par jeton basée sur JWT et Introduction aux JSON Web Tokens.

Limites

  • Function Compute authentifie les JWT à l'aide du JWKS public que vous configurez pour le domaine. Vous générez et distribuez les JWT selon votre propre logique métier.

  • Les clés Web JSON (JWK) sans ID de clé (kid) sont prises en charge. Au maximum une JWK dans un JWKS peut avoir un kid non spécifié ou vide.

  • Plusieurs JWK peuvent être configurées pour un nom de domaine personnalisé. Function Compute fait correspondre le kid du jeton à la JWK appropriée, puis utilise cette clé pour la vérification de la signature.

  • Les jetons peuvent être lus depuis les paramètres header, de requête, de formulaire et cookie.

  • Les revendications peuvent être transmises en tant que paramètres header, de requête, de formulaire et cookie.

Algorithmes de signature pris en charge :

Algorithme de signature **Valeur alg**
RSASSA-PKCS1-v1_5 RS256, RS384 ou RS512
RSASSA-PSS PS256, PS384 ou PS512
Courbe elliptique (ECDSA) ES256, ES384 ou ES512
HMAC HS256, HS384 ou HS512
EdDSA EdDSA
Important

HMAC utilise un chiffrement symétrique, moins sécurisé que le chiffrement asymétrique. Utilisez un algorithme asymétrique lorsque cela est possible. Lors de l'utilisation du chiffrement asymétrique, incluez uniquement les informations de clé publique dans votre JWKS. Utilisez HTTPS pour protéger les jetons en transit et éviter les fuites de jetons.

Prérequis

Avant de commencer, assurez-vous d'avoir :

Configurer l'authentification JWT

Étape 1 : Ouvrir les paramètres du nom de domaine personnalisé

  1. Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez Advanced Features > Custom Domains.

  2. Dans la barre de navigation supérieure, sélectionnez la région où réside votre nom de domaine personnalisé.

  3. Sur la page Custom Domains, cliquez sur le nom de domaine que vous souhaitez configurer.

  4. Dans le coin supérieur droit, cliquez sur Modify.

Étape 2 : Activer l'authentification JWT

Sur la page Modify Custom Domain Name, définissez Authentication Method sur JWT Authentication.

image.png

Étape 3 : Configurer le JWKS

L'authentification JWT nécessite un JWKS valide contenant votre clé publique. Vous pouvez en générer un à l'aide d'un outil en ligne tel que mkjwk.org. Si vous disposez d'une clé privée au format PEM, utilisez un outil comme jwx pour la convertir au format JWKS.

Pour générer un JWKS sur mkjwk.org : définissez Key Use, Algorithm et Show X.509, puis cliquez sur Generate. L'outil produit deux clés :

  • ① Clé privée — utilisez-la dans votre code pour signer (émettre) les jetons JWT. Gardez-la confidentielle.

  • ② Clé publique — collez-la dans le tableau keys de la console Function Compute.

imageimage

Le JWKS que vous collez dans la console suit cette structure :

{
    "keys": [
        {
            "alg": "RS256",
            "e": "AQAB",
            "kty": "RSA",
            "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ",
            "use": "sig"
        }
    ]
}

Étape 4 : Configurer l'emplacement du jeton JWT

Dans la section JWT Token Configuration, définissez Read Position (Header, Cookie, Query Parameters ou Form Parameters) et le nom du paramètre où Function Compute doit rechercher le jeton.

Si vous définissez Read Position sur Header, spécifiez une valeur pour Remove Prefix. Function Compute supprime ce préfixe avant d'analyser le jeton. Par exemple, si vous définissez le préfixe sur Bearer, un en-tête de requête Authorization: Bearer <token> amène Function Compute à extraire et valider <token>.

image.png

Étape 5 : Configurer la transmission des revendications (facultatif)

Dans la section JWT Claim Conversion, mappez les revendications JWT aux paramètres de la fonction. Pour chaque mappage, spécifiez :

  • Mapping Parameter Position — emplacement vers lequel transmettre la revendication (Header, Cookie, Query Parameters ou Form Parameters)

  • Le nom d'origine de la revendication dans le jeton

  • Le nom du paramètre transmis à la fonction

image.png

Étape 6 : Enregistrer la configuration

Cliquez sur Save.

Vérifier la configuration

Utilisez la clé privée générée à l'étape précédente pour créer un jeton JWT de test, puis utilisez Postman pour confirmer que le nom de domaine authentifie correctement les requêtes.

Générer un jeton de test

  1. Installez le module PyJWT. Consultez PyJWT.

  2. Exécutez le script Python suivant localement pour générer un jeton. Remplacez l'espace réservé de la clé privée par la clé privée X.509 PEM issue de l'étape de génération du JWKS.

import jwt
import time

private_key = """
-----BEGIN PRIVATE KEY-----
<Your X.509 PEM private key>
-----END PRIVATE KEY-----
"""

headers = {
    "alg": "RS256",
    "typ": "JWT"
}

payload = {
    "sub": "1234567890",
    "name": "John Snow",
    "iat": int(time.time()),              # Token issuance time
    "exp": int(time.time()) + 60 * 60,   # Token expires in 1 hour
}

encoded = jwt.encode(payload=payload, key=private_key.encode(), headers=headers)
print("Generated token: %s" % encoded)

Tester avec Postman

  1. Dans la console Function Compute, accédez à Advanced Features > Custom Domains. Copiez votre nom de domaine personnalisé et collez-le dans le champ URL de Postman.

  2. Ajoutez un en-tête de requête correspondant à vos paramètres JWT Token Configuration. Par exemple, si le nom du paramètre est Authentication et le préfixe est Bearer :

    Important

    Assurez-vous que le formatage du JWT dans l'en-tête de la requête correspond aux paramètres Remove Prefix configurés. En cas de divergence, une erreur invalid or expired jwt est renvoyée.

    Paramètre Valeur Description
    Key Authentication Le nom du paramètre configuré dans JWT Token Configuration
    Value Bearer <your-jwt-token> Le préfixe configuré, un espace et le jeton généré à l'étape précédente
  3. Cliquez sur Send et vérifiez la réponse.

image.png

Si la transmission des revendications est configurée, la réponse confirme que la revendication a été transmise à la fonction. Par exemple, nametofunction est le nom du paramètre transmis issu du mappage des revendications.

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 n'est pas exacte.

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 présent dans la requête et que Read Position ainsi que le nom du paramètre dans JWT Token Configuration correspondent exactement à l'emplacement d'envoi du jeton. Si Read Position est défini sur Header, la valeur de l'en-tête doit inclure la valeur 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. Function Compute facture en fonction du nombre d'appels de fonction, que l'authentification JWT soit activée ou non.