es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Permita el modo invitado (sin autorización) en el Autorizador personalizado en AWS.

Estoy tratando de encontrar una forma de permitir el modo de invitado en un autorizador personalizado en AWS.

Básicamente, lo que quiero lograr es el siguiente escenario:
* si no hay encabezado Authorization en la solicitud, se activa la función lambda que responde con algunos datos
* si hay un encabezado Authorization, entonces mi autorizador personalizado debe verificar el token JWT y permitir o denegar el acceso. Luego, si custom-authorizer devuelve Permitir, se activa la función lambda.

Veo que puedo lograr uno u otro, es decir, puedo abrir el punto final (eliminar completamente el autorizador), lo que funciona bien, o puedo colocar el autorizador, que también funciona bien.

Todavía no veo una forma de omitir el autorizador personalizado cuando no hay encabezado Authorization.

Ejemplo de configuración en serverless:

funciones:
hola:
controlador: handler.hello
eventos:
- http:
ruta: /hello
método: obtener
privado: verdadero
autorizador:
fuenteDeIdentidad: method.request.header.Authorization # ¿Puede ser opcional?
nombre: custom-authorizer
autorizador-personalizado:
controlador: autorizador.handler

Por mis pruebas, puedo confirmar que una vez que hay autorización y no hay encabezado Authorization en la solicitud, mi autorizador personalizado no se activa en absoluto y la API Gateway responde de inmediato con un 401 no autorizado.

Tenga en cuenta que en mi modo de invitado, no quiero recibir una respuesta personalizada de API Gateway (esto es posible y funciona). Quiero activar la función lambda como si no hubiera autorización en absoluto.

Estoy llegando a la conclusión de que esto es imposible y la única solución es eliminar la autorización y luego hacer algún código personalizado en la función lambda.

¿Alguna sugerencia?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que intentas lograr un escenario en el cual se utiliza un autorizador personalizado para comprobar un token JWT en la cabecera de Authorization, pero si la cabecera no está presente, se activa una función lambda en su lugar.

    A partir de tus pruebas, parece que esto no es posible con la configuración actual. Como solución alternativa, podrías eliminar el autorizador completamente y luego hacer algo de código personalizado en la función lambda para manejar el escenario donde la cabecera de Authorization no está presente.

Comments are closed.