Tous les produits
Search
Centre de documentation

API Gateway:Plug-in key-auth

Dernière mise à jour :Sep 21, 2026

Le plug-in key-auth authentifie les requêtes en extrayant les clés API des paramètres d'URL ou des en-têtes HTTP, puis en validant les autorisations d'accès.

Obtenir une clé API (identifiant)

Chaque appelant s'authentifie à l'aide d'une valeur credential définie dans la configuration du plug-in. Il s'agit d'une chaîne de caractères que vous spécifiez. Aucune application console n'est requise.

Lorsque vous définissez une credential, respectez les consignes suivantes :

  • Utilisez une chaîne aléatoire d'au moins 32 caractères, par exemple au format UUID : 2bda943c-ba2b-11ec-ba07-00163e125d8f

  • Gardez-la secrète. Ne l'exposez pas dans le code côté client ni dans la documentation publique.

  • Pour attribuer des autorisations différentes à plusieurs appelants, définissez une credential unique pour chacun et configurez-les dans le champ consumers.

Type de plug-in

Authentification et autorisation.

Champs

Configuration d'authentification

Élément de configuration

Type de données

Obligatoire

Valeur par défaut

Description

consumers

array of object

Oui

-

Appelants de service pour l'authentification des requêtes.

keys

array of string

Oui

-

Noms des paramètres d'URL ou des en-têtes HTTP depuis lesquels extraire les clés API.

in_query

bool

Au moins l'un des champs in_query et in_header doit être défini sur true.

true

Lorsqu'il est défini sur true, la passerelle extrait les clés API des paramètres d'URL.

in_header

bool

Au moins l'un des champs in_query et in_header doit être défini sur true.

true

Lorsqu'il est défini sur true, la passerelle extrait les clés API des en-têtes HTTP.

global_auth

array of string

Non (obligatoire uniquement pour les configurations au niveau de l'instance)

-

Uniquement au niveau de l'instance. Si la valeur est true, l'authentification s'applique globalement. Si la valeur est false, l'authentification s'applique uniquement aux domaines et routes configurés. Si ce champ n'est pas défini, l'authentification globale est activée uniquement lorsqu'aucun domaine ni aucune route n'est configuré.

Champs de l'objet consumers :

Élément de configuration

Type de données

Obligatoire

Valeur par défaut

Description

credential

string

Oui

-

Identifiant d'accès pour le consommateur.

name

string

Oui

-

Nom du consommateur.

Configuration d'autorisation (facultative)

Élément de configuration

Type de données

Obligatoire

Valeur par défaut

Description

allow

array of string

Non (obligatoire pour les configurations autres qu'au niveau de l'instance)

-

Uniquement au niveau de la route ou du domaine. Liste les consommateurs autorisés à accéder aux requêtes correspondantes.

Important
  • Les configurations d'autorisation et d'authentification ne peuvent pas coexister dans une même règle.

  • Pour les requêtes authentifiées, un en-tête X-Mse-Consumer est ajouté pour identifier l'appelant.

Exemple

Authentification globale avec autorisation au niveau de la route

Cet exemple configure l'authentification au niveau de l'instance et l'autorisation au niveau de la route et du domaine. Chaque valeur credential doit être unique.

Configuration du plug-in au niveau de l'instance :

global_auth: false
consumers:
- credential: 2bda943c-ba2b-11ec-ba07-00163e125***
  name: consumer1
- credential: c8c8e9ca-558e-4a2d-bb62-e700dcc40***
  name: consumer2
keys:
- apikey
- x-api-key

Configuration du plug-in pour les routes route-a et route-b :

allow:
- consumer1

Configuration du plug-in pour les domaines *.example.com et test.com :

allow:
- consumer2
Remarque
  • Lorsqu'une requête correspond à route-a ou route-b, seul l'appelant dont le name est défini sur consumer1 est autorisé.

  • Lorsqu'une requête correspond à *.example.com ou test.com, seul l'appelant dont le name est défini sur consumer2 est autorisé.

Requêtes autorisées (correspondant à la route route-a) :

  • Clé API dans un paramètre d'URL :

    curl  http://xxx.hello.com/test?apikey=2bda943c-ba2b-11ec-ba07-00163e1***
  • Clé API dans un en-tête HTTP :

    curl  http://xxx.hello.com/test -H 'x-api-key: 2bda943c-ba2b-11ec-ba07-00163e1***'

Une fois l'authentification réussie, l'en-tête X-Mse-Consumer identifie l'appelant. Dans cet exemple, la valeur est consumer1.

Requêtes refusées :

  • Aucune clé API fournie. Renvoie HTTP 401.

    curl  http://xxx.hello.com/test
  • Clé API non valide. Renvoie HTTP 401.

    curl  http://xxx.hello.com/test?apikey=926d90ac-ba2e-11ec-ab68-00163e1***
  • L'appelant correspondant ne dispose pas de l'autorisation d'accès. Renvoie HTTP 403.

    # The caller consumer2 is not in the whitelist of route-a.
    curl  http://xxx.hello.com/test?apikey=c8c8e9ca-558e-4a2d-bb62-e700dcc***

Activer l'authentification à l'échelle de la passerelle

Avec la configuration suivante au niveau de l'instance, toutes les requêtes nécessitent une authentification key-auth.

global_auth: true
consumers:
- credential: 2bda943c-ba2b-11ec-ba07-00163e1***
  name: consumer1
- credential: c8c8e9ca-558e-4a2d-bb62-e700dcc***
  name: consumer2
keys:
- apikey
- x-api-key

Codes d'erreur

Code d'état HTTP

Message d'erreur

Raison

401

No API key found in request.

La requête ne contient aucune clé API.

401

Request denied by Key Auth check. Invalid API key.

La clé API n'est pas valide.

403

Request denied by Key Auth check. Unauthorized consumer.

L'appelant ne dispose pas de l'autorisation d'accès.