Alibaba Cloud API Gateway ofrece varios métodos de autenticación para las solicitudes de los clientes, como la autenticación de aplicaciones de Alibaba Cloud, complementos JWT y autorización de terceros. Para la autenticación de aplicaciones de Alibaba Cloud, puede elegir entre dos métodos: autenticación por firma y autenticación simple (AppCode). Este tema describe cómo utilizar la autenticación simple (AppCode).
Precauciones
La autenticación simple elimina la necesidad de procesos de firma complejos. Sin embargo, transmite el AppCode en texto plano a través de la red, lo que representa un riesgo de seguridad.
Debe usar HTTPS para la comunicación entre el cliente y API Gateway. Evite utilizar HTTP para la transmisión de datos. Dado que la autenticación simple transmite el AppCode en texto plano, el uso del protocolo HTTP sin cifrado conlleva un alto riesgo de que el AppCode se vea comprometido si se interceptan los paquetes de red.
Descripción general
Para obtener información sobre la autenticación por firma, consulte Call an API by using signature authentication.
-
La autenticación simple (AppCode) autentica a los clientes mediante un
AppCodeemitido por API Gateway. El cliente incluye elAppCodeen el encabezado de la solicitud o comoquery parameterpara la autenticación. Esto le permite llamar rápidamente a unaAPI.Cree una API que utilice autenticación simple (AppCode).
Cree una aplicación para obtener un
AppCode.Autorice a la aplicación para llamar a la API.
Utilice el
AppCodeemitido por API Gateway para la autenticación.
Crear una API para autenticación AppCode
Inicie sesión en la consola de API Gateway. En el panel de navegación izquierdo, seleccione API Management > API Groups. En la página API Groups, haga clic en Create Group en la esquina superior derecha.
En la página Create Group, seleccione su instancia de API Gateway en la lista desplegable Instance, introduzca un Group Name y una BasePath, y luego haga clic en OK.
En el panel de navegación izquierdo, seleccione . En la página APIs, haga clic en Create API en la esquina superior derecha.
-
En la página Create API, dentro de la sección Basic Information, seleccione el Group que creó. Introduzca un API Name. Para Security Authentication, seleccione Alibaba Cloud App. Para AppCode Authentication, seleccione Enable AppCode Authentication (Header) o Enable AppCode Authentication (Header & Query).
A continuación se describen las opciones de autenticación AppCode.
Opción
Descripción
Enable After Publishing to Alibaba Cloud Marketplace
Esta opción está deshabilitada de forma predeterminada. Si la API se publica en Alibaba Cloud Marketplace, puede habilitar esta opción para permitir la autenticación AppCode en el encabezado de la solicitud.
Disable AppCode Authentication
La autenticación AppCode está deshabilitada. Todas las llamadas a la API deben usar autenticación por firma, independientemente de si la API está publicada en Alibaba Cloud Marketplace.
Enable AppCode Authentication (Header)
La autenticación AppCode está habilitada. El AppCode solo se puede pasar en el encabezado de la solicitud, sin importar si la API está publicada en Alibaba Cloud Marketplace.
Enable AppCode Authentication (Header & Query)
La autenticación AppCode está habilitada. El AppCode se puede pasar en el encabezado de la solicitud o como parámetro de consulta, independientemente de si la API está publicada en Alibaba Cloud Marketplace.
Seleccione un Signature Algorithm y haga clic en Next.
En el paso Define API Request, configure la solicitud de la API. Para más información, consulte Define an API request. Luego, haga clic en Next.
En el paso Define Backend Service, configure el servicio de backend. Para más información, consulte Define backend service information. Luego, haga clic en Next.
En el paso Define Response, configure la respuesta. Para más información, consulte Define a response. Luego, haga clic en Save.
Al definir los parámetros de la API, no es necesario agregar un parámetro para el
AppCode.Después de crear la API, puede publicarla en un entorno para realizar pruebas de depuración.
Crear una aplicación
Inicie sesión en la consola de API Gateway. En el panel de navegación izquierdo, seleccione . En la página Apps, haga clic en Create App en la esquina superior derecha.
En el cuadro de diálogo Create App, introduzca un App Name y haga clic en OK.
Se genera automáticamente un
AppCodepara cada nueva aplicación. Para encontrar el AppCode, vaya a la página Apps y haga clic en el nombre de una aplicación para abrir su página de App Details.Cuando los usuarios de Alibaba Cloud Marketplace compran una API, se crea automáticamente una aplicación para ellos.
Autorizar una aplicación para usar una API AppCode
Inicie sesión en la consola de API Gateway. En el panel de navegación izquierdo, seleccione . En la página APIs, busque la API que creó y, en la columna Actions, haga clic en
y luego en Authorize.En el cuadro de diálogo de autorización, seleccione la Stage y establezca el Authorization Validity Period. En Select Apps for Authorization, busque la sección My Apps y haga clic en Search para ver las aplicaciones de su cuenta. Seleccione la aplicación deseada, haga clic en Add y luego en OK.
Autenticarse mediante un AppCode
Puede proporcionar el AppCode de dos formas: en el request header o como query parameter.
Método 1: Pasar el AppCode en el encabezado
Agregue un parámetro
Authorizationalrequest header.-
El valor del campo
Authorizationdebe comenzar conAPPCODE, seguido de un espacio y el valor del AppCode. Formato:Authorization:APPCODEEjemplo:
Authorization:APPCODE 3F2504E04F8911D39A0C0305E82C3301ImportanteSi el servicio de backend es una función HTTP, el encabezado
Authorizationno se pasa al servicio de backend. El parámetroAuthorizationde la función HTTP lo sobrescribe. Por lo tanto, se recomienda pasar el AppCode como parámetro de consulta.
Método 2: Pasar el AppCode como parámetro de consulta
Agregue un parámetro
AppCodea laqueryde la solicitud. El nombre del parámetro no distingue entre mayúsculas y minúsculas. Puede usarappcode,appCode,APPCODEoAPPCode.El valor del parámetro
AppCodees su valor deAppCode.
Ejemplo:
http://?AppCode=3F2504E04F8911D39A0C0305E82C3301