Aplicaciones web seguras con OCI API Gateway y OpenID Connect

La integración de aplicaciones web heredadas con proveedores de identidad modernos suele requerir la modificación del código de aplicación heredado y el cambio de la interfaz de usuario. En lugar de dedicar tiempo y recursos al nuevo desarrollo personalizado, invierta en una arquitectura que le permita centrarse en la lógica de negocio en lugar del flujo de autenticación.

Algunas aplicaciones heredadas no admiten directamente OpenID Connect. A medida que se trasladan a la nube, puede utilizar el gateway de API de Oracle Cloud Infrastructure (OCI) como punto de acceso de red para mediar la autenticación con los usuarios, el proveedor de identidad y la aplicación. En lugar de requerir que todas las aplicaciones agreguen los flujos de conexión OpenID directamente, OCI API Gateway puede aplicar el acceso de manera estandarizada en la red. Los desarrolladores pueden utilizar OCI API Gateway para modernizar las aplicaciones heredadas, al tiempo que mejoran las aplicaciones modernas.

Arquitectura

OCI API Gateway es un servicio sin servidor y totalmente gestionado en OCI que se puede utilizar para proteger puntos finales y aplicaciones web de API. OCI API Gateway proporciona funciones de seguridad como limitación de tarifas, aplicación de autorizaciones, enrutamiento dinámico, aplicación de SSL, etc. OCI API Gateway se puede aprovechar para proteger las aplicaciones web heredadas que requieren soporte de autenticación OpenID. OCI API Gateway puede actuar como un módulo de seguridad centralizado para aplicaciones web alojadas en subredes privadas de OCI. OCI API Gateway no tiene en cuenta el proveedor de identidad y se puede integrar con cualquier proveedor de OAuth 2.0 soportado, como Okta, Google, Amazon y Auth0, por nombrar algunos.

El protocolo de conexión OpenID es una capa de identidad simple sobre el protocolo OAuth 2.0. OpenID Connect permite diferentes tipos de aplicaciones, como exploradores, aplicaciones móviles y clientes de escritorio, para admitir la autenticación y la gestión de identidades de forma segura, centralizada y estandarizada. Las aplicaciones que aprovechan el protocolo OpenID Connect dependen de los proveedores de identidad para manejar de forma segura los procesos de autenticación y verificar las identidades de los usuarios. OpenID Connect activa la conexión única para aplicaciones dispares mediante la centralización de la gestión de usuarios con un proveedor de identidad como Oracle Cloud Infrastructure Identity and Access Management.

OCI API Gateway actúa como el punto de acceso de red para mediar la autenticación con los usuarios, el proveedor de identidad y la aplicación. Al colocar OCI API Gateway entre aplicaciones y clientes, OCI API Gateway permite interceptar las solicitudes y manejar el flujo de autorización OpenID Connect.

En el siguiente diagrama se ilustra esta arquitectura de referencia.



security-web-applications-oci-api-gateway-open-id-architecture.zip

El siguiente diagrama ilustra el flujo de autenticación para la autorización inicial.



security-web-applications-oci-api-gateway-open-id-data-flow.zip

  1. La aplicación cliente solicita acceso a los servicios de backend a través del gateway de API de OCI.
  2. OCI API Gateway dirige el cliente al proveedor de identidad.
  3. El cliente se autentica con el proveedor de identidad. Si se autentica correctamente, el cliente recibe un token que proporciona autorización.
  4. El proveedor de identidad redirige el cliente a OCI API Gateway con el token de acceso.
  5. OCI API Gateway valida el token de acceso con el proveedor de identidad.
  6. Si la validación de token se realiza correctamente, OCI API Gateway se enruta al servicio de backend adecuado y devuelve la respuesta satisfecha al cliente.

Cuando un cliente ya está autorizado, el flujo se parece al siguiente diagrama.



security-web-applications-oci-api-gateway-open-id-data-flow-authorized.zip

  1. Después de obtener un token, los exploradores almacenan en caché tokens para solicitudes posteriores a la misma aplicación.
  2. OCI API Gateway valida el token con el proveedor de identidad para garantizar que el cliente tenga acceso a los servicios de backend.
  3. Si el cliente está autorizado, Gateway de API de OCI direcciona al servicio de backend adecuado y devuelve la respuesta satisfecha al cliente.

