Lorsque vous exposez une fonction via un domaine personnalisé, toute personne connaissant l'URL peut l'invoquer. L'authentification Bearer sécurise l'accès en exigeant que les clients incluent un jeton valide dans chaque requête.
Fonctionnement
Un client envoie une requête à votre domaine personnalisé avec un en-tête
Authorization: Bearer <token>.Function Compute valide le jeton par rapport aux jetons configurés pour ce domaine.
Si le jeton correspond, Function Compute transfère la requête à la fonction.
Si le jeton est manquant ou invalide, Function Compute renvoie une erreur.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Associé un nom de domaine personnalisé à la fonction
Considérations de sécurité
Utilisez toujours HTTPS dans les environnements de production. HTTP transmet les jetons en texte clair, ce qui les expose à l'interception. Function Compute n'est pas responsable des risques de sécurité liés à la fuite de jetons via HTTP. Utilisez HTTP uniquement pour le développement et les tests.
Function Compute stocke et vérifie vos jetons, mais vous êtes responsable de leur génération et de la gestion de leur cycle de vie. Renouvelez régulièrement les jetons et remplacez immédiatement tout jeton susceptible d'avoir été exposé.
Limites
Chaque jeton doit être unique, tant au sein d'un même domaine personnalisé qu'à travers tous les noms de domaine personnalisés.
Évitez les valeurs de jeton simples ou prévisibles, plus vulnérables aux attaques par force brute.
Chaque jeton doit comporter entre 32 et 128 caractères et ne peut contenir que :
A-Z,a-z,0-9,+,/,=,-,~,.. Un jeton ne peut pas commencer par un chiffre ou un trait d'union (-).Chaque domaine personnalisé prend en charge de 1 à 20 jetons.
Configurer l'authentification Bearer
Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez Function Management > Custom Domains.
Dans la barre de navigation supérieure, sélectionnez une région. Dans la liste des noms de domaine, localisez le domaine à gérer et cliquez sur Modify dans la colonne Actions.
-
Sur la page Modify Custom Domain Name, développez Authentication Settings. Définissez Authentication Method sur Bearer Authentication, saisissez le Authentication Token, puis cliquez sur Save.
Le Authentication Token doit être un objet JSON contenant un tableau
tokens. Chaque objet de jeton comprend les champs suivants :Field
Type
Description
tokenNameString
Nom unique permettant d'identifier le jeton
tokenDataString
Valeur du jeton. Elle doit respecter les exigences de caractères et de longueur indiquées dans la section Limites
enableBoolean
Définissez cette valeur sur
truepour activer le jeton. Définissez-la surfalsepour le désactiver sans le supprimerL'exemple suivant configure deux jetons :
{ "tokens": [ { "tokenName": "tokenName-7jd", "enable": true, "tokenData": "token-dfi34ij25gd1ed6ec80g35****" }, { "tokenName": "tokenName-20i", "enable": true, "tokenData": "token-8g7f2a2c9fc23hid82593****" } ] }Pour configurer un seul jeton, incluez uniquement un objet dans le tableau
tokens.
Vérifier la configuration
Utilisez cURL pour envoyer une requête avec l'en-tête Authorization: Bearer <token> :
curl --data your-data -X access-method -H "Authorization: Bearer <token>" https://<your-custom-domain>
Remplacez <token> par la valeur tokenData d'un jeton activé, et <your-custom-domain> par votre nom de domaine réel.
Exemple :
curl -X POST -H "Authorization: Bearer token-dfi34ij25gd1ed6ec80g35****" https://example.com
Une requête réussie renvoie la réponse de la fonction. Si vous recevez une erreur, consultez la section Dépannage.
Dépannage
L'en-tête Authorization est attendu mais manquant
La requête ne comprenait pas d'en-tête Authorization. Ajoutez Authorization: Bearer <token> à vos en-têtes de requête.
access denied due to invalid bearer token
Le jeton présent dans la requête ne correspond à aucun jeton activé configuré pour le domaine. Vérifiez que le jeton correspond à la valeur du champ tokenData dans le Authentication Token que vous avez configuré dans la section Configurer l'authentification Bearer.
Facturation
L'authentification Bearer n'entraîne pas de frais supplémentaires. Les coûts des fonctionnalités de la passerelle sont inclus dans la facturation des invocations de fonctions.