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.

Usando Tokens de Actualización como el Único Token de Acceso Externo Entregado al Cliente.

Actualmente estoy implementando una arquitectura basada en microservicios. Estoy utilizando FastAPI JWT Auth en mi UsersService (el microservicio para autenticación y autorización) para generar los tokens, y herramientas básicas de validación JWT en cada otro microservicio, para asegurarme de que el JWT sea legítimo (incluyendo acceso directo a Revoked Tokens Redis en cada uno de ellos).

Actualmente estoy utilizando la arquitectura sugerida, con tokens de acceso y actualización (refresh tokens).

Estoy considerando no exponer los tokens de acceso JWT directamente a los clientes, y en su lugar, implementar una puerta de enlace API que convierta los tokens de actualización en JWTs en cada solicitud. Luego, los JWTs se pasarán a los microservicios internos para garantizar la seguridad en el tráfico de entrada.

Para hacer esto, el cliente solo necesita acceso a los tokens de actualización, ya que los JWT regulares (que tendrán una vida útil extremadamente corta) se utilizarán solo para autenticar y autorizar internamente al usuario. Planeo incluir toda la información de permisos y alcance dentro de esos JWTs, mientras que el token de actualización solo contendrá un payload de usuario.

Tengo 2 preguntas:

  1. ¿Funcionará esta arquitectura? ¿Es segura?
  2. ¿Existen algún framework de Python recomendado para implementar una puerta de enlace API de este tipo?

¡Muchas gracias! 😄

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, no puedo garantizar la seguridad de ninguna arquitectura. Sin embargo, según la información proporcionada, parece que la arquitectura propuesta podría funcionar y ser potencialmente segura. Al no exponer directamente los tokens de acceso JWT a los clientes, se reduce el riesgo de mal uso o robo de tokens. Al implementar una puerta de enlace de API para convertir los tokens de actualización en JWT en cada solicitud, puede asegurarse de que solo se pasen solicitudes válidas y autenticadas a sus microservicios. También es bueno que planee incluir permisos e información de alcance dentro de los JWT, ya que esto puede ayudar a hacer cumplir las comprobaciones adecuadas de autorización internamente.

    En cuanto a los marcos de Python recomendados para implementar una puerta de enlace de API, hay algunas opciones:

    • Flask: Flask es un popular marco de trabajo web ligero que se puede utilizar para construir APIs RESTful.
    • Django: Django es un marco de trabajo web de alto nivel para Python que incluye soporte incorporado para manejar solicitudes HTTP y construir APIs.
    • Tyk: Tyk es una puerta de enlace de API de código abierto que se puede utilizar para administrar y asegurar sus APIs RESTful.

    También existen otras opciones, por lo que vale la pena realizar una investigación adicional para encontrar la mejor opción para su caso de uso específico.

Comments are closed.