La arquitectura tiene los siguientes componentes:

  • Región

    Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones, y las grandes distancias pueden separarlas (entre países e incluso continentes).

  • dominios de disponibilidad

    Los dominios de disponibilidad son centros de datos independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como la alimentación o la refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, es improbable que un fallo en un dominio de disponibilidad afecte a los otros dominios de la región.

  • Dominios de errores

    Un dominio de errores es una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad. Cada dominio de disponibilidad tiene tres dominios de errores con energía y hardware independientes. Al distribuir recursos entre varios dominios de errores, sus aplicaciones pueden tolerar fallos en el servidor físico, el mantenimiento del sistema y los fallos de energía dentro de un dominio de errores.

  • Red virtual en la nube (VCN) y subredes

    Una VCN es una red definida por software y personalizable que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes de los centros de datos tradicionales, las redes virtuales le proporcionan un control completo de su entorno de red. Una VCN puede tener varios bloques de CIDR no superpuestos que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, las cuales se pueden acotar a una región o a un dominio de disponibilidad. Cada subred está formada por un rango contiguo de direcciones que no se solapan con las demás subredes de la VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.

  • Gateway de API

    Oracle API Gateway permite publicar API con puntos finales privados accesibles desde la red y que, si es necesario, se pueden exponer a la red pública de Internet. Los puntos finales soportan la validación de API, la transformación de solicitud y respuesta, CORS, la autenticación y autorización, y la limitación de solicitudes.

  • Identity and Access Management (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) es el plano de control de acceso para Oracle Cloud Infrastructure (OCI) y Oracle Cloud Applications. La API de IAM y la interfaz de usuario le permiten gestionar los dominios de identidad y los recursos del dominio de identidad. Cada dominio de identidad de OCI IAM representa una solución de gestión de identidad y acceso independiente o un grupo de usuarios diferente.

  • FastConnect

    Oracle Cloud Infrastructure FastConnect proporciona una forma sencilla de crear una conexión dedicada y privada entre el centro de datos y Oracle Cloud Infrastructure. FastConnect proporciona opciones de mayor ancho de banda y una experiencia de red más fiable en comparación con las conexiones basadas en Internet.

  • Interconexión de OCI y Azure

    La interconexión entre Oracle Cloud y Microsoft Azure es la primera oferta multinube de Oracle. Proporciona una conexión de red directa entre centros de datos específicos de Azure y Oracle Cloud Infrastructure (OCI) en todo el mundo. Permite a los administradores y desarrolladores de Azure conectar sus aplicaciones a aplicaciones y servicios que se ejecutan en OCI sin crear enlaces dedicados ni enviar su tráfico de aplicaciones a través de la red pública de Internet.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida. Es posible que sus requisitos difieran de la arquitectura descrita aquí.
  • Gateway de API de OCI

    Puede aprovechar el gateway de API de OCI para exponer las API de REST y activar el soporte de conexión única para sus aplicaciones web. OCI API Gateway también se puede designar como un módulo de seguridad centralizado para que las aplicaciones descarguen la implantación de seguridad en OCI API Gateway. Esto minimiza los costos asociados a la implantación, el mantenimiento y la complejidad.

Consideraciones

Tenga en cuenta lo siguiente al desplegar esta arquitectura de referencia.

  • Protección contra la falsificación de solicitudes entre centros (CSRF)

    Un atacante puede montar un ataque CSRF aprovechando la existencia de una cookie de explorador para hacer que los usuarios envíen comandos no deseados a una aplicación web, como un gateway de API de OCI. Si la aplicación determina que el usuario ya se ha autenticado correctamente debido a la existencia de la cookie del explorador, la aplicación ejecuta el comando con consecuencias potencialmente dañinas.

    Al definir una política de validación de tipo OAuth 2.0 introspection endpoint y una política de fallo de validación de tipo OAuth 2.0, especifique cómo Gateway de API de OCI podría almacenar un nuevo token de JWT obtenido mediante el flujo de autorización de OpenID Connect.

    Seleccione Use cookies for session si desea almacenar nuevos tokens JWT en una cookie de sesión. Para evitar posibles ataques CSRF, cuando OCI API Gateway almacena el token en una cookie de sesión, también devuelve un token CSRF en una cabecera de respuesta X-CSRF-TOKEN. Las solicitudes posteriores al gateway de API de OCI (aparte de las solicitudes GET) deben incluir el token CSRF en una cabecera de solicitud X-CSRF-TOKEN, además del token JWT en la cookie de sesión.

  • Uso compartido de recursos de origen cruzado (CORS)

    Es posible que las aplicaciones web y otras API de REST utilizadas en la aplicación necesiten soportar CORS, ya que las solicitudes se redireccionan a través del gateway de API de OCI desde los exploradores web.

Explorar más

Obtenga más información sobre la protección de aplicaciones web mediante OCI API Gateway y OpenID Connect.

Revise estos recursos adicionales:

Acuses de recibo

Autores:

  • Subburam Mathuraiveeran
  • Robert Wunderlich
  • Shyam Suchak