Todos los productos
Search
Centro de documentos

API Gateway:Complemento key-auth

Última actualización: Sep 05, 2026

El complemento key-auth autentica las solicitudes mediante el análisis de claves de API en parámetros de URL o encabezados HTTP, y valida los permisos de acceso.

Obtener una clave de API (credencial)

Cada solicitante se autentica con un valor credential en la configuración del complemento, que corresponde a una clave de cadena definida por usted. No es necesario realizar ninguna configuración desde la consola.

Al definir una credential, siga estas pautas:

  • Utilice una cadena aleatoria de 32 caracteres o más; por ejemplo, en formato UUID: 2bda943c-ba2b-11ec-ba07-00163e125d8f

  • Manténgala segura. No la exponga en código del lado del cliente ni en documentación pública.

  • Para asignar distintos permisos a varios solicitantes, defina una credential única para cada uno y configúrelas en el campo consumers.

Tipo de complemento

Autenticación y autorización.

Campos

Configuración de autenticación

Elemento de configuración

Tipo de dato

Obligatorio

Valor predeterminado

Descripción

consumers

array of object

Sí

-

Solicitantes del servicio para la autenticación de solicitudes.

keys

array of string

Sí

-

Nombres de los parámetros de URL o encabezados HTTP de donde se extraen las claves de API.

in_query

bool

Como mínimo, uno de in_query y in_header debe establecerse en true.

true

Cuando se establece en true, la puerta de enlace analiza las claves de API en los parámetros de URL.

in_header

bool

Como mínimo, uno de in_query y in_header debe establecerse en true.

true

Cuando se establece en true, la puerta de enlace analiza las claves de API en los encabezados HTTP.

global_auth

array of string

No (obligatorio solo para configuraciones a nivel de instancia)

-

Solo a nivel de instancia. Si es true, la autenticación se aplica de forma global. Si es false, la autenticación se aplica únicamente a los dominios y rutas configurados. Si no se define, la autenticación global se habilita solo cuando no hay dominios ni rutas configurados.

Campos del objeto consumers:

Elemento de configuración

Tipo de dato

Obligatorio

Valor predeterminado

Descripción

credential

string

Sí

-

Credencial de acceso del consumidor.

name

string

Sí

-

Nombre del consumidor.

Configuración de autorización (opcional)

Elemento de configuración

Tipo de dato

Obligatorio

Valor predeterminado

Descripción

allow

array of string

No (obligatorio para configuraciones que no son a nivel de instancia)

-

Solo a nivel de ruta o dominio. Enumera los consumidores con permiso para acceder a las solicitudes coincidentes.

Importante
  • Las configuraciones de autorización y autenticación no pueden coexistir en una misma regla.

  • En las solicitudes autenticadas, se agrega un encabezado X-Mse-Consumer para identificar al solicitante.

Ejemplo

Autenticación global con autorización a nivel de ruta

Este ejemplo configura la autenticación a nivel de instancia y la autorización a nivel de ruta y dominio. Cada valor de credential debe ser único.

Configuración del complemento a nivel de instancia:

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

Configuración del complemento para las rutas route-a y route-b:

allow:
- consumer1

Configuración del complemento para los dominios *.example.com y test.com:

allow:
- consumer2
Nota
  • Cuando una solicitud coincide con route-a o route-b, solo se permite el acceso al solicitante cuyo name sea consumer1.

  • Cuando una solicitud coincide con *.example.com o test.com, solo se permite el acceso al solicitante cuyo name sea consumer2.

Solicitudes permitidas (que coinciden con la ruta route-a):

  • Clave de API en un parámetro de URL:

    curl  http://xxx.hello.com/test?apikey=2bda943c-ba2b-11ec-ba07-00163e1***
  • Clave de API en un encabezado HTTP:

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

Una vez que la autenticación se completa correctamente, el encabezado X-Mse-Consumer identifica al solicitante. En este ejemplo, el valor es consumer1.

Solicitudes denegadas:

  • No se proporcionó clave de API. Devuelve HTTP 401.

    curl  http://xxx.hello.com/test
  • Clave de API no válida. Devuelve HTTP 401.

    curl  http://xxx.hello.com/test?apikey=926d90ac-ba2e-11ec-ab68-00163e1***
  • El solicitante coincidente carece de permiso de acceso. Devuelve 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***

Habilitar la autenticación en toda la puerta de enlace

Con la siguiente configuración a nivel de instancia, todas las solicitudes requieren autenticación 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

Códigos de error

Código de estado HTTP

Mensaje de error

Motivo

401

No API key found in request.

La solicitud no contiene ninguna clave de API.

401

Request denied by Key Auth check. Invalid API key.

La clave de API no es válida.

403

Request denied by Key Auth check. Unauthorized consumer.

El solicitante carece de permiso de acceso.