En AWS API Gateway,
- Podemos configurar un recurso para solicitar la clave API para el acceso.
- También podemos configurar otro recurso para que requiera autorización (por ejemplo, token JWT, manejado a través de una función lambda o AWS Cognito).
La pregunta : ¿podemos configurar un recurso para que sea accesible en cualquiera de las dos situaciones anteriores? Actualmente, si habilitamos "Clave API Requerida" y "Autorización" simultáneamente, la solicitud necesita tanto la Clave API como la Autorización. Esperábamos que pasara con uno solo de los dos.
Truco/solución alternativa : cree dos copias del mismo recurso y autorice cada una por separado, una con la clave API y la otra con un autorizador.
Deje que el autorizador genere/asigne la clave API por usted
Tiene un autorizador de Lambda que devuelve la clave de API como parte de la respuesta de autorización. Para obtener más información sobre la respuesta de autorización, consulte Salida de un autorizador Lambda de Amazon API Gateway.
Ventajas:
Punto final único
La clave API es más para el plan de uso que para la autorización. Déjalo de esa manera.
Contras:
Autenticación , Identificación , Autorización son conceptos entrelazados. A medida que me eduqué más en Auth, aquí está mi respuesta:
En consecuencia, tiene sentido no autorizar el mismo punto final con JWT y la clave de API, ya que reduciría la granularidad de la gobernanza para los usuarios y las aplicaciones. Pero, si tiene un caso de uso que requiere ese tipo de autorización, la solución sugerida podría funcionar.